Telemetri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Telemetri etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Eylül 2026 Pazartesi

Från CPI-fällor till lojala spelare: Skala mobilspel med Firebase In-App Actions och Google Ads (UAC 2.0)

Från CPI-fällor till lojala spelare: Skala mobilspel med Firebase In-App Actions och Google Ads (UAC 2.0)

Varje indiespelutvecklare som lanserar en mobiltitel möter förr eller senare Cost-Per-Install (CPI)-paradoxen:

Du startar en betald kampanj för användarförvärv (User Acquisition), gläds åt en ström av billiga nedladdningar och ser installationsräknaren på Google Play stiga snabbt. Men när du öppnar din analyspanel 48 timmar senare slår den bistra verkligheten till:

1 000 installationer ──► 500 omedelbara avinstallationer (< 2 min) ──► 50 nivå 1-slutföranden ──► 5 behållna spelare

Över 50 % av de förvärvade användarna raderade spelet innan de ens klarat av den allra första nivån.

Om du kör en traditionell Google Ads-appkampanj för installationer (UAC 1.0) med grundläggande CPI-budgivning gör Googles maskininlärningsalgoritm exakt vad du bad den om: att hitta de billigaste möjliga användarna som trycker på "Installera" på Google Play. Tyvärr är de billigaste användarna i annonsnätverket ofta jägare av belöningsannonser, oavsiktliga klickare eller konton nära botnätverk som aldrig har för avsikt att faktiskt engagera sig i ditt spel.

I den här artikeln delar vi vår verkliga teknik- och marknadsföringsarkitektur från vårt fartfyllda retro-stridsvagnsactionspel, Blocked: Pixel Panzer (utvecklat med MonoGame och C# av Arar Games). Vi utforskar hur vi kopplade samman telemetri på enhetsnivå med Google Analytics 4 (GA4) och Google Ads-appkampanjer för åtgärder i appen (UAC 2.0) för att sluta köpa tomma installationer och istället börja förvärva engagerade spelare med hög retention.


1. Diagnostisera tratten: Vad live-analys lärde oss

Innan du spenderar en enda krona på annonsnätverk måste du veta exakt var spelarna faller bort.

I Blocked: Pixel Panzer loggar vår telemetri spelets centrala livscykler asynkront till Firebase:

  • first_open
  • screen_view (spårning av över 40 anpassade MonoGame-skärmar)
  • level_completed (med parametrarna level_number, score, duration_seconds)
  • skill_upgraded
  • boss_fight_result
  • app_remove (operativsystemets inbyggda signal för avinstallation)

När vi analyserade avinstallerade sessioner i GA4 Path Exploration var datan slående:

  • Av 63 granskade avinstallerade enheter hade ~30 användare avinstallerat spelet innan de ens klarade Nivå 1.
  • 14 användare lämnade spelet direkt efter att ha uppgraderat sina första färdigheter i spelloopen.
  • Den maximala framgången bland avhoppade användare var Nivå 10 (den första världs-bossen).
[ Användarinstallationer ] 
       │
       ├──► 48 % bortfall: Slutar innan Nivå 1 slutförts <── (CPI-slöserizonen)
       │
       ├──► 30 % engagemang: Uppgraderar färdigheter och når Nivå 2–3
       │
       └──► 22 % kärnretention: Når bossen (Nivå 10) och metaspelet

Slutsatsen var obestridlig: Att betala för råa installationer är att kasta pengar rakt in i avhoppszonen.

För att bygga en hållbar spelekonomi behövde vår budgivningsmodell optimeras för användare vars beteendesignatur matchar spelare som faktiskt klarar Nivå 1 och fortsätter mot Nivå 3.


2. Mekaniken bakom UAC 2.0: Optimering för in-app-åtgärder

Google Ads-appkampanjer (Universal App Campaigns) erbjuder distinkta optimeringsmodeller:

Kampanjmodell Budgivningsfokus Vad algoritmen lär sig Bäst lämpad för
UAC 1.0 (Installationer) Maximera installationer / Mål-CPI Profiler hos användare som ofta installerar nya appar Tidig lansering, snabb volymökning
UAC 2.0 (In-App Actions) Target CPA (Kostnad per åtgärd) Profiler hos användare som sannolikt slutför en specifik milstolpe i spelet Hållbar retention, tillväxt i metaspelet
UAC 2.5 (Värde / ROAS) Target ROAS Profiler hos användare med högt köpbeteende (valar) Spel med tung intäktsgenerering via köp i appen

Under UAC 2.0 (In-App Actions) sätter du ett Target Cost Per Action (Target CPA) – till exempel 0,20 $ per slutförd Nivå 1.

Googles Smart Bidding-neuronnätverk analyserar sedan hundratals beteendesignaler över Google Play, YouTube, Google Sök och miljontals appar i Googles Displaynätverk (AdMob). Det bjuder aggressivt endast när en annonsvisning matchar en användare vars historiska vanor indikerar att de kommer att ladda ner spelet, spela förbi introduktionen och klara Nivå 1.


3. Steg-för-steg-implementering: Från C#-telemetri till Google Ads

Här är den exakta tekniska pipelinen vi använde för att förvandla framsteg i spelet till mätbara konverteringsmål i marknadsföringen.

Steg 1: Telemetri-hook på enhetsnivå (MonoGame / C#)

I Blocked.Shared/Managers/AnalyticsManager.cs, när spelaren klarar en stridszon, beräknar spelet poäng, skada och tid och skickar sedan level_completed utan att blockera renderings-tråden på 60 FPS:

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;
        
        // Skickas till Android Firebase SDK via JNI (icke-blockerande SQLite-buffert)
        _service.LogEvent(AnalyticsEvents.LevelCompleted, _payload);
    }
    catch (Exception ex)
    {
        // Telemetri får aldrig krascha spelupplevelsen
        Warn(ex);
    }
}

Steg 2: Skapa syntetiska GA4-händelser (Ingen appuppdatering krävs)

Google Ads kan inte direkt bjuda på parameterunderfrågor som level_completed WHERE level_number == 1 direkt ur lådan. Google Analytics 4 låter dig dock skapa anpassade händelser syntetiskt i realtid från inkommande telemetri utan att behöva släppa en uppdatering i appbutiken:

  1. I GA4-konsolen, navigera till Admin ➔ Data display ➔ Events.
  2. Klicka på Create event och konfigurera följande:
    • Custom event name: level_1_completed
    • Matching conditions:
      • event_name equals level_completed
      • level_number equals 1
    • Markera "Copy parameters from the source event" för att bevara poäng och sessionsmått.
  3. Spara konfigurationen.
  4. På fliken Events eller Key events, leta upp level_1_completed och aktivera "Mark as key event".

Nu genererar GA4 automatiskt en dedikerad level_1_completed-konverteringshändelse varje gång en spelare var som helst i världen klarar Nivå 1.

Steg 3: Importera konverteringsåtgärder till Google Ads

  1. Öppna Google Ads (ads.google.com).
  2. Gå till Mål ➔ Konverteringar ➔ Sammanfattning.
  3. Klicka på Ny konverteringsåtgärd ➔ Importera ➔ Google Analytics 4-egendomar (Firebase).
  4. Välj level_1_completed i listan.
  5. Sätt kategorin till Engagemang eller Uppnådd nivå.
  6. Ställ in konverteringsåtgärden som Primär så att Smart Bidding aktivt optimerar mot den.
[ Mobilspel: Nivå 1 klarad ]
                │
                │  LogEvent("level_completed", { level_number: 1 })
                ▼
[ Firebase Analytics Engine ]
                │
                │  GA4-regel: Skapa syntetiskt "level_1_completed"
                ▼
[ GA4 Key Event (Konvertering) ]
                │
                │  Google Ads-länkad integration
                ▼
[ Google Ads Smart Bidding Engine (UAC 2.0 Target CPA) ]

