Nuo CPI spąstų iki lojalių žaidėjų: mobiliųjų žaidimų mastelio didinimas su Firebase In-App Actions ir Google Ads (UAC 2.0)
Kiekvienas nepriklausomas žaidimų kūrėjas (indie), išleidžiantis mobilųjį žaidimą, anksčiau ar vėliau susiduria su mokesčio už įdiegimą (Cost-Per-Install - CPI) paradoksu:
Paleidžiate mokamą vartotojų pritraukimo kampaniją (User Acquisition), džiaugiatės pigių atsisiuntimų gausa ir stebite, kaip Google Play diegimų skaitiklis kyla į viršų. Tačiau po 48 valandų atidarius analitikos skydelį pasitinka skaudi realybė:
1 000 įdiegimų ──► 500 momentinių pašalinimų (< 2 min.) ──► 50 baigtų 1 lygių ──► 5 lojalūs žaidėjai
Daugiau nei 50 % pritrauktų vartotojų ištrynė žaidimą dar nespėję užbaigti net pirmojo lygio.
Jei vykdote standartinę Google Ads programėlių kampaniją diegimams (UAC 1.0) su įprastu CPI kainų siūlymu, Google mašininio mokymosi algoritmas daro būtent tai, ko prašėte: suranda kuo pigesnius vartotojus, kurie Google Play paspaus „Įdiegti“. Deja, patys pigiausi vartotojai reklamos tinkle dažnai yra premijinių vaizdo įrašų medžiotojai, atsitiktiniai spustelėtojai arba botų profiliai, kurie niekada neketina iš tikrųjų įsitraukti į jūsų žaidimą.
Šiame straipsnyje dalinamės realia inžinerine ir rinkodaros architektūra iš mūsų dinamiško retro tankų veiksmo žaidimo Blocked: Pixel Panzer (kurį su MonoGame ir C# sukūrė Arar Games). Aptariame, kaip sujungėme įrenginio telemetriją su Google Analytics 4 (GA4) ir Google Ads programėlių kampanijomis veiksmams programėlėje (UAC 2.0), kad nustotume pirkti tuščius diegimus ir pradėtume pritraukti atsidavusius, ilgai išliekančius žaidėjus.
1. Piltuvėlio diagnostika: ko mus išmokė tiesioginė analitika
Prieš išleisdami bent vieną eurą reklamos tinkluose, privalote tiksliai žinoti, kur žaidėjai atkrenta.
Žaidime Blocked: Pixel Panzer mūsų telemetrija asynchroniškai registruoja pagrindinius žaidimo eigos ciklus į Firebase:
first_openscreen_view(daugiau nei 40 pritaikytų MonoGame ekranų stebėjimas)level_completed(su parametraislevel_number,score,duration_seconds)skill_upgradedboss_fight_resultapp_remove(operacinės sistemos diegimo pašalinimo signalas)
Išanalizavus pašalintas sesijas GA4 Path Exploration ataskaitoje, duomenys buvo akivaizdūs:
- Iš 63 ištirtų pašalintų įrenginių apie 30 vartotojų ištrynė žaidimą dar nebaigę 1 lygio.
- 14 vartotojų pasitraukė iškart po to, kai atnaujino savo pirmuosius įgūdžius žaidimo cikle.
- Toliausiai pažengęs pasitraukusių žaidėjų pasiektas taškas buvo 10 lygis (pirmasis pasaulio bosas).
[ Vartotojas įdiegia ]
│
├──► 48 % nubyrėjimas: Pasitraukia nebaigę 1 lygio <── (CPI švaistymo zona)
│
├──► 30 % įsitraukimas: Tobulina įgūdžius ir pasiekia 2–3 lygius
│
└──► 22 % branduolio išlaikymas: Pasiekia bosą (10 lygį) ir metažaidimą
Išvada buvo neginčijama: Mokėti už plikus diegimus reiškia tiesiogiai mesti biudžetą į nubyrėjimo zoną.
Norint sukurti tvarią žaidimo ekonomiką, mūsų siūlymo modelis turėjo optimizuotis vartotojams, kurių elgsenos bruožai atitinka žaidėjus, kurie iš tiesų įveikia 1 lygį ir keliauja link 3 lygio.
2. UAC 2.0 mechanika: optimizavimas programėlės veiksmams
Google Ads programėlių kampanijos (Universal App Campaigns) siūlo kelis skirtingus optimizavimo modelius:
| Kampanijos modelis | Kainos siūlymo fokusas | Ko išmoksta algoritmas | Kam labiausiai tinka |
|---|---|---|---|
| UAC 1.0 (Diegimai) | Maksimalus diegimų skaičius / Tikslinis CPI | Vartotojų profiliai, kurie dažnai diegia naujas programėles | Pradžia parduotuvėje, greitas apimties auginimas |
| UAC 2.0 (In-App Actions) | Target CPA (Tikslinė kaina už veiksmą) | Vartotojų profiliai, kurie greičiausiai pasieks konkretų žaidimo etapą | Tvarus žaidėjų išlaikymas, metažaidimo augimas |
| UAC 2.5 (Vertė / ROAS) | Target ROAS | Daugiausiai išleidžiančių vartotojų profiliai (banginiai) | Žaidimai, kurių pajamos daugiausia gaunamos iš pirkimų programėlėje |
Pasirinkus UAC 2.0 (In-App Actions), nustatoma tikslinė kaina už veiksmą (Target CPA) – pavyzdžiui, 0,20 $ už vieną įveiktą 1 lygį.
Google Smart Bidding neuroninis tinklas tuomet analizuoja šimtus elgsenos signalų Google Play, YouTube, Google paieškoje ir milijonuose programėlių Google vaizdinės reklamos tinkle (AdMob). Jis agresyviai siūlo kainą tik tada, kai reklamos parodymas atitinka vartotoją, kurio ankstesni įpročiai rodo, kad jis atsisiųs žaidimą, praeis įvadą ir baigs 1 lygį.
3. Žingsnis po žingsnio įgyvendinimas: nuo C# telemetrijos iki Google Ads
Štai tiksli techninė grandinė, kurią naudojome žaidimo pasiekimams paversti praktiniais reklamos konversijų tikslais.
1 žingsnis: Įrenginio telemetrijos integracija (MonoGame / C#)
Faile Blocked.Shared/Managers/AnalyticsManager.cs kaskart, kai žaidėjas įveikia kovos zoną, žaidimas apskaičiuoja taškus, patirtą žalą bei laiką ir išsiunčia level_completed, nestabdydamas 60 FPS vaizdo atvaizdavimo gijos:
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;
// Išsiunčiama į Android Firebase SDK per JNI (neblokuojantis SQLite buferis)
_service.LogEvent(AnalyticsEvents.LevelCompleted, _payload);
}
catch (Exception ex)
{
// Telemetrija niekada neturi sutrikdyti žaidimo
Warn(ex);
}
}
2 žingsnis: GA4 įvykių sintezė (nereikia atnaujinti programėlės parduotuvėje)
Google Ads pagal numatytuosius nustatymus negali tiesiogiai teikti kainos pasiūlymų parametrų antrinėms užklausoms, tokioms kaip level_completed WHERE level_number == 1. Tačiau Google Analytics 4 leidžia sintezuoti pasirinktinius įvykius realiuoju laiku iš gaunamos telemetrijos be būtinybės išleisti programėlės atnaujinimą:
- GA4 valdymo skydelyje eikite į Admin ➔ Data display ➔ Events.
- Spustelėkite Create event ir sukonfigūruokite:
- Custom event name:
level_1_completed - Matching conditions:
event_nameequalslevel_completedlevel_numberequals1
- Pažymėkite "Copy parameters from the source event", kad išsaugotumėte taškus ir sesijos rodiklius.
- Custom event name:
- Išsaugokite konfigūraciją.
- Skirtuke Events arba Key events suraskite
level_1_completedir įjunkite "Mark as key event".
Dabar kiekvieną kartą, kai žaidėjas bet kurioje pasaulio vietoje įveikia 1 lygį, GA4 automatiškai sugeneruoja dedikuotą level_1_completed konversijos įvykį.
3 žingsnis: Konversijų veiksmų importavimas į Google Ads
- Atidarykite Google Ads (
ads.google.com). - Eikite į Tikslai ➔ Konversijos ➔ Suvestinė.
- Spustelėkite Naujas konversijos veiksmas ➔ Importuoti ➔ „Google Analytics 4“ nuosavybės (Firebase).
- Sąraše pasirinkite
level_1_completed. - Nustatykite kategoriją į Įsitraukimas (Engagement) arba Pasiektas lygis (Level achieved).
- Nustatykite veiksmą kaip Pirminį (Primary), kad Smart Bidding aktyviai optimizuotų kainų siūlymą pagal jį.
[ Mobilusis žaidimas: 1 lygis baigtas ]
│
│ LogEvent("level_completed", { level_number: 1 })
▼
[ Firebase Analytics Engine ]
│
│ GA4 taisyklė: Sintezuoti "level_1_completed"
▼
[ GA4 Key Event (Konversija) ]
│
│ Google Ads susieta integracija
▼
[ Google Ads Smart Bidding Engine (UAC 2.0 Target CPA) ]
4. Šaltojo starto problemos sprendimas: Piltuvėlio strategija
Dažna nepriklausomų kūrėjų klaida pereinant prie UAC 2.0 – per anksti taikytis per giliai į žaidimą.
Mašininio mokymosi apimties taisyklė
Google Ads Smart Bidding algoritmams reikalingas minimalus statistinis duomenų kiekis, kad jie galėtų efektyviai mokytis:
- Auksinė taisyklė: Kampanija per dieną turėtų sugeneruoti bent 10–20 tikslinių konversijų programėlėje, kad sėkmingai išeitų iš „Mokymosi etapo“ ir pasiektų optimalų kainų siūlymo efektyvumą.
Pradinėje analizėje buvome sukūrę auditoriją pavadinimu Quality_Players_Level_3 (žaidėjai, įveikę 3 ar aukštesnį lygį), kurioje buvo sukaupta 17 žaidėjų.
Jei būtume iškart paleidę kampaniją su 3 lygio taikymu:
- Norint kasdien surinkti po 15 3 lygio konversijų, būtų reikėję milžiniško pradinio reklamos biudžeto.
- Turint tik 17 ankstesnių žaidėjų, algoritmo imtis buvo per siaura, o tai kėlė didelių kainų svyravimų arba visiško rodymo sustabdymo riziką ("Too small to serve").
Dviejų pakopų piltuvėlio sprendimas
Vietoj požiūrio „viskas arba nieko“, pritaikėme nuoseklų etapinį piltuvėlį:
flowchart TD
A["1 etapas: Masto didinimas Level 1 Completed"] --> B["Pritraukia įsitraukusius žaidėjus su maža tCPA"]
B --> C["Atsijoja 100 % nežaidžiančių pašalintojų"]
C --> D["Užpildo 'Quality_Players_Level_3' auditoriją (100+ žaidėjų)"]
D --> E["2 etapas: Perkelti Target CPA į 3 lygį / Įgūdžių tobulinimą"]
- 1 etapas (Apimtis ir higiena): Optimizavimas pagal
level_1_completed. Kadangi apie 50–60 % tikrų žaidėjų sugeba įveikti 1 lygį, kampanija lengvai surenka 20+ konversijų per dieną su maža Target CPA (~0,15 \(– 0,25\)). Tai akimirksniu pašalina nekokybiškas diegimų fermas ir sukuria aktyvią žaidėjų bazę. - 2 etapas (Tikslinimas): Kai šimtai žaidėjų baigia 1 lygį, stabili jų dalis natūraliai pereina į 3, 5 ir 10 lygius. Kai
Quality_Players_Level_3grupė viršija 100–200 aktyvių vartotojų, kampanijos tikslą galima saugiai perkelti į 3 lygį arba metažaidimo pasiekimus (skill_upgraded) didžiausiai žaidėjo gyvavimo ciklo vertei (LTV).
5. Rinkų pasirinkimas ir geografinis arbitražas
Siūlyti kainas Tier-1 rinkose (JAV, JK, Vokietijoje) su nesukalibruota kampanija gali ištuštinti nedidelį indie biudžetą vos per kelias valandas (1,50 \(– 4,00\) už veiksmą).
Pradiniam Blocked: Pixel Panzer UAC 2.0 bandymui pasirinkome strategišką keturių didelės apimties, ekonomiškų ir žaidimus mėgstančių rinkų grupę:
- Turkija (TR): Stipri vietinė žaidėjų bazė, didelis susidomėjimas arkadiniais veiksmo žaidimais ir mažos pritraukimo išlaidos.
- Brazilija (BR): Viena didžiausių Android žaidimų rinkų pasaulyje. Brazilijos mobilieji žaidėjai turi didžiulę aistrą retro estetikai ir tankų mūšiams.
- Meksika (MX): Antras pagal dydį Lotynų Amerikos žaidimų centras, siūlantis didelę apimtį ir lojalias žaidėjų bendruomenes.
- Lenkija (PL): Ideali Europos bandomoji rinka – pastebimai didesnės AdMob eCPM pajamos nei Pietų Amerikoje, tačiau gerokai mažesnės pritraukimo išlaidos nei Vakarų Europoje.
Gimtoji lokalizacija: Slaptasis daugiklis
Reklamos užsienio rinkose atsiperka tik tada, kai patirtis pačiame žaidime atitinka parduotuvės aprašymą. Žaidime Blocked: Pixel Panzer visos keturios rinkos palaikomos su gimtąja lokalizacija nuo pat pirmos dienos:
tr.json(Turkų)pt-BR.json(Brazilijos portugalų)es-419.json(Lotynų Amerikos ispanų)pl.json(Lenkų)
Kai žaidėjas iš San Paulo ar Varšuvos paspaudžia reklamą, įdiegia žaidimą ir iškart mato savo gimtąją kalbą, įsitraukimas įvyksta akimirksniu – o tai drastiškai padidina 1 lygio užbaigimo rodiklius.
Vietovės taikymo patarimas: Google Ads vietovės nustatymuose visada pakeiskite numatytąjį pasirinkimą "Buvimas arba susidomėjimas" į "Buvimas: žmonės, kurie yra jūsų įtrauktose vietovėse arba reguliariai jose lankosi". Tai užtikrina, kad jūsų biudžetas bus išleidžiamas tik vartotojams, fiziškai esantiems jūsų tikslinėse šalyse, ir pašalina srautą iš užsienio VPN ar nesusijusių paieškų.
6. Kūrybiniai resursai: kodėl vaizdo įrašai didina efektyvumą ir nekanibalizuoja
Kurdami skelbimų elementų grupes Google Ads, kūrėjai dažnai klausia: „Jei pridėsiu žaidimo eigos vaizdo įrašą, ar jis neužgoš mano išpuoselėtų ekrano kopijų?“
Atsakymas yra griežtas ne. Google Ads veikia keliuose skirtinguose kanaluose:
- Antraštės ir ekrano kopijos: Dominuoja Google Play paieškos rezultatuose, siūlomų programėlių lentynose ir vaizdinės reklamos reklamjuostėse.
- Vaizdo įrašai: Atveria prieigą prie milžiniško ploto YouTube Shorts, vaizdo įrašo intarpuose ir atlyginamuose vaizdo įrašuose (rewarded video) kituose populiariuose mobiliuosiuose žaidimuose.
Tokiuose intensyviuose žaidimuose kaip Blocked: Pixel Panzer statiniai vaizdai gali parodyti pikselių meną, tačiau tik vaizdo įrašas gali perteikti pojūtį išsisukinėjant nuo kulkų lietaus (bullet hell), inicijuojant grandinines sprogimų reakcijas ir naikinant priešo naikintuvus.
Žaidėjai, kurie įdiegia žaidimą peržiūrėję autentišką žaidimo vaizdo įrašą, jau supranta valdymą ir mechaniką. Todėl jų konversijos rodiklis įvykiui level_1_completed yra žymiai didesnis nei vartotojų, pritrauktų tik per statinius vaizdus.
7. Santraukos kontrolinis sąrašas nepriklausomiems kūrėjams
Prieš pradėdami kitą mobiliojo žaidimo reklamos kampaniją, patikrinkite šį techninį sąrašą:
- Patikrinkite žaidimo telemetriją: Įsitikinkite, kad
level_completedir lygių etapai registruojami su tvarkingais parametrais ir be GC atminties išskyrimų pagrindinėje gijoje. - Sintezuokite GA4 pagrindinius įvykius: Sukurkite dedikuotus įvykius (pvz.,
level_1_completed) ir pažymėkite juos kaip Key Events GA4 platformoje. - Importuokite į Google Ads: Susiekite Firebase ir Google Ads, importuokite veiksmą ir nustatykite kaip Pirminį (Primary).
- Kainos siūlymo fokusas: Pasirinkite In-App Actions (Target CPA), o ne gryną diegimų skaičių.
- Kalibruokite pradinę CPA: Nustatykite realistišką Target CPA (0,15 \(– 0,30\) priklausomai nuo šalies lygio) ir leiskite algoritmui netrikdomai mokytis bent 3–4 dienas.
- Suskirstykite piltuvėlį etapais: Pradėkite nuo ankstyvo, pasiekiamo etapo (1 lygis), kad sukurtumėte konversijų greitį, o vėliau pereikite prie gilesnių tikslų.
Pakeitę savo mąstyseną nuo atsisiuntimų pirkimo prie žaidimo etapų pirkimo, reklamą iš nenuspėjamų išlaidų paversite pasikartojančiu, ilgalaikio žaidėjų išlaikymo augimo varikliu.
Parašė Arar Games / Mayhemco inžinierių komanda. Išbandykite Blocked: Pixel Panzer Google Play, kad patys patirtumėte greito tempo retro arkadinį tankų veiksmą.
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