21 Eylül 2026 Pazartesi

Van de CPI-valkuil naar spelers met hoge retentie: Mobiele games opschalen met Firebase in-app acties en Google Ads (UAC 2.0)




Van de CPI-valkuil naar spelers met hoge retentie: Mobiele games opschalen met Firebase in-app acties en Google Ads (UAC 2.0)

Elke indie-gameontwikkelaar die een mobiele titel uitbrengt, krijgt vroeg of laat te maken met de Cost-Per-Install (CPI) Paradox:

Je start een betaalde gebruikerswervingscampagne (UA), viert een stortvloed aan goedkope downloads en ziet de installatieteller in Google Play omhoogschieten. Maar wanneer je 48 uur later je analytics-dashboard opent, word je geconfronteerd met de harde realiteit:

1.000 Installaties ──► 500 Directe Verwijderingen (< 2 min) ──► 50 Level 1 Voltooid ──► 5 Behouden Spelers

Meer dan 50% van de geworven gebruikers heeft de game verwijderd nog voordat het allereerste level was voltooid.

Als je een standaard Google Ads-app-campagne voor installaties (UAC 1.0) uitvoert met basis-CPI-biedingen, doet het machine learning-algoritme van Google precies wat je hebt opgedragen: vind de goedkoopst mogelijke gebruikers die op "Installeren" tikken in Google Play. Helaas zijn de goedkoopste gebruikers op het advertentienetwerk vaak beloningszoekers, toevallige klikkers of bot-achtige accounts die nooit de intentie hebben om daadwerkelijk je gameplay te ervaren.