4. Hantera kallstartsproblemet: Trattstrategin

Ett vanligt misstag indiespelutvecklare gör vid övergång till UAC 2.0 är att sikta för djupt in i spelet för tidigt.

Volymregeln för maskininlärning

Googles algoritmer för Smart Bidding kräver ett statistiskt minimitröskelvärde för att träna effektivt:

  • Den gyllene regeln: En kampanj bör generera minst 10 till 20 målkonverteringar i appen per dag för att lämna "Lärandefasen" och uppnå optimal budgivningseffektivitet.

I vår tidiga analysrevision skapade vi en målgrupp som hette Quality_Players_Level_3 (spelare som klarat Nivå 3 eller högre), vilken hade samlat 17 spelare.

Om vi hade lanserat en kampanj med direkt inriktning på Nivå 3:

  • Att generera 15 konverteringar av Nivå 3 dagligen hade krävt massiva initiala annonsutgifter.
  • Med endast 17 historiska datapunkter var algoritmens lookalike-urval för smalt, vilket riskerade kraftiga budspikar eller uteblivna visningar ("Too small to serve").

Tvåstegslösningen för tratten

Istället för en allt-eller-inget-ansats tillämpade vi en fasindelad tratt:

flowchart TD
    A["Fas 1: Skala Level 1 Completed"] --> B["Förvärvar engagerade spelare till låg tCPA"]
    B --> C["Filtrerar bort 100 % av oengagerade installationsavhoppare"]
    C --> D["Fyller målgruppen 'Quality_Players_Level_3' (100+ spelare)"]
    D --> E["Fas 2: Skifta Target CPA till Nivå 3 / Färdighetsuppgraderingar"]
  1. Fas 1 (Volym och hygien): Optimera för level_1_completed. Eftersom ~50–60 % av genuina spelare klarar Nivå 1 säkrar kampanjen enkelt 20+ konverteringar per dag till en låg Target CPA (~0,15 \(– 0,25\)). Detta rensar omedelbart bort lågkvalitativa installationsfarmar samtidigt som en aktiv användarbas byggs upp.
  2. Fas 2 (Förfining): När hundratals spelare klarar Nivå 1 fortsätter en stabil andel naturligt till Nivå 3, 5 och 10. När poolen Quality_Players_Level_3 överstiger 100–200 aktiva användare kan kampanjens målsättning tryggt flyttas till Nivå 3 eller milstolpar i metaspelet (skill_upgraded) för maximalt livstidsvärde.

5. Marknadsval och geografisk arbitrage

Att bjuda på Tier-1-marknader (USA, Storbritannien, Tyskland) med en okalibrerad kampanj kan tömma en begränsad indiebudget på några timmar (1,50 \(– 4,00\) per åtgärd).

För vår inledande UAC 2.0-testkörning av Blocked: Pixel Panzer valde vi ett strategiskt kluster av fyra marknader med hög volym, kostnadseffektivitet och stor spelpassion:

  1. Turkiet (TR): Stark lokal spelarbas, högt engagemang i arkad-/actiontitlar och låga anskaffningskostnader.
  2. Brasilien (BR): En av världens största marknader för Android-spel. Brasilianska mobilspelare har en enorm passion för retroestetik och arkadstrider.
  3. Mexiko (MX): Det näst största latinamerikanska spelcentret med stor volym och lojala spelargemenskaper.
  4. Polen (PL): En idealisk europeisk testmarknad – betydligt högre AdMob eCPM-intäkter än Sydamerika, men avsevärt lägre förvärvskostnader än Västeuropa.

Naturlig lokalisering: Den hemliga multiplikatorn

Att köra annonser på utländska marknader konverterar bara om upplevelsen i spelet matchar butikens presentation. I Blocked: Pixel Panzer stöds alla fyra marknader med fullständig lokalisering från start:

  • tr.json (Turkiska)
  • pt-BR.json (Brasiliansk portugisiska)
  • es-419.json (Latinamerikansk spanska)
  • pl.json (Polska)

När en spelare från São Paulo eller Warszawa trycker på en annons, installerar spelet och omedelbart möts av sitt eget modersmål sker fördjupningen direkt – vilket dramatiskt ökar andelen som slutför Nivå 1.

Proffstips för platsinriktning: I platsinställningarna i Google Ads, ändra alltid standardvalet "Närvaro eller intresse" till "Närvaro: Personer som befinner sig i eller regelbundet besöker dina inkluderade platser". Detta säkerställer att din budget uteslutande läggs på användare som fysiskt befinner sig i dina målländer, vilket eliminerar trafik från utländska VPN-tjänster eller irrelevanta sökningar.


6. Kreativa tillgångar: Varför video multiplicerar och aldrig kannibaliserar

När utvecklare sätter samman annonsmaterial i Google Ads ställer de sig ofta frågan: ”Om jag lägger till en gameplay-video, kommer den då att överskugga mina finslipade skärmdumpar?”

Svaret är ett eftertryckligt nej. Google Ads arbetar över skilda flerkanalsinventarier:

  • Rubriker och skärmdumpar: Dominerar sökningar på Google Play, rekommenderade app-hyllor och display-bannernätverk.
  • Video: Låser upp den enorma räckvidden på YouTube Shorts, instream-annonser och premierade videoplatser (rewarded video) i andra populära mobilspel.

I högintensiva spel som Blocked: Pixel Panzer kan statiska skärmdumpar visa pixelgrafik, men endast video kan förmedla känslan av att ducka för kulsvärmar (bullet hell), utlösa explosiva kedjereaktioner och förinta fientliga stridsflygplan.

Spelare som installerar efter att ha sett äkta spelvideo förstår redan kontrollerna och mekaniken. Följaktligen är deras konverteringsgrad på level_1_completed dramatiskt högre än för användare som enbart förvärvats via statiska bilder.


7. Sammanfattande checklista för indieutvecklare

Innan du lanserar din nästa annonskampanj för mobilspel bör du gå igenom denna tekniska checklista:

  • Verifiera telemetri i spelet: Säkerställ att level_completed och nivåmilstolpar loggas med rena parametrar och noll GC-allokeringar i huvudtråden.
  • Skapa syntetiska nyckelhändelser i GA4: Skapa dedikerade händelser (t.ex. level_1_completed) och markera dem som Key Events i GA4.
  • Importera till Google Ads: Länka Firebase och Google Ads, importera åtgärden och markera den som Primär.
  • Fokus för budgivning: Välj In-App Actions (Target CPA) istället för rå installationsvolym.
  • Kalibrera ingångs-CPA: Sätt realistiska målnivåer för CPA (0,15 \(– 0,30\) beroende på landsnivå) och tillåt minst 3–4 dagars oavbruten maskininlärning.
  • Fasindela din tratt: Börja med en tidig, uppnåelig milstolpe (Nivå 1) för att bygga konverteringstakt, och gå sedan vidare till djupare progressionsmål.

Genom att ändra inställning från att köpa nedladdningar till att köpa spelmässiga milstolpar förvandlar du marknadsföringen från en oberäknelig utgift till en pålitlig tillväxtmotor för lojala spelare med hög retention.


Skriven av ingenjörsteamet på Arar Games / Mayhemco. Utforska Blocked: Pixel Panzer på Google Play för att uppleva vår snabba retroarkadaction på nära håll.


Hashtags & SEO Topics

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

Fra CPI-fellen til lojale spillere: Skalere mobilspill med Firebase In-App Actions og Google Ads (UAC 2.0)

Fra CPI-fellen til lojale spillere: Skalere mobilspill med Firebase In-App Actions og Google Ads (UAC 2.0)

Hver eneste uavhengige spillutvikler (indie) som lanserer en mobiltittel, står før eller siden overfor Cost-Per-Install (CPI)-paradokset:

