IAB GPP Dizesinin Tarayıcı Konsolunda Hata Ayıklaması: Adım Adım Eğitim
GPP Sorunlarını Fark Etmek Neden Zor
Bir ABD'li ziyaretçi verilerinin satışından veya paylaşımından opt-out yaptığında, bu tercihin sayfadaki her reklam ortağına ulaşması gerekir. IAB Global Privacy Platform (GPP) ile tercih, kompakt bir dize ve bir bölüm kimliği listesi olarak taşınır. İkisinden biri yanlışsa — eksik, eski veya yanlış bölümü taşıyorsa — gözle görülür hiçbir şey bozulmaz. Reklamlar yine yüklenir, banner yine iyi görünür ve sorun ancak daha sonra, ortakların opt-out'ları yok saymasıyla veya envanterinize daha düşük teklif vermesiyle ortaya çıkar.
İyi haber şu ki, hemen her şeyi tarayıcı konsolundan inceleyebilirsiniz. Bu eğitim, kontrolleri canlı bir sayfada çalıştıracağımız sırayla ele alır.
Adım 1: API'nin Var ve Hazır Olduğunu Doğrulayın
GPP uyumlu bir CMP, global bir __gpp işlevi sunar. Sayfanızda DevTools'u açın ve bir ping komutu çalıştırın:
__gpp('ping', function (data) { console.log(data); });
Dönen nesne size bir bakışta çok şey söyler:
- gppVersion — güncel uygulamalarda 1.1 olmalıdır.
- cmpStatus — CMP'nin yüklenip yüklenmediği veya bir hata alıp almadığı.
- cmpDisplayStatus — banner'ın bu ziyaretçi için görünür, gizli veya devre dışı olup olmadığı.
- signalStatus — CMP bir izin durumuna karar verdiğinde “ready”, hâlâ karar verirken “not ready”.
- supportedAPIs — CMP'nin üretebildiği bölümler.
- applicableSections — şu anda bu ziyaretçi için geçerli olan bölüm kimlikleri.
- gppString — kodlanmış dizenin kendisi.
__gpp tanımsızsa, CMP stub'ı eksiktir veya çok geç yüklenmektedir. Stub, onu bekleyen herhangi bir reklam komut dosyasından önce yerinde olmalıdır; aksi hâlde bu komut dosyaları hiç CMP görmez ve ya bekler ya da sinyal olmadan devam eder.
Adım 2: Geçerli Bölümü Kontrol Edin
GPP'deki her gizlilik çerçevesinin sayısal bir bölüm kimliği vardır. Yayıncıların en sık karşılaştıkları şunlardır: 2 (AB TCF v2), 5 (Kanada TCF), 7 (US National, “usnat”) ve Kaliforniya, Virginia, Colorado, Utah ve Connecticut gibi tek tek eyalet bölümleri için 8 ve sonrası. Bir ABD eyaletinden gelen ziyaretçi normalde applicableSections içinde AB bölümünü değil, ulusal bölümü veya ilgili eyalet bölümünü görmelidir.
Birkaç konumdan test edin. Yaygın bir hata, banner için coğrafyayı doğru algılayan ama dizeye bölgeden bağımsız olarak varsayılan bir bölüm yazan CMP'dir; ya da tersi. Bir VPN veya CMP'nizin önizleme araçlarıyla, banner'ın gösterdiği ile applicableSections'ın bildirdiğini karşılaştırın.
Adım 3: Bölüm Verilerini Okuyun
Dizeyi elle çözmek yerine CMP'den ayrıştırılmış bölümü isteyin:
__gpp('getSection', function (data, success) { console.log(data, success); }, 'usnat');
US National bölümünde opt-out alanları basit bir kural kullanır: 0 uygulanamaz, 1 kullanıcı opt-out yaptı, 2 kullanıcı opt-out yapmadı anlamına gelir. Önce şu alanlara odaklanın:
- SaleOptOut ve SharingOptOut
- TargetedAdvertisingOptOut
- Ziyaretçiye her uygulama hakkında bildirim yapılıp yapılmadığını kaydeden ilgili notice alanları
Şimdi sayfada opt-out işlemini gerçekleştirin — “Do Not Sell or Share” bağlantınıza tıklayın veya tercih merkezinde ayarı değiştirin — ve getSection'ı tekrar çalıştırın. Opt-out alanları 2'den 1'e dönmelidir. Dönmüyorsa, arayüz ile sinyal senkron değildir.
Adım 4: Global Privacy Control Yolunu Test Edin
Birçok eyalet yasası, işletmelerin bir Global Privacy Control sinyalini opt-out olarak ele almasını gerektirir. GPC'yi onu destekleyen bir tarayıcıda veya eklentide etkinleştirin, konsolda navigator.globalPrivacyControl değerinin true döndürdüğünü doğrulayın, ardından sayfayı yeni bir oturumda yükleyin. İlgili opt-out alanları, ziyaretçi banner'a dokunmadan zaten 1 olmalıdır. Bazı bölümler ayrıca tercihin bir GPC sinyalinden geldiğini belirten bir alan da içerir.
Adım 5: Yalnızca Anlık Görüntülere Değil, Olaylara Bakın
Reklam komut dosyaları dizeyi sayfa yüklenirken bir kez okuyup unutmamalıdır. Ortakların ne gördüğünü görmek için bir listener kaydedin:
__gpp('addEventListener', function (evt) { console.log(evt.eventName, evt.pingData); });
listenerRegistered, signalStatus ve sectionChange gibi olayları gözlemlemelisiniz. Ziyaretçi bir tercihi değiştirdiğinde, güncellenmiş dizeyle bir sectionChange olayı gelmelidir. Header bidding wrapper'ınız veya reklam sunucusu entegrasyonunuz dizeyi yalnızca signalStatus “ready” olmadan önce okuyorsa, boş veya eski bir değer gönderebilir.
Adım 6: Dizeyi Reklam İsteklerine Kadar Takip Edin
Son olarak Network sekmesini açın ve reklam isteklerinizi filtreleyin. Birçok reklam uç noktası gpp ve gpp_sid parametrelerini (dize ve geçerli bölüm kimlikleri) kabul eder. Şunları kontrol edin:
- her iki parametre de ABD'li ziyaretçilerden gelen isteklerde mevcut;
- dize, isteğin yapıldığı anda ping'in döndürdüğüyle eşleşiyor;
- bir opt-out'tan sonra gelen istekler önbelleğe alınmış bir dize yerine yeni dizeyi taşıyor.
Prebid.js kullanıyorsanız, izin yönetimi modülünün GPP için yapılandırıldığını doğrulayın ve son reklam sunucusu çağrısının yanı sıra wrapper'dan çıkan teklif isteklerini de inceleyin.
Yaygın Hata Kalıpları
- Stub, reklam etiketlerinden sonra yükleniyor — ortaklar hiç CMP görmüyor.
- Bölge için yanlış bölüm — ABD trafiği için AB bölümü gönderiliyor veya hiç bölüm yok.
- Arayüz ve sinyal senkron değil — anahtar değişiyor, dize değişmiyor.
- GPC yok sayılıyor — tarayıcı sinyali hiçbir zaman opt-out'a dönüşmüyor.
- İsteklerde eski dizeler — wrapper gördüğü ilk değeri önbelleğe alıyor.
Önemli Çıkarımlar
- ping ile başlayın: sürüm, durum, geçerli bölümler ve dize hikâyenin büyük kısmını anlatır.
- Opt-out alanlarını okumak için getSection kullanın; 1 opt-out yapıldığını, 2 yapılmadığını gösterir.
- Opt-out bağlantısını ve GPC'yi ayrı ayrı test edin ve ikisinin de sinyali değiştirdiğini doğrulayın.
- Olayları dinleyin ve reklam istekleri dizeyi okumadan önce “ready” sinyalini bekleyin.
- gpp ve gpp_sid'i gerçek ağ isteklerinde, opt-out'tan önce ve sonra doğrulayın.