WebView'larda Onay: Yerel ve Web Onayını Senkronize Tutmak

Çift Banner Sorunu

Birçok uygulama kısmen yerel, kısmen web tabanlıdır. Bir oyun mağazasını, haberlerini veya yardım sayfalarını bir WebView'da gösterir; bir yardımcı uygulama web sitesindeki makaleleri işler; bir hibrit uygulama arayüzünün çoğunu web içeriğiyle sarar. Her tarafın kendi onay mekanizması vardır: yerel uygulama uygulama içi bir CMP veya SDK kullanır, web sayfaları ise bir web CMP'si yükler. Bunlar bağlanmadığı sürece kullanıcıya iki kez sorulur, bir yerde yapılan tercihler diğerinde yok sayılır ve WebView içinden giden reklam istekleri yanlış sinyallerle çıkar.

Bu rehber, yerel ve web onayını nasıl uyumlu hale getireceğinizi kapsar; böylece kullanıcılar bir kez yanıtlar ve her reklam isteği aynı kararı taşır.

Her Taraf Onayı Nerede Saklar

Yerel

IAB TCF, uygulama içi bir CMP'nin onayı nasıl saklayacağını belirtir: iOS'ta NSUserDefaults, Android'de SharedPreferences içinde, IABTCF_TCString, IABTCF_gdprApplies ve IABTCF_PurposeConsents gibi standart anahtarlarla. Reklam SDK'ları bu anahtarları doğrudan okur. IAB GPP, IABGPP_HDR_GppString gibi IABGPP_ önekli benzer anahtarlar tanımlar.

Web

Bir web CMP'si kararını tipik olarak sitenin alan adı için birinci taraf çerezlerde veya yerel depolamada saklar ve __tcfapi ile __gpp JavaScript işlevleri aracılığıyla sunar. Sayfadaki reklam etiketleri yerel depolamayı değil, bu işlevleri çağırır.

Boşluk

WebView'ların cihaz tarayıcısından ve uygulamanın yerel tercihlerinden ayrı, kendi çerez ve depolama alanları vardır. iOS'ta kalıcı olmayan bir veri deposu kullanan bir WKWebView kapandığında her şeyi unutur. Siz bir köprü kurmadıkça iki taraf arasında hiçbir şey akmaz.

Tek Bir Doğruluk Kaynağı Seçin

İlk karar, onayın hangi tarafa ait olduğudur. Çoğu uygulama için yanıt yerel CMP'dir, çünkü:

Arayüzünün tamamı web içeriği olan hibrit uygulamalar için önce web yaklaşımı mantıklı olabilir, ancak o zaman yerel SDK'lar için kararı yerel depolamaya geri yazmanız gerekir.

Yerel Onayı WebView'a Aktarmak

Doğruluk kaynağı yerelken, WebView'ın aynı kararı görmesi gerekir. Yaygın kalıplar:

  1. Bir __tcfapi uygulaması enjekte edin. Sayfanın betikleri çalışmadan önce, __tcfapi (ve gerekirse __gpp) tanımlayan ve çağrıları yerel depolamadan okunan TC string'i ve değerlerle yanıtlayan küçük bir betik enjekte edin. Sayfadaki reklam etiketleri yerel kararı standart API aracılığıyla alır.
  2. Web banner'ını bastırın. Web CMP'sini, sayfa uygulamanızın içinde yüklendiğinde, örneğin bir sorgu parametresine veya kontrol ettiğiniz özel bir user agent belirtecine göre gizli kalacak şekilde yapılandırın. Aksi halde kullanıcı ikinci bir banner görür.
  3. Dizeyi yüklemede iletin. Bazı web CMP'leri başlatma sırasında mevcut bir onay dizesini kabul edip benimseyebilir. Desteklenen yöntemler için web CMP'nizin belgelerine bakın.

Hangi kalıbı kullanırsanız kullanın, kullanıcı tercihini yerel ayarlar ekranında değiştirdiğinde enjekte edilen değerlerin yalnızca bir sonraki uygulama açılışında değil, hemen güncellendiğinden emin olun.

Web Onayını Yerel Tarafa Geri İletmek

Kullanıcılar onayı WebView içinde, örneğin bir gizlilik ayarları sayfası aracılığıyla değiştirebiliyorsa, uygulamanın bunu öğrenmesi gerekir. Bir JavaScript köprüsü kullanın: iOS'ta bir mesaj işleyicisi, Android'de bir JavaScript arayüzü. Web tarafı __tcfapi('addEventListener', ...) ile dinler ve yeni dizeyi, standart anahtarları yazan yerel koda gönderir. Yazmadan önce WebView'dan gelen girdiyi doğrulayın; yalnızca kendi içeriğinizden gelen mesajları kabul edin.

WebView'lar İçindeki Reklamlar

Bir WebView'da işlenen reklamlar web reklamlarıdır. Reklam SDK'sı ikisini bağlamanın bir yolunu sunmadıkça onayı yerel depolamadan değil, sayfadan okurlar. Örneğin Google'ın Mobile Ads SDK'sı, WebView'ların içindeki reklamların uygulamadan gelen sinyalleri kullanabilmesi için WebView'ları kaydeden bir API sunar; SDK'nız için güncel belgelere bakın. Her durumda, WebView'dan gelen reklam isteklerinin yerel reklam istekleriyle aynı TC veya GPP dizesini taşıdığını bir testle doğrulayın.

Test Kontrol Listesi

Önemli Çıkarımlar

← Blog Tümünü Oku →