Du setter i gang en betalt brukeranskaffelseskampanje (User Acquisition), gleder deg over hundrevis av billige nedlastinger og ser installasjonstelleren på Google Play stige raskt. Men når du åpner analysedashbordet 48 timer senere, innhenter den kalde virkeligheten deg:

1 000 installasjoner ──► 500 umiddelbare avinstalleringer (< 2 min) ──► 50 fullføringer av nivå 1 ──► 5 lojale spillere

Over 50 % av de anskaffede brukerne slettet spillet før de i det hele tatt fullførte det aller første nivået.

Hvis du kjører en tradisjonell Google Ads-appkampanje for installasjoner (UAC 1.0) med enkel CPI-budgivning, gjør Googles maskinlæringsalgoritme nøyaktig det du ba den om: finn de billigst mulige brukerne som trykker på "Installer" på Google Play. Dessverre er de billigste brukerne i annonsenettverket ofte belønningsjegere, utilsiktede klikkere eller bot-lignende kontoer som aldri har til hensikt å engasjere seg i spillet ditt.

I denne artikkelen deler vi vår virkelige ingeniør- og markedsføringsarkitektur fra vårt fartsfylte retro-tanksactionspill, Blocked: Pixel Panzer (utviklet med MonoGame og C# av Arar Games). Vi utforsker hvordan vi koblet enhetstelemetri sammen med Google Analytics 4 (GA4) og Google Ads-appkampanjer for handlinger i appen (UAC 2.0) for å slutte å kjøpe tomme installasjoner og heller rekruttere dedikerte spillere med høy oppbevaring (retention).


1. Diagnostisere trakten: Hva sanntidsanalyse lærte oss

Før du bruker en eneste krone på annonsenettverk, må du vite nøyaktig hvor spillerne faller fra.

I Blocked: Pixel Panzer logger telemetrien vår kjernespillets livssykluser asynkront til Firebase:

  • first_open
  • screen_view (sporing av over 40 tilpassede MonoGame-skjermer)
  • level_completed (med parametrene level_number, score, duration_seconds)
  • skill_upgraded
  • boss_fight_result
  • app_remove (operativsystemets innebygde avinstalleringssignal)

Da vi analyserte avinstallerte økter i GA4 Path Exploration, var tallenes tale klar:

  • Av 63 undersøkte avinstallerte enheter hadde ~30 brukere avinstallert spillet før de fullførte Nivå 1.
  • 14 brukere falt fra like etter å ha oppgradert sine første ferdigheter i spillsløyfen.
  • Den lengste progresjonen blant frafalte brukere var Nivå 10 (den første verdensbossen).
[ Brukerinstallasjoner ] 
       │
       ├──► 48 % frafall: Slutter før fullføring av Nivå 1 <── (CPI-sløsesonen)
       │
       ├──► 30 % engasjement: Oppgraderer ferdigheter og når Nivå 2–3
       │
       └──► 22 % kjerneoppbevaring: Når bossen (Nivå 10) og metaspillet

Konklusjonen var uunngåelig: Å betale for rene installasjoner er å kaste penger rett inn i frafallssonen.

For å bygge en bærekraftig spilløkonomi måtte budmodellen vår optimaliseres mot spillere hvis atferdssignatur samsvarer med brukere som faktisk overvinner Nivå 1 og fortsetter videre til Nivå 3.


2. Mekanikken i UAC 2.0: Optimalisering for handlinger i appen

Google Ads-appkampanjer (Universal App Campaigns) leveres med ulike optimaliseringsmodeller:

Kampanjemodell Budfokus Hva algoritmen lærer Best egnet for
UAC 1.0 (Installasjoner) Maksimer installasjoner / Mål-CPI Profiler til brukere som ofte installerer nye apper Tidlig butikklansering, volumvekst
UAC 2.0 (Handlinger i appen) Target CPA (Kostnad per handling) Profiler til brukere som sannsynligvis fullfører en milepæl i spillet Bærekraftig oppbevaring, vekst i metaspillet
UAC 2.5 (Verdi / ROAS) Target ROAS Profiler til storbrukere som handler i appen (hvaler) Spill med tung inntektsgenerering via kjøp i app

Under UAC 2.0 (Handlinger i appen) angir du en Target Cost Per Action (Target CPA) – for eksempel 0,20 $ per fullførte Nivå 1.

Googles nevrale nettverk for Smart Bidding analyserer deretter hundrevis av atferdssignaler på tvers av Google Play, YouTube, Google Søk og millioner av apper i Google Displaynettverket (AdMob). Algoritmen byr aggressivt kun når en annonsevisning treffer en bruker hvis historiske mønstre tilsier at de vil laste ned spillet, spille forbi introduksjonen og fullføre Nivå 1.


3. Trinnvis implementering: Fra C#-telemetri til Google Ads

Her er den nøyaktige tekniske rørgaten vi benyttet for å gjøre spillprestasjoner om til målbare konverteringsmål i markedsføringen.

Trinn 1: Telemetri-krok på enhetsnivå (MonoGame / C#)

I Blocked.Shared/Managers/AnalyticsManager.cs beregner spillet poengsum, skade og tidsbruk hver gang spilleren rydder en kampsone, og sender deretter level_completed uten å forsinke rendertråden på 60 FPS:

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;
        
        // Sendes til Android Firebase SDK via JNI (ikke-blokkerende SQLite-buffer)
        _service.LogEvent(AnalyticsEvents.LevelCompleted, _payload);
    }
    catch (Exception ex)
    {
        // Telemetri må aldri krasje spillet
        Warn(ex);
    }
}

Trinn 2: Syntetisering av GA4-hendelser (Krever ingen appoppdatering)

Google Ads kan ikke by direkte på underforespørsler etter parametere som level_completed WHERE level_number == 1 som standard. Imidlertid lar Google Analytics 4 deg syntetisere tilpassede hendelser i sanntid fra innkommende telemetri uten å måtte rulle ut en oppdatering i appbutikken:

  1. I GA4-konsollen, naviger til Admin ➔ Data display ➔ Events.
  2. Klikk på Create event og konfigurer:
    • Custom event name: level_1_completed
    • Matching conditions:
      • event_name equals level_completed
      • level_number equals 1
    • Huk av for "Copy parameters from the source event" for å bevare poengsummer og øktdata.
  3. Lagre konfigurasjonen.
  4. På fanen Events eller Key events, finn level_1_completed og slå på "Mark as key event".

Nå sender GA4 automatisk en dedikert level_1_completed-konverteringshendelse hver gang en spiller hvor som helst i verden fullfører Nivå 1.

Trinn 3: Importere konverteringshandlinger til Google Ads

  1. Åpne Google Ads (ads.google.com).
  2. Gå til Mål ➔ Konverteringer ➔ Sammendrag.
  3. Klikk på Ny konverteringshandling ➔ Importer ➔ Google Analytics 4-eiendommer (Firebase).
  4. Velg level_1_completed fra listen.
  5. Sett kategorien til Engasjement eller Oppnådd nivå.
  6. Angi konverteringshandlingen som Primær, slik at Smart Bidding aktivt optimaliserer mot den.
[ Mobilspill: Nivå 1 fullført ]
                │
                │  LogEvent("level_completed", { level_number: 1 })
                ▼
[ Firebase Analytics Engine ]
                │
                │  GA4-regel: Syntetiser "level_1_completed"
                ▼
[ GA4 Key Event (Konvertering) ]
                │
                │  Google Ads koblet integrasjon
                ▼
[ Google Ads Smart Bidding Engine (UAC 2.0 Target CPA) ]

4. Overvinne kaldstartproblemet: Trattstrategien

En vanlig feil uavhengige utviklere gjør når de går over til UAC 2.0, er å sikte for dypt inn i spillet for tidlig.

Volumregelen for maskinlæring

