SDK Çalışma Zamanı'ndaki reklam SDK'ları, yayıncının görüntüleme hiyerarşisine erişemez.
Bunun yerine, çalışma zamanındaki SDK'ların kendi görünümleri vardır. SDK, aynı görevi görecek
Reklamın olup olmadığını belirlemek için SDK çalışma zamanı dışında kullandıkları şekliyle API'leri
kullanıcı tarafından görülebilir, çünkü reklam görünümü, uygulamanın
penceresini kapatın. Buna getLocationOnScreen
gibi Android View API'leri dahildir.
getLocationInWindow
veya getVisibility
gibi, beklenen sonucu döndürmeyen
değerler.
Reklam görüntülenebilirliği ölçümünü desteklemek, temel SDK Çalışma Zamanı gereksinimidir. Bu tasarım önerisi, Open Measurement ve benzer ölçüm hizmetleri için destek sağlamayı amaçlamaktadır. Burada açıklanan çözümler Attribution Reporting API'leri için de geçerli olabilir. Bu teklifle ilgili geri bildirimlerinizi bekliyoruz.
İşlemler
Bu tasarım, reklam SDK'larının veya ölçüm iş ortaklarının aşağıdaki görüntülenebilirlik verilerini hesaplamasını desteklemeyi amaçlar (adlar geçicidir ve değişiklik gösterebilir):
viewport [Rect]
: Platformun özelliklerine bağlı olarak cihaz ekranını veya uygulama penceresi geometrisini temsil eder.uiContainerGeometry [Rect]
: OluşturulanSandboxedSdkView
geometrisi.alpha [float]
: OluşturulanSandboxedSdkView
öğesinin opaklığı.onScreenGeometry [Rect]
:uiContainerGeometry
alt kümesi olanviewport
dahil olmak üzere üst görüntülemeler tarafından kırpılmayan).occludedGeometry [Rect]
:onScreenGeometry
öğesinin şurada bulunan bölümleri: uygulamanın hiyerarşisindeki herhangi bir görünüm tarafından engellenmesine izin verilmez. Şunun için birRect
içerir: kesişen sıfır, bir veya daha fazla uygulama görüntülemesine karşılık gelen her kapatmaSandboxedSdkView onScreenGeometry
ile
Şartlar
uiContainerGeometry
,onScreenGeometry
veoccludedGeometry
için değerlerviewport
parametresinin koordinat alanında ifade edilir.- Görünürlük değişikliği raporlaması, minimum gecikmeyle gerçekleşir.
- Görünürlük, reklam görüntülemenin ilk görünüşünden son görünüşüne kadar tüm yaşam döngüsü için ölçülebilir.
Teklif tasarlama
Bu teklif, kullanıcı arayüzü sunumunun müşteri ve sağlayıcının kullanıcı arayüzü kitaplıkları. SDK'nın kullanıcı arayüzü oturumuna bir veya daha fazla gözlemci kaydettirmesine izin vermek için kullanıcı arayüzü kitaplıklarını genişleteceğiz. Gözlemci Veri türlerini değiştiren ilgili etkinlikler olduğunda, görüntülenebilirlik bilgileri özellikler bölümü algılanır. SDK çalışma zamanındaki ölçüm SDK'ları (OMID ve MRAID uygulamaları), bu bilgilerin doğrudan kendilerine gönderilebilmesi için bu gözlemciyi kullanıcı arayüzü oturumuna ekleyebilir. Ölçüm iş ortakları, JavaScript görüntülenebilirlik etkinlikleri oluşturmak için kullanıcı arayüzü kitaplıklarından elde edilen bilgileri, mevcut içerikle ilgili verilerle (ör. reklam öğesine yerleştirilen ölçüm komut dosyalarını kullanırken) birleştirebilir.
İstemci kitaplığı, aşağıdakiler gibi etkinlik işleyiciler aracılığıyla reklam kullanıcı arayüzündeki değişiklikleri dinler:
ViewTreeObserver
olarak. Reklam arayüzünün
nasıl etkileyebileceğini öğrenmek için, istemci kitaplığının
gözlemciye son bildirim gönderildi. Son güncelleme daha büyükse
minimum 200 ms'ye kadar, izin verilen gecikmeden (SDK tarafından yapılandırılabilir)
mobil), yeni bir AdContainerInfo
nesnesi oluşturulur ve
gözlemciye gönderilir. Bu olaya dayalı model, günümüzde Android'deki çoğu OMID uygulaması tarafından yapılan anketlere kıyasla sistem sağlığı için daha iyidir.
API
Aşağıdakiler privacysandbox.ui.core kitaplığına eklenir:
SessionObserver
: Genellikle ölçüm SDK'sı tarafından uygulanır ve SDK tarafından privacysandbox.ui aracılığıyla döndürülen oturuma eklenir. Bu arayüz, ölçüm SDK'sının belirli kategorileri etkinleştirmesine de olanak tanıyacaktır. sinyallerine geçiş yapabiliyoruz. Böylece, kullanıcı arayüzü istemci kitaplığının yalnızca gözlemcinin ilgilendiği sinyalleri toplar. Bu, sistem açısından genel sağlık.registerObserver()
:Session
sınıfına eklenen bu yöntem Oturum'a erişimi olan herkese açık kullanıcı izni verebilirsiniz. Gözlemci, kullanıcı arayüzü oturumu açıldıktan sonra kaydedilirse önbelleğe alınmışAdContainerInfo
hemen gönderilir. Oturum açılmadan önce kaydedilirse oturum açıldığındaAdContainerInfo
gönderilir.AdContainerInfo
: Gözlemcinin şunları yapmasına olanak tanıyan alıcılar içeren bir sınıf: 'da listelenen veri türleri için salt okunur reklam kapsayıcısı bilgilerini edinmek özellikler bölümünü inceleyin. Bu alıcılardan döndürülen değerler, mümkün olduğundaView
ve alt sınıflarındaki mevcut alıcılardan döndürülen paketlenebilir dönüş değerlerine karşılık gelir. Reklam kapsayıcısı Jetpack Compose kullanılarak oluşturulduysa bu, kapsayıcının anlamsal özelliklerini gösterir. Bu sınıfı, görüntülenebilirlikle ilgili NetzDG ve OMID etkinliklerini hesaplamak için kullanılabilir.SessionObserverotifyAdContainerChanged()
: Gözlemciye bildirim göndermek için kullanılır otomatik olarak eklenir. BirAdContainerInfo
nesneyi geçirir. Bu listelenen veri türlerini etkileyen etkinlik algılandığında çağrılır. Özellikler bölümüne gidin. Not: Bu yöntem, yöntemlere ek olarak çağrılabilir oturum açın. Örneğin, SDK'dan reklamı yeniden boyutlandırmasını istemek içinSession.notifyResized()
çağrılır ve bu işlem gerçekleştiğindeSessionObserver.notifyAdContainerChanged()
da çağrılır.SessionObserverotifySessionClosed()
: Gözlemciye oturumun kapatıldığını bildirir.
Gelecekteki geliştirmeler
Uygulamanın güvenliği ihlal edilirse privacysandbox.ui.client kitaplığındaki kod da dahil olmak üzere uygulama sürecinde çalışan tüm kodlar değiştirilebilir. Bu nedenle, uygulama sürecinde çalışan tüm sinyal toplama mantığı, uygulama kodu tarafından bozulmaya açıktır. Bu, SDK kodu için de geçerlidir çalışan Özel Korumalı Alan'ın kullanıma sunulmasından önce dağıtılan takip etmeniz gerekir. Sonuç olarak, kullanıcı arayüzü kitaplığı tarafından sinyal toplanması güvenlik durumunu kötüleştirmez.
Ayrıca, SDK çalışma zamanındaki kod, reklam kullanıcı arayüzü sunumu hakkında çerçeveden daha güçlü garantiler verebilecek setTrustedPresentationCallback
adlı bir platform API'si kullanabilir. setTrustedPresentationCallback
.
Yüzey düzeyinde çalışır ve Google'ın, kullanımı ve erişimiyle ilgili
Örneğin,
görünür piksel yüzdesi, ekranda geçirilen süre veya ölçek. Bu veriler,
Kullanıcı arayüzü istemci kitaplığı tarafından sağlanan görüntülenebilirlik verileriyle karşılaştırılarak kontrol edildi.
bölümünü ziyaret edin. Çerçeve tarafından sağlanan veriler daha güvenilir olduğundan
Verileri çerçevedeki verilerle uyumlu olmayan kullanıcı arayüzü kitaplığı,
silindi. Örneğin, dinleyici size
setTrustedPresentationCallback
, piksel içermeyen bir bildirimle çağrılır
ekranda gösterilmektedir. İstemci kullanıcı arayüzü kitaplığında ise
piksel sayısı sıfır değilse, bunlardan gelen veriler silinebilir.
Açık uçlu sorular
Aşağıdaki konular hakkında geri bildirimlerinizi bizimle paylaşabilirsiniz:
- Bu açıklama metninde bahsedilmeyen hangi görüntülenebilirlik sinyalleriyle ilgileniyorsunuz?
- Mevcut öneri, kullanıcı arayüzünde alakalı bir değişiklik olması koşuluyla görüntülenebilirliği en az 200 milisaniyede bir güncellemektir. Bu sıklık sizin için kabul edilebilir mi? Aksi takdirde ne sıklıkta görüşmek istersiniz?
setTrustedPresentationCallback
bilgilerini kendiniz mi analiz etmek istersiniz yoksa sağlayıcı kullanıcı arayüzü kitaplığının,setTrustedPresentationCallback
verileriyle eşleşmeyen verileri istemci kullanıcı arayüzü kitaplığından atmasını mı tercih edersiniz?- Görüntülenebilirlik sinyallerini nasıl kullanabilirsiniz? Kullanım alanlarınızı anlamamıza yardımcı olun: bu soruları yanıtlayan geri bildirimler gönderin.