In dit artikel delen we onze praktijkgerichte engineering- en marketingarchitectuur van onze snelle retro tank-actiegame, Blocked: Pixel Panzer (ontwikkeld met MonoGame en C# door Arar Games). We laten zien hoe we telemetrie op apparaatniveau koppelden aan Google Analytics 4 (GA4) en Google Ads-app-campagnes voor in-app acties (UAC 2.0) om te stoppen met het kopen van lege installaties en te beginnen met het aantrekken van toegewijde spelers met een hoge retentie.


1. De funnel diagnosticeren: Wat live analyses ons hebben geleerd

Voordat je ook maar één euro uitgeeft aan advertentienetwerken, moet je weten waar spelers precies afhaken.

In Blocked: Pixel Panzer registreert onze telemetrie de belangrijkste gameplay-cycli asynchroon naar Firebase:

  • first_open
  • screen_view (volgen van meer dan 40 aangepaste MonoGame-schermen)
  • level_completed (met de parameters level_number, score, duration_seconds)
  • skill_upgraded
  • boss_fight_result
  • app_remove (het native de-installatiesignaal van het besturingssysteem)

Toen we de sessies van verwijderde apps analyseerden in GA4 Padverkenning, waren de gegevens overduidelijk:

  • Van de 63 onderzochte verwijderde apparaten verwijderden ongeveer 30 gebruikers de game nog vóór het voltooien van Level 1.
  • 14 gebruikers haakten af nadat ze hun initiële vaardigheden in de gameplay-loop hadden geüpgraded.
  • De verste voortgang onder afgehaakte gebruikers was Level 10 (de eerste Wereldboss).
[ Gebruikersinstallaties ] 
       │
       ├──► 48% Churn: Stopt vóór het voltooien van Level 1 <── (De CPI-verspillingszone)
       │
       ├──► 30% Betrokkenheid: Upgrade vaardigheden & bereikt Level 2-3
       │
       └──► 22% Kernretentie: Bereikt de Boss (Level 10) en de Meta-Game

De conclusie was onweerlegbaar: Betalen voor ruwe installaties is rechtstreeks budget weggooien in de churn-zone.

Om een duurzame game-economie op te bouwen, moest ons advertentie-biedmodel optimaliseren voor gebruikers wier gedragsprofiel overeenkwam met spelers die daadwerkelijk Level 1 overwinnen en doorstromen naar Level 3.


2. Het mechanisme van UAC 2.0: Optimaliseren voor in-app acties

Google Ads-app-campagnes (Universal App Campaigns) bieden verschillende optimalisatiemodellen:

Campagnemodel Biedfocus Wat het algoritme leert Meest geschikt voor
UAC 1.0 (Installaties) Maximaliseer installaties / Doel-CPI Profielen van gebruikers die vaak nieuwe apps installeren Vroege winkellancering, snelle volume-uitbarstingen
UAC 2.0 (In-app acties) Target CPA (Doelkosten per actie) Profielen van gebruikers die waarschijnlijk een specifieke in-game mijlpaal halen Duurzame retentie, groei van de meta-game
UAC 2.5 (Waarde / ROAS) Doel-ROAS Profielen van spelers met hoge uitgaven (whales) Games met zware monetisatie via in-app aankopen

Onder UAC 2.0 (In-app acties) stel je Doelkosten per actie (Target CPA) in—bijvoorbeeld € 0,20 per voltooide Level 1.

Het neurale netwerk van Google Smart Bidding analyseert vervolgens honderden gedragssignalen op Google Play, YouTube, Google Zoeken en miljoenen apps in het Google Display Netwerk (AdMob). Het biedt alleen agressief wanneer een advertentievertoning overeenkomt met een gebruiker van wie de historische gewoonten aantonen dat deze de game downloadt, de tutorial doorloopt en Level 1 afrondt.


3. Stapsgewijze implementatie: Van C# telemetrie naar Google Ads

Hier is de complete technische pijplijn die we gebruikten om in-game prestaties om te zetten in bruikbare advertentieconversiedoelen.

Stap 1: Telemetrie-koppeling op apparaatniveau (MonoGame / C#)

In Blocked.Shared/Managers/AnalyticsManager.cs berekent de game, telkens wanneer de speler een gevechtszone uitspeelt, de score, schade en tijd, en verzendt vervolgens level_completed zonder de 60 FPS-rendeerthread te blokkeren:

public static void LogLevelCompleted(int level, int score, int totalScore, string rank,
                                     int durationSeconds, int damageTaken,
                                     int blocksBroken, int enemiesKilled, int suppliesCollected)
{
    try
    {
        _payload.Clear();
        _payload[AnalyticsParams.LevelNumber] = level;
        _payload[AnalyticsParams.Score] = score;
        _payload[AnalyticsParams.TotalScore] = totalScore;
        _payload[AnalyticsParams.DurationSeconds] = durationSeconds;
        _payload[AnalyticsParams.IsBoss] = IsBossLevel(level) ? 1 : 0;
        
        // Dispatches to Android Firebase SDK via JNI (non-blocking SQLite buffer)
        _service.LogEvent(AnalyticsEvents.LevelCompleted, _payload);
    }
    catch (Exception ex)
    {
        // Telemetry must never crash gameplay
        Warn(ex);
    }
}

Stap 2: GA4-gebeurtenissynthese (Geen app-update in de store nodig)

Google Ads kan standaard niet rechtstreeks bieden op parameter-subquery's zoals level_completed WHERE level_number == 1. Met Google Analytics 4 kun je echter in realtime aangepaste gebeurtenissen synthetiseren op basis van binnenkomende telemetrie zonder een nieuwe update naar de app store te sturen:

  1. Navigeer in de GA4-console naar Beheerder ➔ Gegevensweergave ➔ Gebeurtenissen.
  2. Klik op Gebeurtenis maken en configureer:
    • Naam van aangepaste gebeurtenis: level_1_completed
    • Overeenkomstvoorwaarden:
      • event_name is gelijk aan level_completed
      • level_number is gelijk aan 1
    • Vink "Parameters van de brongebeurtenis kopiëren" aan om scores en sessiestatistieken te behouden.
  3. Sla de configuratie op.
  4. Zoek op het tabblad Gebeurtenissen of Belangrijke gebeurtenissen naar level_1_completed en zet de schakelaar "Markeren als belangrijke gebeurtenis" aan.

Vanaf nu stuurt GA4, telkens wanneer een speler ergens ter wereld Level 1 haalt, automatisch een specifieke level_1_completed-conversiegebeurtenis uit.

Stap 3: Conversieacties importeren in Google Ads

  1. Open Google Ads (ads.google.com).
  2. Navigeer naar Doelen ➔ Conversies ➔ Overzicht.
  3. Klik op Nieuwe conversieactie ➔ Importeren ➔ Google Analytics 4-property's (Firebase).
  4. Selecteer level_1_completed uit de lijst.
  5. Stel de categorie in op Betrokkenheid of Behaald niveau (Level achieved).
  6. Stel de conversieactie in op Primair (Primary), zodat Smart Bidding actief optimaliseert naar dit doel.
[ Mobiele game: Level 1 Voltooid ]
                │
                │  LogEvent("level_completed", { level_number: 1 })
                ▼
[ Firebase Analytics Engine ]
                │
                │  GA4-regel: Synthetiseer "level_1_completed"
                ▼
[ GA4 Belangrijke gebeurtenis (Conversie) ]
                │
                │  Gekoppelde Google Ads-integratie
                ▼
[ Google Ads Smart Bidding Engine (UAC 2.0 Target CPA) ]

4. Het cold-start probleem oplossen: De gefaseerde funnelstrategie

Een veelvoorkomende fout die indie-ontwikkelaars maken bij de overstap naar UAC 2.0 is vanaf het begin te diep in de game mikken.

De datavolumeregel van machine learning

Google Ads Smart Bidding-algoritmen hebben een minimale statistische drempel nodig om effectief te trainen:

  • Gouden Regel: Een campagne moet ten minste 10 tot 20 doelconversies voor in-app acties per dag genereren om de "Leerfase" te verlaten en optimale biedingsefficiëntie te bereiken.

Tijdens onze vroege analyse-audit hadden we een doelgroep aangemaakt genaamd Quality_Players_Level_3 (spelers die Level 3 of hoger hadden uitgespeeld), waarin 17 spelers waren verzameld.

Als we direct een campagne hadden gestart gericht op Level 3:

  • Zou het dagelijks genereren van 15 Level 3-conversies een enorm startbudget voor advertenties hebben vereist.
  • Was de lookalike-steekproef van het algoritme met slechts 17 zaadjes veel te smal, wat leidde tot volatiele biedpieken of helemaal geen vertoningen ("Te klein om weer te geven").

De gerichte tweefasenoplossing

In plaats van een alles-of-niets-benadering kozen we voor een gefaseerde funnel:

flowchart TD
    A["Fase 1: Schaal Level 1 Voltooid"] --> B["Trekt betrokken spelers aan met lage Target CPA"]
    B --> C["Filtert 100% van de niet-spelende verwijderaars eruit"]
    C --> D["Vult doelgroep 'Quality_Players_Level_3' (100+ spelers)"]
    D --> E["Fase 2: Verleg Target CPA naar Level 3 / Vaardigheidsupgrades"]
  1. Fase 1 (Volume & Zuivering): Optimaliseer voor level_1_completed. Omdat ongeveer 50-60% van de echte gamers Level 1 kan voltooien, behaalt de campagne eenvoudig 20+ conversies per dag tegen een lage Target CPA (~€ 0,15 - € 0,25). Dit filtert direct installaties van lage kwaliteit eruit en bouwt tegelijkertijd een actieve spelersbasis op.
  2. Fase 2 (Verfijning): Naarmate honderden spelers Level 1 voltooien, stroomt een vast percentage op natuurlijke wijze door naar Level 3, 5 en 10. Zodra de groep Quality_Players_Level_3 meer dan 100-200 actieve gebruikers telt, kan het campagnedoel veilig worden verlegd naar Level 3 of meta-game mijlpalen (skill_upgraded) voor een maximale lifetime value (LTV).

5. Marktselectie en geografische arbitrage

Bieden op Tier-1 markten (VS, VK, Duitsland) met een niet-gekalibreerde campagne kan kleine indie-budgetten binnen enkele uren uitputten (€ 1,50 - € 4,00 per actie).

Voor onze initiële UAC 2.0-testfase van Blocked: Pixel Panzer selecteerden we een strategische groep van vier volumineuze, kostenefficiënte en game-enthousiaste markten:

  1. Turkije (TR): Sterke lokale spelersbasis, hoge betrokkenheid bij arcade-/actiegames en lage wervingskosten.
  2. Brazilië (BR): Een van de grootste Android-gamemarkten ter wereld. Braziliaanse mobiele spelers hebben een enorme passie voor retro-esthetiek en arcadegevechten.
  3. Mexico (MX): De op een na grootste gaming-hub in Latijns-Amerika, met een hoge dichtheid en loyale spelersgemeenschappen.
  4. Polen (PL): Een ideale Europese testomgeving—de eCPM-monetisatie via AdMob ligt aanzienlijk hoger dan in Zuid-Amerika, terwijl de kosten voor gebruikerswerving aanzienlijk lager zijn dan in West-Europa.

Native lokalisatie: De geheime vermenigvuldiger

Advertenties draaien in buitenlandse markten levert alleen conversies op als de in-game ervaring aansluit bij de vermelding in de store. In Blocked: Pixel Panzer worden alle vier de markten standaard ondersteund met native lokalisatie:

  • tr.json (Turks)
  • pt-BR.json (Braziliaans Portugees)
  • es-419.json (Latijns-Amerikaans Spaans)
  • pl.json (Pools)

Wanneer een speler uit São Paulo of Warschau op een advertentie tikt, de game installeert en direct bij het opstarten zijn moedertaal hoort, is de onderdompeling direct—wat het voltooiingspercentage van Level 1 enorm verhoogt.

Locatietargeting Pro-Tip: Verander in de locatie-instellingen van Google Ads de standaardoptie "Aanwezigheid of interesse" altijd in "Aanwezigheid: Mensen die zich bevinden in of regelmatig in uw opgenomen locaties zijn". Dit zorgt ervoor dat je budget uitsluitend wordt besteed aan gebruikers die fysiek in je doellanden wonen, waardoor verkeer via buitenlandse VPN's of irrelevante zoekopdrachten wordt geëlimineerd.


6. Creatieve assets: Waarom video versterkt en nooit kannibaliseert

Bij het samenstellen van assetgroepen in Google Ads vragen ontwikkelaars zich vaak af: “Als ik gameplay-video toevoeg, zal dat dan mijn verzorgde screenshots overschaduwen?”

Het antwoord is een overtuigend nee. Google Ads opereert via verschillende multikanaals-inventarissen:

  • Koppen en Screenshots: Domineren Google Play-zoekopdrachten, aanbevolen app-lijsten en display-bannernetwerken.
  • Video: Ontsluit de enorme inventaris van YouTube Shorts, instream video-advertenties en plaatsingen voor video's met beloning in andere populaire mobiele games.

In intensieve games zoals Blocked: Pixel Panzer kunnen statische afbeeldingen alleen pixelart tonen, maar alleen video kan de spanning overbrengen van het ontwijken van bullet-hell kogelregens, het ontketenen van explosieve kettingreacties en het vernietigen van vijandelijke straaljagers.

Spelers die installeren na het bekijken van echte gameplay-video begrijpen de besturing en werking al. Daardoor ligt hun conversieratio op level_1_completed aanzienlijk hoger dan bij gebruikers die alleen via statische afbeeldingen zijn binnengehaald.


7. Samenvattende checklist voor indie-ontwikkelaars

Loop deze architecturale checklist door voordat je je volgende advertentiecampagne voor een mobiele game lanceert:

  • Verifieer in-game telemetrie: Zorg ervoor dat level_completed en levelmijlpalen worden gelogd met schone parameters en zonder GC-pauzes op de hoofdthread.
  • Synthetiseer GA4 Belangrijke gebeurtenissen: Maak specifieke gebeurtenissen aan (bijv. level_1_completed) en markeer ze als Belangrijke gebeurtenissen (Key Events) in GA4.
  • Importeer naar Google Ads: Koppel Firebase en Google Ads, importeer de actie en stel deze in als Primair (Primary).
  • Biedfocus: Kies voor In-app acties (Target CPA) in plaats van puur ruw installatievolume.
  • Kalibreer de start-CPA: Stel een realistische Target CPA in (€ 0,15 - € 0,30 afhankelijk van de tiers van de doellanden) en geef het machine learning-model minimaal 3-4 dagen ononderbroken leertijd.
  • Faseer je funnel: Begin met een vroege, haalbare mijlpaal (Level 1) om conversiesnelheid op te bouwen, en schakel daarna pas over naar diepere voortgangsdoelen.

Door je mentaliteit te verleggen van downloads kopen naar gameplay-mijlpalen kopen, verander je reclame van een onvoorspelbare kostenpost in een herhaalbare groeimotor voor loyale spelers.


Geschreven door het engineering-team van Arar Games / Mayhemco (makers van Paint Trek). Ontdek Blocked: Pixel Panzer op Google Play om onze snelle retro arcadegevechten zelf te ervaren.


Hashtags & SEO Topics

#BlockedPixelPanzer #ArarGames #Mayhemco #PaintTrek #MonoGame #GoogleAds #FirebaseAnalytics #GA4 #MobileGameDev #UserAcquisition #GameMarketing #SmartBidding #TargetCPA #InAppActions #IndieGameDev #GameAnalytics #AndroidDev




Hiç yorum yok:

Yorum Gönder