Googles Smart Bidding-algoritmer krever et statistisk minimum for å trene optimalt:

  • Den gylne regelen: En kampanje bør generere minst 10 til 20 målkonverteringer i appen per dag for å avslutte "Læringsfasen" og oppnå optimal budgivningseffektivitet.

I vår tidlige revisjon opprettet vi en målgruppe kalt Quality_Players_Level_3 (spillere som har fullført Nivå 3 eller høyere), som hadde samlet 17 spillere.

Hvis vi hadde startet en kampanje direkte mot Nivå 3 umiddelbart:

  • Ville det krevd store annonsekostnader på forhånd for å oppnå 15 Nivå 3-konverteringer per dag.
  • Med bare 17 historiske spillere var algoritmens grunnlag for smalt, noe som risikerte uforutsigbare budtopper eller at visninger stoppet helt opp ("Too small to serve").

To-trinns traktløsning

I stedet for en alt-eller-ingenting-tilnærming tok vi i bruk en fasedelt trakt:

flowchart TD
    A["Fase 1: Skaler Level 1 Completed"] --> B["Rekrutterer engasjerte spillere til lav tCPA"]
    B --> C["Filtrerer bort 100 % av passive installatører"]
    C --> D["Fyller målgruppen 'Quality_Players_Level_3' (100+ spillere)"]
    D --> E["Fase 2: Skift Target CPA til Nivå 3 / Ferdighetsoppgraderinger"]
  1. Fase 1 (Volum og hygiene): Optimaliser for level_1_completed. Siden ~50–60 % av ekte spillere klarer Nivå 1, samler kampanjen lett inn 20+ konverteringer daglig til en lav Target CPA (~0,15 \(– 0,25\)). Dette fjerner umiddelbart lavkvalitets installasjonsfarmer og bygger opp en aktiv spillerbase.
  2. Fase 2 (Finjustering): Etter hvert som hundrevis av spillere fullfører Nivå 1, fortsetter en stabil andel naturlig til Nivå 3, 5 og 10. Når gruppen Quality_Players_Level_3 passerer 100–200 aktive spillere, kan kampanjemålet trygt flyttes til Nivå 3 eller milepæler i metaspillet (skill_upgraded) for maksimal livstidsverdi.

5. Markedsutvalg og geografisk arbitrasje

Å by på Tier-1-markeder (USA, Storbritannia, Tyskland) med en ukalibrert kampanje kan tappe et lite indie-budsjett i løpet av få timer (1,50 \(– 4,00\) per handling).

For vår første UAC 2.0-testkjøring av Blocked: Pixel Panzer valgte vi en strategisk samling av fire markeder med høyt volum, god kostnadseffektivitet og stor spilleinteresse:

  1. Tyrkia (TR): Sterk lokal spillerbase, stor interesse for arkade-/actiontitler og lave anskaffelseskostnader.
  2. Brasil (BR): Et av de største Android-spillmarkedene i verden. Brasilianske mobilspillere har en enorm forkjærlighet for retro-estetikk og arkadeslag.
  3. Mexico (MX): Det nest største knutepunktet for spill i Latin-Amerika, med stort volum og lojale spillermiljøer.
  4. Polen (PL): Et perfekt europeisk testmarked – merkbart høyere AdMob eCPM-inntekter enn Sør-Amerika, men betydelig lavere anskaffelseskostnader enn Vest-Europa.

Innfødt lokalisering: Den hemmelige multiplikatoren

Å kjøre annonser i internasjonale markeder konverterer bare dersom opplevelsen i spillet samsvarer med butikkoppføringen. I Blocked: Pixel Panzer støttes alle fire markedene med fullverdig lokalisering fra første stund:

  • tr.json (Tyrkisk)
  • pt-BR.json (Brasiliansk portugisisk)
  • es-419.json (Latinamerikansk spansk)
  • pl.json (Polsk)

Når en spiller fra São Paulo eller Warszawa trykker på en annonse, installerer spillet og umiddelbart møtes av sitt eget morsmål, oppstår engasjementet umiddelbart – noe som øker fullføringsgraden for Nivå 1 dramatisk.

Tips for stedsretting: Under stedsinnstillinger i Google Ads må du alltid endre standardvalget "Tilstedeværelse eller interesse" til "Tilstedeværelse: Personer i eller regelmessig i de inkluderte stedene dine". Dette sikrer at budsjettet utelukkende brukes på spillere som fysisk oppholder seg i mållandene, og eliminerer trafikk fra utenlandske VPN-er eller irrelevante søk.


6. Kreative ressurser: Hvorfor video multipliserer og aldri kannibaliserer

Når utviklere setter sammen annonsemateriell i Google Ads, oppstår ofte spørsmålet: «Hvis jeg legger til spillvideo, vil det overskygge de polerte skjermbildene mine?»

Svaret er et rungende nei. Google Ads opererer på tvers av ulike flerkanalsplasseringer:

  • Overskrifter og skjermbilder: Dominerer søk på Google Play, hyller for anbefalte apper og bannerannonser i displaynettverket.
  • Video: Låser opp det enorme varelageret på YouTube Shorts, preroll-annonser i videoer og belønnede videoplasseringer (rewarded video) i andre populære mobilspill.

I intense spill som Blocked: Pixel Panzer kan statiske skjermbilder vise pikselgrafikken, men bare video kan demonstrere følelsen av å unngå kulesvermer (bullet-hell), utløse eksplosive kjedereaksjoner og knuse fiendtlige jagerfly.

Spillere som installerer etter å ha sett ekte spilling, forstår allerede kontrollene og mekanikken. Følgelig er konverteringsraten deres for level_1_completed dramatisk mye høyere enn for brukere som bare har sett statiske bilder.


7. Sjekkliste for indie-utviklere

Før du lanserer din neste annonsekampanje for mobilspill, bør du gå gjennom denne listen:

  • Kontroller spillets telemetri: Sørg for at level_completed og milepæler logges med rene parametere og null GC-allokeringer på hovedtråden.
  • Syntetiser GA4-nøkkelhendelser: Opprett dedikerte hendelser (f.eks. level_1_completed) og merk dem som nøkkelhendelser i GA4.
  • Importer til Google Ads: Koble sammen Firebase og Google Ads, importer handlingen, og sett den som Primær.
  • Budfokus: Velg Handlinger i appen (Target CPA) fremfor rent installasjonsvolum.
  • Kalibrer start-CPA: Sett realistiske CPA-mål (0,15 \(– 0,30\) avhengig av landsnivå) og gi algoritmen minst 3–4 dager med uforstyrret maskinlæring.
  • Bygg trakten i faser: Start med en tidlig, oppnåelig milepæl (Nivå 1) for å bygge fart på konverteringene, og avanser deretter til dypere progresjonsmål.

Ved å flytte tankesettet ditt fra å kjøpe nedlastinger til å kjøpe spillmilepæler, forvandler du markedsføring fra en usikker utgift til en repeterbar vekstmotor for lojale spillere.


Skrevet av ingeniørteamet hos Arar Games / Mayhemco. Utforsk Blocked: Pixel Panzer på Google Play for å oppleve vår fartsfylte retro-arkadeaction på nært hold.


Hashtags & SEO Topics

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

Fra CPI-fælden til loyale spillere: Skalering af mobilspil med Firebase In-App Actions og Google Ads (UAC 2.0)

Fra CPI-fælden til loyale spillere: Skalering af mobilspil med Firebase In-App Actions og Google Ads (UAC 2.0)

Enhver indie-spiludvikler, der lancerer en mobiltitel, står før eller siden over for Cost-Per-Install (CPI)-paradokset:

Du lancerer en betalt brugeranskaffelseskampagne (User Acquisition), glæder dig over en bølge af billige downloads og ser installationstælleren på Google Play stige støt. Men når du åbner dit analyse-dashboard 48 timer senere, rammer den barske virkelighed:

