Sutikimas WebView: kaip išlaikyti natyvų ir žiniatinklio sutikimą sinchronizuotą
Dvigubos reklamjuostės problema
Daug programėlių yra iš dalies natyvios, iš dalies žiniatinklio. Žaidimas parduotuvę, naujienas ar pagalbos puslapius rodo WebView; paslaugų programėlė atvaizduoja straipsnius iš savo svetainės; hibridinė programėlė didžiąją sąsajos dalį apgaubia žiniatinklio turiniu. Kiekviena pusė turi savo sutikimo mechanizmą: natyvi programėlė naudoja programėlės CMP ar SDK, o žiniatinklio puslapiai įkelia žiniatinklio CMP. Jei jie nesujungti, vartotojo klausiama du kartus, vienoje vietoje padaryti pasirinkimai kitoje ignoruojami, o reklamos užklausos iš WebView išeina su netinkamais signalais.
Šiame vadove aprašoma, kaip suderinti natyvų ir žiniatinklio sutikimą, kad vartotojai atsakytų vieną kartą, o kiekviena reklamos užklausa nešiotų tą patį sprendimą.
Kur kiekviena pusė saugo sutikimą
Natyvi
IAB TCF nurodo, kaip programėlės CMP saugo sutikimą: iOS NSUserDefaults, Android — SharedPreferences, naudojant standartinius raktus, tokius kaip IABTCF_TCString, IABTCF_gdprApplies ir IABTCF_PurposeConsents. Reklamos SDK šiuos raktus skaito tiesiogiai. IAB GPP apibrėžia panašius raktus su prefiksu IABGPP_, pavyzdžiui, IABGPP_HDR_GppString.
Žiniatinklio
Žiniatinklio CMP sprendimą paprastai saugo pirmosios šalies slapukuose ar vietinėje saugykloje svetainės domenui ir atskleidžia jį per JavaScript funkcijas __tcfapi ir __gpp. Puslapyje esančios reklamos žymės kviečia šias funkcijas, o ne natyvią saugyklą.
Spraga
WebView turi savo slapukų ir saugyklos erdvę, atskirtą nuo įrenginio naršyklės ir nuo programėlės natyvių nuostatų. iOS WKWebView, naudojantis nepastoviąją duomenų saugyklą, uždarytas viską pamiršta. Tarp abiejų pusių niekas nenuteka, nebent jūs tai sukursite.
Pasirinkite vieną tiesos šaltinį
Pirmasis sprendimas yra tai, kuri pusė valdo sutikimą. Daugumai programėlių atsakymas yra natyvus CMP, nes:
- Jis veikia pirmas, prieš atveriant bet kokį WebView.
- Natyvūs reklamos SDK, paprastai uždirbantys didžiąją pajamų dalį, skaito natyvią saugyklą.
- iOS jį galima derinti su App Tracking Transparency užklausa.
Web-first gali būti prasmingas hibridinėms programėlėms, kurių visa sąsaja yra žiniatinklio turinys, bet tada sprendimą turite įrašyti atgal į natyvią saugyklą natyviems SDK.
Natyvaus sutikimo perdavimas į WebView
Kai tiesos šaltinis natyvus, WebView turi matyti tą patį sprendimą. Dažni šablonai:
- Įterpkite
__tcfapiįgyvendinimą. Prieš paleidžiant puslapio skriptus, įterpkite mažą skriptą, kuris apibrėžia__tcfapi(ir prireikus__gpp) ir atsako į iškvietimus TC eilute bei reikšmėmis, nuskaitytomis iš natyvios saugyklos. Puslapio reklamos žymės tada gauna natyvų sprendimą per standartinę API. - Užslopinkite žiniatinklio reklamjuostę. Sukonfigūruokite žiniatinklio CMP, kad liktų paslėptas, kai puslapis įkeliamas jūsų programėlės viduje, pavyzdžiui, pagal užklausos parametrą ar jūsų kontroliuojamą pasirinktinį user agent žetoną. Antraip vartotojas pamatys antrą reklamjuostę.
- Perduokite eilutę įkeliant. Kai kurie žiniatinklio CMP inicializuojant gali priimti esamą sutikimo eilutę ir ją perimti. Palaikomus metodus rasite savo žiniatinklio CMP dokumentacijoje.
Kad ir kurį šabloną naudotumėte, įsitikinkite, kad įterptos reikšmės atsinaujina, kai vartotojas pakeičia pasirinkimą natyviame nustatymų ekrane, o ne tik kitą kartą paleidus programėlę.
Žiniatinklio sutikimo perdavimas atgal natyviai pusei
Jei vartotojai gali keisti sutikimą WebView viduje, pavyzdžiui, per privatumo nustatymų puslapį, programėlė turi apie tai sužinoti. Naudokite JavaScript tiltą: iOS pranešimų tvarkyklę arba Android JavaScript sąsają. Žiniatinklio pusė klausosi per __tcfapi('addEventListener', ...) ir siunčia naują eilutę natyviam kodui, kuris įrašo standartinius raktus. Prieš rašydami patikrinkite iš WebView gaunamus įvesties duomenis; priimkite tik savo turinio pranešimus.
Reklama WebView viduje
WebView atvaizduojamos reklamos yra žiniatinklio reklamos. Jos skaito sutikimą iš puslapio, o ne iš natyvios saugyklos, nebent reklamos SDK suteikia būdą abi susieti. Pavyzdžiui, Google Mobile Ads SDK siūlo API WebView registruoti, kad juose esančios reklamos galėtų naudoti programėlės signalus; dabartinę savo SDK dokumentaciją patikrinkite. Bet kuriuo atveju testu patvirtinkite, kad reklamos užklausos iš WebView neša tą pačią TC ar GPP eilutę kaip natyvios reklamos užklausos.
Testavimo kontrolinis sąrašas
- Nauja instaliacija: viena sutikimo užklausa, o ne dvi.
- Atmeskite viską natyviame CMP, atverkite WebView, patikrinkite reklamos užklausas: eilutė turi atspindėti atmetimą.
- Pakeiskite sutikimą natyviuose nustatymuose, grįžkite į atvertą WebView: puslapis turi matyti naują sprendimą.
- Jei yra žiniatinklio nustatymų, pakeiskite sutikimą ten ir patikrinkite, ar atsinaujina natyvūs raktai.
- Uždarykite ir iš naujo paleiskite programėlę: sprendimai išlieka abiejose pusėse.
- Išbandykite ir iOS, ir Android, nes WebView saugykla kiekvienoje elgiasi skirtingai.
Pagrindinės išvados
- Natyvus ir WebView sutikimas gyvena atskirose saugyklose ir pagal numatytuosius nustatymus nesinchronizuojasi.
- Pasirinkite vieną tiesos šaltinį; daugumai programėlių tai natyvus CMP.
- Natyvų sutikimą atskleiskite žiniatinklio turiniui per įterptą
__tcfapiar__gppir paslėpkite žiniatinklio reklamjuostę. - JavaScript tiltu siųskite žiniatinklio pakeitimus atgal į natyvią saugyklą.
- Patikrinkite, ar reklamos užklausos iš WebView neša tą pačią sutikimo eilutę kaip natyvios.