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_openscreen_view(sporing av over 40 tilpassede MonoGame-skjermer)level_completed(med parametrenelevel_number,score,duration_seconds)skill_upgradedboss_fight_resultapp_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:
- I GA4-konsollen, naviger til Admin ➔ Data display ➔ Events.
- Klikk på Create event og konfigurer:
- Custom event name:
level_1_completed - Matching conditions:
event_nameequalslevel_completedlevel_numberequals1
- Huk av for "Copy parameters from the source event" for å bevare poengsummer og øktdata.
- Custom event name:
- Lagre konfigurasjonen.
- På fanen Events eller Key events, finn
level_1_completedog 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
- Åpne Google Ads (
ads.google.com). - Gå til Mål ➔ Konverteringer ➔ Sammendrag.
- Klikk på Ny konverteringshandling ➔ Importer ➔ Google Analytics 4-eiendommer (Firebase).
- Velg
level_1_completedfra listen. - Sett kategorien til Engasjement eller Oppnådd nivå.
- 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"]
- 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. - 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_3passerer 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:
- Tyrkia (TR): Sterk lokal spillerbase, stor interesse for arkade-/actiontitler og lave anskaffelseskostnader.
- Brasil (BR): Et av de største Android-spillmarkedene i verden. Brasilianske mobilspillere har en enorm forkjærlighet for retro-estetikk og arkadeslag.
- Mexico (MX): Det nest største knutepunktet for spill i Latin-Amerika, med stort volum og lojale spillermiljøer.
- 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_completedog 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
Hiç yorum yok:
Yorum Gönder