1.000 installationer ──► 500 øjeblikkelige afinstallationer (< 2 min.) ──► 50 gennemførelser af niveau 1 ──► 5 fastholdte spillere

Over 50 % af de erhvervede brugere slettede spillet, inden de overhovedet havde gennemført det allerførste niveau.

Hvis du kører en standard Google Ads-appkampagne til installationer (UAC 1.0) med grundlæggende CPI-budgivning, gør Googles maskinlæringsalgoritme præcis, hvad du har bedt den om: find de billigst mulige brugere, som trykker på "Installer" på Google Play. Desværre er de billigste brugere på annoncenetværket ofte belønningsannonce-jægere, tilfældige klikkere eller konti tæt på botnetværk, som aldrig har til hensigt at engagere sig i dit spil.

I denne artikel deler vi vores virkelige udviklings- og markedsføringsarkitektur fra vores tempofyldte retro-kampvognsactionspil, Blocked: Pixel Panzer (udviklet med MonoGame og C# af Arar Games). Vi vil undersøge, hvordan vi forbandt telemetri på enhedsniveau med Google Analytics 4 (GA4) og Google Ads-appkampagner til handlinger i appen (UAC 2.0) for at stoppe med at købe tomme installationer og i stedet tiltrække dedikerede spillere med høj fastholdelse.


1. Diagnosticering af tragten: Hvad live-analyse lærte os

Før du bruger en eneste krone på annoncenetværk, er du nødt til at vide, hvor spillerne falder fra.

I Blocked: Pixel Panzer logger vores telemetri spillets centrale livscyklusser asynkront til Firebase:

  • first_open
  • screen_view (sporing af mere end 40 tilpassede MonoGame-skærme)
  • level_completed (med parametrene level_number, score, duration_seconds)
  • skill_upgraded
  • boss_fight_result
  • app_remove (operativsystemets indbyggede afinstallationssignal)

Da vi analyserede afinstallerede sessioner i GA4 Path Exploration, var dataene entydige:

  • Ud af 63 undersøgte afinstallerede enheder havde ~30 brugere afinstalleret spillet, før de overhovedet gennemførte Niveau 1.
  • 14 brugere faldt fra umiddelbart efter at have opgraderet deres første færdigheder i spillets kerneløkke.
  • Det længste fremskridt blandt afhoppede brugere var Niveau 10 (den første verdensboss).
[ Brugerinstallationer ] 
       │
       ├──► 48 % frafald: Forlader spillet inden gennemførelse af Niveau 1 <── (CPI-spildzonen)
       │
       ├──► 30 % engagement: Opgraderer færdigheder og når Niveau 2-3
       │
       └──► 22 % kernefastholdelse: Når bossen (Niveau 10) og metaspillet

Læren var uomtvistelig: At betale for rå installationer er at kaste penge direkte i spildzonen.

For at opbygge en bæredygtig spiløkonomi var vores budmodel nødt til at optimere mod brugere, hvis adfærdssignatur matcher spillere, der rent faktisk overvinder Niveau 1 og fortsætter fremad mod Niveau 3.


2. Mekanikken i UAC 2.0: Optimering til in-app-handlinger

Google Ads App-kampagner (Universal App Campaigns) findes i distinkte optimeringsvarianter:

Kampagnemodel Budfokus Hvad algoritmen lærer Bedst egnet til
UAC 1.0 (Installationer) Maksimer installationer / Mål-CPI Profiler på brugere, der ofte installerer nye apps Tidlig lancering i butikken, hurtig volumen
UAC 2.0 (Handlinger i appen) Target CPA (Pris pr. handling) Profiler på brugere, der sandsynligvis gennemfører en bestemt milepæl i spillet Bæredygtig fastholdelse, vækst i metaspillet
UAC 2.5 (Værdi / ROAS) Target ROAS Profiler på brugere med højt forbrug (hvaler) Spil med massiv indtægtsgenerering via køb i appen

Under UAC 2.0 (Handlinger i appen) fastsætter du en Target Cost Per Action (Target CPA) – eksempelvis 0,20 $ pr. gennemførelse af Niveau 1.

Googles neurale netværk for Smart Bidding analyserer derefter hundredvis af adfærdssignaler på tværs af Google Play, YouTube, Google Søgning og millioner af apps på Google Displaynetværket (AdMob). Det byder aggressivt kun, når en annoncevisning matcher en bruger, hvis historiske vaner indikerer, at vedkommende vil downloade spillet, spille forbi introduktionen og fuldføre Niveau 1.


3. Trin-for-trin implementering: Fra C#-telemetri til Google Ads

Her er den nøjagtige tekniske pipeline, vi brugte til at omdanne fremskridt i spillet til handlekraftige konverteringsmål for annoncering.

Trin 1: Telemetri-krog på enheden (MonoGame / C#)

I Blocked.Shared/Managers/AnalyticsManager.cs beregner spillet score, skade og tid, hver gang spilleren rydder en kampzone, og sender derefter level_completed uden at blokere 60 FPS gengivelsestråden:

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;
        
        // Sendes til Android Firebase SDK via JNI (ikke-blokerende SQLite-buffer)
        _service.LogEvent(AnalyticsEvents.LevelCompleted, _payload);
    }
    catch (Exception ex)
    {
        // Telemetri må aldrig få spillet til at gå ned
        Warn(ex);
    }
}

Trin 2: Syntetisering af GA4-hændelser (Ingen appopdatering påkrævet)

Google Ads kan ikke byde direkte på parameterunderforespørgsler såsom level_completed WHERE level_number == 1 som standard. Men Google Analytics 4 giver dig mulighed for at syntetisere tilpassede hændelser i realtid ud fra indkommende telemetri uden at udrulle en opdatering i appbutikken:

  1. I GA4-konsollen, gå til Admin ➔ Data display ➔ Events.
  2. Klik på Create event og konfigurer:
    • Custom event name: level_1_completed
    • Matching conditions:
      • event_name equals level_completed
      • level_number equals 1
    • Markér "Copy parameters from the source event" for at bevare scores og sessionsmålinger.
  3. Gem konfigurationen.
  4. På fanen Events eller Key events, find level_1_completed og slå "Mark as key event" til.

Nu udsender GA4 automatisk en dedikeret level_1_completed-konverteringshændelse, hver gang en spiller et vilkårligt sted i verden gennemfører Niveau 1.

Trin 3: Import af konverteringshandlinger til Google Ads

  1. Åbn Google Ads (ads.google.com).
  2. Gå til Mål ➔ Konverteringer ➔ Oversigt.
  3. Klik på Ny konverteringshandling ➔ Import ➔ Google Analytics 4-ejendomme (Firebase).
  4. Vælg level_1_completed fra listen.
  5. Sæt kategorien til Engagement eller Opnået niveau.
  6. Indstil konverteringshandlingen som Primær, så Smart Bidding aktivt optimerer mod den.
[ Mobilspil: Niveau 1 gennemført ]
                │
                │  LogEvent("level_completed", { level_number: 1 })
                ▼
[ Firebase Analytics Engine ]
                │
                │  GA4-regel: Syntetiser "level_1_completed"
                ▼
[ GA4 Key Event (Konvertering) ]
                │
                │  Google Ads forbundet integration
                ▼
[ Google Ads Smart Bidding Engine (UAC 2.0 Target CPA) ]

4. Sådan overvindes koldstartsproblemet: Tragtstrategien

En almindelig fejl, som indie-udviklere begår ved overgangen til UAC 2.0, er at sigte for dybt ind i spillet for tidligt.

Læringsvolumen for maskinlæring

Googles algoritmer for Smart Bidding kræver en statistisk minimumstærskel for at træne effektivt:

  • Den gyldne regel: En kampagne bør generere mindst 10 til 20 målkonverteringer i appen om dagen for at forlade "Læringsfasen" og opnå optimal budgivningseffektivitet.

I vores tidlige analysegennemgang oprettede vi en målgruppe ved navn Quality_Players_Level_3 (spillere, der havde gennemført Niveau 3 eller højere), som havde akkumuleret 17 spillere.

Hvis vi havde lanceret en kampagne med direkte målretning mod Niveau 3 med det samme:

  • Ville det have krævet massive annonceudgifter på forhånd at generere 15 Niveau 3-konverteringer dagligt.
  • Med kun 17 historiske datamønstre var algoritmens sammenligningsgrundlag for snævert, hvilket risikerede uregelmæssige budstigninger eller fuldstændig standsning af visninger ("Too small to serve").

Den to-trins tragtløsning

I stedet for en alt-eller-intet-tilgang valgte vi en faset tragtmodel:

flowchart TD
    A["Fase 1: Skaler Level 1 Completed"] --> B["Hverver engagerede spillere til lav tCPA"]
    B --> C["Filtrerer 100 % af ikke-spillende installationsafhoppere fra"]
    C --> D["Fyld 'Quality_Players_Level_3' målgruppen (100+ spillere)"]
    D --> E["Fase 2: Skift Target CPA til Niveau 3 / Færdighedsopgraderinger"]
  1. Trin 1 (Volumen og hygiejne): Optimer til level_1_completed. Da ca. 50–60 % af ægte spillere kan klare Niveau 1, sikrer kampagnen nemt 20+ konverteringer dagligt til en lav Target CPA (~0,15 \(– 0,25\)). Dette renser øjeblikkeligt ud i lavkvalitets installationsfarme og opbygger en aktiv brugerbase.
  2. Trin 2 (Finjustering): Efterhånden som hundredvis af spillere gennemfører Niveau 1, bevæger en stabil procentdel sig naturligt videre til Niveau 3, 5 og 10. Når puljen Quality_Players_Level_3 overstiger 100–200 aktive brugere, kan kampagnens målsætning sikkert overgå til Niveau 3 eller metaspilsmilepæle (skill_upgraded) for maksimal levetidsværdi.

5. Markedsudvælgelse og geografisk arbitrage

At byde på Tier-1-markeder (USA, Storbritannien, Tyskland) med en ukalibreret kampagne kan opbruge små indie-budgetter på få timer (1,50 \(– 4,00\) pr. handling).

Til vores indledende UAC 2.0-testkørsel for Blocked: Pixel Panzer udvalgte vi en strategisk klynge af fire højvolumen, omkostningseffektive og spilleglade markeder:

  1. Tyrkiet (TR): Stærk lokal spillerbase, stort engagement i arkade-/actiontitler og lave anskaffelsesomkostninger.
  2. Brasilien (BR): Et af verdens største Android-spilmarkeder. Brasilianske mobilspillere har en enorm passion for retroæstetik og arkadekampe.
  3. Mexico (MX): Det næststørste latinamerikanske spilknudepunkt med tæt volumen og loyale spillerfællesskaber.
  4. Polen (PL): Et ideelt europæisk testmarked – markant højere AdMob eCPM-indtægter end Sydamerika, men væsentligt lavere brugeranskaffelsesomkostninger end Vesteuropa.

Indbygget lokalisering: Den hemmelige multiplikator

At køre annoncer på udenlandske markeder konverterer kun, hvis oplevelsen inde i spillet matcher butikkens præsentation. I Blocked: Pixel Panzer understøttes alle fire markeder med fuld indbygget lokalisering fra dag ét:

  • tr.json (Tyrkisk)
  • pt-BR.json (Brasiliansk portugisisk)
  • es-419.json (Latinamerikansk spansk)
  • pl.json (Polsk)

Når en spiller fra São Paulo eller Warszawa trykker på en annonce, installerer spillet og straks møder sit modersmål, sker indlevelsen med det samme – hvilket øger gennemførelsesprocenten for Niveau 1 markant.

Tip til geografisk målretning: Under placeringsindstillingerne i Google Ads skal du altid ændre standardindstillingen "Tilstedeværelse eller interesse" til "Tilstedeværelse: Personer, der befinder sig i eller regelmæssigt besøger dine inkluderede lokationer". Dette sikrer, at dit budget udelukkende bruges på brugere, der fysisk befinder sig i dine mållande, og udelukker trafik fra udenlandske VPN-forbindelser eller uvedkommende søgninger.


6. Kreative elementer: Hvorfor video forstærker og aldrig kannibaliserer

Når udviklere sammensætter annonceaktiver i Google Ads, spørger de ofte: “Hvis jeg tilføjer gameplay-videoer, vil det så overskygge mine flotte screenshots?”

Svaret er et rungende nej. Google Ads arbejder på tværs af særskilte multikanal-opgørelser:

  • Overskrifter og skærmbilleder: Dominerer Google Play-søgeresultater, sektioner for anbefalede apps og display-bannernetværk.
  • Video: Åbner op for det enorme inventar på YouTube Shorts, instream-prerolls og belønnede videoplaceringer (rewarded video) i andre populære mobilspil.

I tempofyldte spil som Blocked: Pixel Panzer kan statiske skærmbilleder vise pixelgrafikken, men kun video kan demonstrere følelsen af at undvige sværme af kugler (bullet-hell), udløse eksplosive kædereaktioner og ødelægge fjendtlige jagerfly.

Spillere, der installerer efter at have set autentisk gameplay-video, forstår allerede styringen og mekanikken. Følgelig er deres konverteringsrate på level_1_completed markant højere end hos brugere, der udelukkende er erhvervet via statisk grafik.


7. Tjekliste for indie-udviklere

Før du lancerer din næste mobilspils-annoncekampagne, bør du gennemgå denne tjekliste:

  • Bekræft spillets telemetri: Sørg for, at level_completed og niveaumilepæle logges med rene parametre og nul GC-allokeringer på hovedtråden.
  • Syntetiser GA4-nøglehændelser: Opret dedikerede hændelser (f.eks. level_1_completed) og markér dem som nøglehændelser i GA4.
  • Importer til Google Ads: Forbind Firebase og Google Ads, importer handlingen, og marker den som Primær.
  • Budfokus: Vælg Handlinger i appen (Target CPA) frem for ren installationsvolumen.
  • Kalibrer start-CPA: Fastsæt realistiske mål-CPA'er (0,15 \(– 0,30\) afhængigt af landets niveau) og giv algoritmen mindst 3-4 dages uforstyrret maskinlæring.
  • Faseopdel din tragt: Start med en tidlig, opnåelig milepæl (Niveau 1) for at opbygge konverteringshastighed, og gå derefter gradvist over til dybere progressionsmål.

Ved at flytte dit fokus fra at købe downloads til at købe spilmæssige milepæle, forvandler du annoncering fra en uforudsigelig udgift til en gentagelig vækstmotor med høj spillerfastholdelse.


Skrevet af ingeniørteamet hos Arar Games / Mayhemco. Udforsk Blocked: Pixel Panzer på Google Play for at opleve vores hæsblæsende retro-arcadeaction på første hånd.


Hashtags & SEO Topics

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

CPI Tuzağından Sadık Oyunculara: Firebase Uygulama İçi İşlemleri ve Google Ads (UAC 2.0) ile Mobil Oyun Büyütme

CPI Tuzağından Sadık Oyunculara: Firebase Uygulama İçi İşlemleri ve Google Ads (UAC 2.0) ile Mobil Oyun Büyütme

Mobil platforma oyun çıkaran her bağımsız (indie) oyun geliştiricisi er ya da geç Yükleme Başına Maliyet (CPI) Paradoksu ile yüzleşir:

Ücretli bir kullanıcı kazanım (UA) kampanyası başlatır, Google Play'de artan indirme sayılarını kutlar ve heyecanla beklersiniz. Fakat 48 saat sonra analitik panelini açtığınızda acı gerçekle karşılaşırsınız:

1.000 İndirme ──► 500 Anında Silme (< 2 dk) ──► 50 Seviye 1 Tamamlama ──► 5 Sadık Oyuncu

Kazanılan kullanıcıların %50'den fazlası daha ilk bölümü dahi bitirmeden oyunu telefonundan silmiştir.

Eğer standart bir Google Ads Yükleme Kampanyası (UAC 1.0 - CPI) yürütüyorsanız, Google'ın makine öğrenimi algoritması tam olarak sizin ona emrettiğiniz şeyi yapmaktadır: "Google Play'de Yükle butonuna basacak en ucuz kişileri bul." Ne yazık ki reklam ağlarındaki en ucuz kullanıcılar genellikle ödüllü reklam avcıları, yanlışlıkla tıklayanlar veya oyununuzla asla derin bir bağ kurmayacak olan kullanıcılardır.

Bu makalede, Arar Games tarafından MonoGame ve C# ile geliştirilen hızlı tempolu retro tank aksiyon oyunumuz Blocked: Pixel Panzer üzerinde kurduğumuz gerçek dünya mühendislik ve pazarlama mimarisini paylaşıyoruz. Cihaz içi telemetriyi Google Analytics 4 (GA4) ve Google Ads Uygulama İçi İşlemler (UAC 2.0) kampanyalarıyla nasıl bağladığımızı; boş indirmelere para saçmak yerine nasıl oyunu gerçekten oynayan kaliteli oyuncuları çektiğimizi tüm adımlarıyla inceliyoruz.


1. Huniyi Teşhis Etmek: Canlı Analitik Bize Ne Öğretti?

Reklam ağlarına tek bir kuruş harcamadan önce oyuncuların nerede döküldüğünü (churn) bilmek zorundasınız.

Blocked: Pixel Panzer oyununda telemetri sistemimiz temel oynanış döngülerini Firebase'e asenkron olarak kaydeder:

  • first_open (ilk açılış)
  • screen_view (40'tan fazla özel MonoGame ekranının takibi)
  • level_completed (level_number, score, duration_seconds parametreleriyle)
  • skill_upgraded (yetenek geliştirme)
  • boss_fight_result (boss savaşı zafer/yenilgi)
  • app_remove (işletim sisteminin oyunu silme sinyali)

GA4 Yol Keşfi (Path Exploration) raporunda oyunu silen kullanıcıları incelediğimizde tablo çok netti:

  • İncelenen silinmiş oturumlarda kullanıcıların yaklaşık 30'u daha Seviye 1'i dahi bitirmeden oyunu silmişti.
  • 14 kullanıcı ilk yeteneklerini geliştirdikten hemen sonra oyun döngüsünden ayrılmıştı.
  • Oyunu silen oyuncuların ulaştığı maksimum nokta ise Seviye 10 (İlk Dünya Boss'u) olmuştu.
[ Oyunu Yükleyenler ] 
       │
       ├──► %48 Churn: Seviye 1 bitmeden silenler <── (CPI İsraf Bölgesi)
       │
       ├──► %30 Etkileşim: Yetenek yükseltip Seviye 2-3'e geçenler
       │
       └──► %22 Sadık Kitle: Boss'a (Seviye 10) ve Meta-Oyuna Ulaşanlar

Çıkarılan ders tartışmasızdı: Yalnızca indirme sayısına para ödemek, bütçeyi doğrudan israf bölgesine dökmektir.

Sürdürülebilir bir oyun ekonomisi inşa etmek için reklam teklif modelimizin; oyunu gerçekten oynayan, Seviye 1'i geçen ve Seviye 3'e doğru ilerleyen oyuncu profillerini optimize etmesi gerekiyordu.


2. UAC 2.0 Mekaniği: Uygulama İçi İşlemlere Odaklanmak

Google Ads Uygulama Tanıtımı Kampanyaları (Universal App Campaigns) temelde farklı optimizasyon modellerine sahiptir:

Kampanya Modeli Teklif Odağı Algoritmanın Öğrendiği Profil En Uygun Olduğu Senaryo
UAC 1.0 (Yüklemeler) Yükleme Hacmi / Hedef CPI Sürekli yeni uygulama indiren kullanıcı profili İlk mağaza lansmanı, hacim patlaması
UAC 2.0 (İşlemler) Hedef EBM (İşlem Başı Maliyet) Belirli bir oyun içi eşiği tamamlayan kullanıcı profili Sürdürülebilir tutundurma, kaliteli oyuncu
UAC 2.5 (Değer / ROAS) Hedef ROAS Uygulama içi satın alma yapan (balina) profili Yoğun mikro ödeme içeren oyunlar

UAC 2.0 (Uygulama İçi İşlemler) modelinde Seviye 1 tamamlama başına bir Hedef EBM (örneğin 6,00 ₺ / ~0.20$) belirlersiniz.

Google'ın Akıllı Teklif (Smart Bidding) sinir ağı; Google Play, YouTube, Google Arama ve AdMob ağındaki milyonlarca uygulamada yüzlerce davranışsal sinyali analiz eder. Reklamı yalnızca geçmiş alışkanlıkları oyunu indirip ilk bölümü başarıyla tamamlayacağını gösteren oyunculara gösterir.


3. Adım Adım Kurulum: C# Telemetriden Google Ads'e

Oyun içi başarıları reklam dönüşüm hedefine dönüştürürken izlediğimiz teknik akış:

Adım 1: Cihaz Tarafı Telemetri Kancası (MonoGame / C#)

Blocked.Shared/Managers/AnalyticsManager.cs dosyasında oyuncu bir bölümü temizlediğinde skor ve süre hesaplanır; 60 FPS render döngüsünü aksatmadan level_completed olayı ateşlenir:

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;
        
        // Android Firebase SDK'sına JNI üzerinden iletilir (kasmayan SQLite tamponu)
        _service.LogEvent(AnalyticsEvents.LevelCompleted, _payload);
    }
    catch (Exception ex)
    {
        // Telemetri asla oyunu çökertecek bir hataya yol açmamalıdır
        Warn(ex);
    }
}

Adım 2: GA4 Özel Etkinlik Türetme (Kod Güncellemesi Gerekmez)

Google Ads doğrudan level_completed WHERE level_number == 1 gibi parametre alt sorgularını hedefleme seçeneği olarak sunmaz. Ancak Google Analytics 4 (GA4), mağazaya yeni güncelleme göndermeden panel üzerinden yeni etkinlik türetmeye imkan tanır:

  1. GA4 Konsolunda Yönetici ➔ Veri görünümü ➔ Etkinlikler yolunu izleyin.
  2. Etkinlik oluştur butonuna tıklayın:
    • Özel etkinlik adı: level_1_completed
    • Eşleşme koşulları:
      • event_name equals level_completed
      • level_number equals 1
    • Skor ve süre verilerinin korunması için "Copy parameters from the source event" kutusunu işaretleyin.
  3. Kaydedin.
  4. Önemli olaylar (Key events) sekmesinde level_1_completed olayının yanındaki Yıldızı (⭐) aktif hale getirin.

Artık dünyanın neresinde bir oyuncu Seviye 1'i tamamlarsa GA4 bunu bağımsız bir dönüşüm olayı olarak kaydeder.

Adım 3: Dönüşümün Google Ads'e Aktarılması

  1. Google Ads (ads.google.com) paneline gidin.
  2. Hedefler ➔ Dönüşümler ➔ Özet sekmesine geçin.
  3. Yeni dönüşüm işlemi ➔ İçe Aktar ➔ Google Analytics 4 mülkleri (Firebase) seçeneğini seçin.
  4. Listeden level_1_completed olayını seçip kategorisini Level achieved (Seviyeye ulaşıldı) veya Engagement olarak belirleyin.
  5. İşlemi Birincil (Primary) olarak işaretleyin; böylece reklam algoritması tekliflerini bu olaya göre optimize eder.
[ Mobil Oyun: Seviye 1 Tamamlandı ]
                │
                │  LogEvent("level_completed", { level_number: 1 })
                ▼
[ Firebase Analytics Motoru ]
                │
                │  GA4 Kuralı: "level_1_completed" sentezlenir
                ▼
[ GA4 Önemli Olay (Dönüşüm) ]
                │
                │  Google Ads Entegrasyonu
                ▼
[ Google Ads Akıllı Teklif Motoru (UAC 2.0 Hedef EBM) ]

4. Soğuk Başlangıç Problemini Aşmak: Huni Stratejisi

Geliştiricilerin UAC 2.0'a geçerken en sık yaptığı hata, doğrudan oyunun çok ileri bir aşamasını hedef seçmektir.

Makine Öğreniminin Hacim Kuralı

Google Ads Akıllı Teklif algoritmalarının sağlıklı eğitilmesi için belirli bir veri eşiği gerekir:

  • Kritik Kural: Bir kampanyanın "Öğrenme Süreci"nden başarıyla çıkıp kararlı çalışabilmesi için günde en az 10 ila 20 hedef dönüşüm toplaması önerilir.

İlk analizimizde Seviye 3 ve üzerini geçen oyunculardan oluşan Quality_Players_Level_3 adında bir kitle oluşturmuştuk ve bu kitlede 17 kullanıcı birikmişti.

Eğer doğrudan Seviye 3 hedefli bir kampanya başlatsaydık:

  • Günde 15 kişinin Seviye 3'e ulaşmasını sağlamak çok yüksek bir bütçe gerektirirdi.
  • 17 kişilik dar bir örneklemle yapay zeka genelleme yapamaz, hedefleme tıkanır veya gösterim dururdu ("Too small to serve").

Kademeli Huni Çözümü

[ 1. Aşama: Seviye 1 Tamamlama ] ──► Düşük maliyetle kaliteli oyuncu çekilir
                 │
                 └──► İlk dakikada silen çöp kitle tamamen elenir
                                   │
                                   └──► "Quality_Players_Level_3" havuzu hızla 100+ kişiye ulaşır
                                                     │
                                                     └──► [ 2. Aşama: Hedef Seviye 3'e Kaydırılır ]
  1. 1. Aşama (Hacim ve Temizlik): Hedef = level_1_completed. Gerçek oyuncuların %50-60'ı Seviye 1'i geçtiği için kampanya düşük maliyetle (örneğin 5-7 ₺ / ~$0.18) günde 20-30 dönüşümü rahatlıkla toplar. Bu aşama oyunu indirip açmayan botları ve çöp kitleyi anında filtreler.
  2. 2. Aşama (Rafine Etme): Seviye 1'i geçen yüzlerce oyuncunun bir kısmı Seviye 3, 5 ve 10'a ilerler. Quality_Players_Level_3 kitle havuzu 100-200 kişiyi aştığında kampanya hedefi doğrudan Seviye 3'e veya yetenek yükseltmelerine (skill_upgraded) kaydırılır.

5. Pazar Seçimi ve Coğrafi Denge

İlk testlerde doğrudan ABD, İngiltere veya Almanya gibi 1. Seviye (Tier-1) pazarlara girmek küçük bütçeleri saatler içinde eritebilir ($2.00 - $5.00 işlem maliyeti).

Blocked: Pixel Panzer için hem bütçe dostu hem de piksel aksiyon türüne yoğun ilgi gösteren 4 stratejik pazar seçtik:

  1. Türkiye (TR): Güçlü yerel oyuncu tabanı, arcade türüne sevgi ve ekonomik maliyetler.
  2. Brezilya (BR): Dünyanın en büyük Android oyun pazarlarından biri. Retro tank savaşlarına ve piksel estetiğine büyük ilgi duyarlar.
  3. Meksika (MX): Latin Amerika'nın ikinci büyük merkezi; sadık oyuncu toplulukları ve yüksek indirme hacmi sunar.
  4. Polonya (PL): Harika bir Avrupa test pazarı. AdMob reklam getirisi (eCPM) Latin Amerika'dan belirgin şekilde yüksektir, ancak reklam verme maliyeti Batı Avrupa'ya kıyasla çok daha dengelidir.

Yerel Dil Desteğinin Önemi

Yabancı pazarlarda reklam vermek ancak oyun içi deneyim oyuncunun diline hitap ediyorsa yüksek dönüşüm getirir. Blocked: Pixel Panzer bu 4 pazarı da tam yerelleştirme ile karşılar:

  • tr.json (Türkçe)
  • pt-BR.json (Brezilya Portekizcesi)
  • es-419.json (Latin Amerika İspanyolcası)
  • pl.json (Lehçe)

Konum Hedefleme İpucu: Google Ads konum ayarlarında varsayılan "Varlık veya ilgi alanı" yerine mutlaka "Varlık: Dahil ettiğiniz konumlarda bulunan veya bu konumlara düzenli olarak giden kişiler" seçeneğini işaretleyin. Böylece bütçeniz yabancı VPN'ler veya alakasız aramalara değil, doğrudan bu ülkelerde yaşayan gerçek oyunculara harcanır.


6. Reklam Görselleri: Video Resimlerin Önüne Geçer mi?

Geliştiricilerin en çok tereddüt ettiği konulardan biri: "Oynanış videosu eklersem hazırladığım görsellerin gösterimini engeller mi?"

Cevap: Kesinlikle hayır. Google Ads çok kanallı envanter mantığıyla çalışır:

  • Başlıklar ve Resimler: Google Play arama sonuçlarında, önerilen oyunlar vitrininde ve diğer uygulamaların banner alanlarında gösterilir.
  • Video: Görsellerin hiç giremediği devasa YouTube (YouTube Shorts, video arası reklamlar) ve diğer mobil oyunlardaki ödüllü video alanlarını açar.

Aksiyon odaklı oyunlarda durağan bir görsel tankı gösterir; ancak tankın ateş ettiğini, mermilerden kaçtığını ve boss'larla kapıştığını yalnızca video hissettirebilir. Oynanışı izleyerek gelen oyuncu oyunu ilk dakikada silmez; Seviye 1 tamamlama oranı çok daha yüksek olur.


7. Bağımsız Geliştiriciler İçin Özet Kontrol Listesi

Bir sonraki mobil oyun reklam kampanyanızı açmadan önce şu adımları tamamladığınızdan emin olun:

  • Oyun İçi Telemetri: level_completed olayının sıfır bellek tahsisiyle (GC-free) sorunsuz gönderildiğinden emin olun.
  • GA4 Dönüşüm Sentezi: level_1_completed olayını GA4 panelinde oluşturup Önemli Olay (Key Event) olarak işaretleyin.
  • Google Ads İçe Aktarma: İşlemi Google Ads'e aktarın ve Birincil hedef yapın.
  • Teklif Odağı: İndirme sayısı yerine Uygulama İçi İşlemler (Hedef EBM) seçin.
  • Kademeli Huni: Önce Seviye 1 ile hacim ve veri toplayın; kitle havuzu olgunlaşınca hedefi Seviye 3'e yükseltin.

Reklam stratejinizi "indirme satın almak" yerine "oynanış eşiği satın almak" olarak değiştirdiğinizde, pazarlama bütçeniz tahmin edilemeyen bir masraf olmaktan çıkıp sadık bir oyuncu büyüme motoruna dönüşür.


Arar Games / Mayhemco mühendislik ekibi tarafından kaleme alınmıştır. Retro arcade savaş dinamiklerimizi ilk elden deneyimlemek için Google Play üzerinden Blocked: Pixel Panzer oyunumuzu inceleyebilirsiniz.


Hashtags & SEO Topics

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