Android'de yerel reklamlar

Yerel Reklamlar biçimi, yayıncının kullanıcıya gösterilen bir reklamı özelleştirmesine olanak tanır. SDK'dan bir reklam getirdikten sonra, yayıncılar renk filtresi ekleme, yazı tipi değiştirme ve özel yer paylaşımları ekleyerek, reklamın düzenini ve görünümünü uygulamanın kullanıcı arayüzüne daha uygun olacak şekilde değiştirebilir. Yayıncılar, Yerel Reklamların performansını veya kullanıcı deneyimini optimize etmek için genellikle görüntülü reklam sınırları belirler veya video oynatmayı SDK'ya boşaltır. Son olarak, yayıncılar yukarı doğru kaydırma gibi ek etkinlikleri izlemek için reklam tıklaması işleyicilerini özelleştirebilir.

Yerel Reklamlar biçimi, yayıncıya diğer reklam biçimlerini göstermek için gerekenden daha fazla güven gerektirir. SDK'lar genellikle politika ihlallerini tespit etmek ve yayıncıya sağlanan reklam içeriğinin kullanıcıya gösterildiğini doğrulamak ister.

SDK çalışma zamanında banner reklam desteği, SurfaceControlViewHost API'si aracılığıyla sağlanır. Bu, SDK'nın istemci uygulaması tarafından üzerinde değişiklik yapılmadan SDK Çalışma Zamanı sürecindeki kullanıcı arayüzü öğelerini göstermesine olanak tanır. SDK kullanıcı arayüzünün oluşturulduğu yüzeyin, istemci uygulaması penceresinin altında mı üstünde mi olduğunu belirlemek için üzerinde SurfaceView Z veya Z altındaki modları kullanın. Bir reklam, yukarıdaki Z modu kullanılarak oluşturulduğunda SDK, kullanıcı etkileşiminden MotionEvents alır ancak istemci uygulamasının görüntülemeleri reklamın üzerinde görünmez. Bir reklam, aşağıdaki Z modunda oluşturulduğunda, uygulama reklamın üzerinde kendi görüntülemelerini gösterir. Ancak reklamdaki kullanıcı etkileşiminden elde edilen MotionEvents, SDK'ya değil uygulamaya gider.

privacysandbox.ui Jetpack kitaplıkları, kullanıcı arayüzü oturumu oluşturmak ve sürdürmek için SDK ve yayıncı tarafından kullanılabilir.

Uygulamaya ait reklam kapsayıcısı

SDK'nın, yerel reklam içeren tüm görünümlere (uygulamanın yer paylaşımları dahil) sahip olmasına izin vererek prototipini oluşturduk ve uygulanabilir olsa da kullanıcı arayüzünde bazı kısıtlamalara neden olduğunu ve SDK ile entegrasyon karmaşıklığını artırdığını gördük. Uygulamanın en fazla görüntülemeye sahip olmasını sağlamak, daha pragmatik bir yaklaşımdır. SDK yine de privacysandbox.ui öğesinden SandboxedSdkView öğesini kullanarak reklam görünümü gibi bazı kullanıcı arayüzünün kendisini göstermeyi seçebilir. Bu yaklaşım, bu reklam biçiminin mevcut ve gelecekteki kullanım alanlarının nasıl destekleneceği konusunda en fazla esnekliği sağlar: Bu yaklaşımla, uygulama geliştirici reklam bileşenlerini taşıyıp gerektiği gibi biçimlendirebilir. Diğer yandan, SDK, tercih edilmesi halinde video oynatıcının sahipliğini korur ve medya denetimlerine erişimi sürdürür.

Yayıncı ile SDK arasındaki veri akışını gösteren şema.
Önerilen Yerel Reklamlar kontrol akışı.

Reklam durumuyla ilgili bildirimler

Farklı SDK'lar, sahtekarlık tespiti ve politika ihlalleri için reklam görüntülemelerinin farklı özelliklerini inceler. Bunun için, hangi özelliklerin kullanılacağını belirtmeden veya sorgulanan özellik grubunu değiştiren SDK'nın sorun yaşamasına yol açmadan bu özelliği desteklemek istiyoruz. NativeAdContainerInfo kullanarak reklam kapsayıcısının ve alt görüntülemelerinin bir temsilini oluşturmanızı öneririz. Bu, gizliliği koruyan ve hesaplamanın pahalı olmadığı reklam kapsayıcısı ve içeriğiyle sınırlı bilgileri açığa çıkaran çeşitli alıcıların yer aldığı ayrıştırılabilir bir nesne olacaktır. SDK, NativeAdContainerInfo kapsamındaki sinyal kategorilerini etkinleştirebilecek. SDK, reklam gösterimi ve kullanıcı tıklamaları gibi faturalandırılabilir etkinlikler gibi reklam durumu SDK ile alakalı şekillerde değiştiğinde bu nesneyi alır.

Ayrıca yayıncı, NativeAdContainer öğesine eklenen her bir alt öğeye görüntülemeye özel etiketler (Dizeler) ekleyebilecektir. Bu etiketler, SDK'nın her bir alt öğenin hangi reklam öğesine karşılık geldiğini bildirmek için kullanılabilir.

Kullanıcı SDK'ya ait görünümleri tıkladığında, kullanıcı arayüzü kitaplığı orijinal MotionEvent ile birlikte SDK'nın koordinat alanına çevrilmiş özellikler içeren MotionEvent öğesini SDK'ya yönlendirir. Android'in gelecek sürümlerinde ise istemci uygulamasının, bu yerel reklamın SDK'ya ait kısımlarındaki tüm kullanıcı hareketleri için SDK tarafından işlenecek tüm kullanıcı hareketleri için dokunma odağını aktarmasına olanak tanıyacak yöntemler eklemeye çalışıyoruz.

Onaylar

Reklam sunumuyla ilgili daha güçlü güvenceler almak için SDK'ya aşağıdaki onaylar sunulacaktır:

  1. Cihaz bütünlüğü onayı: Cihaz bütünlüğünü belirlemek için Key Attestation gibi platform API'lerini kullanın.
  2. APK kimliği: APK kimliğini doğrulamak için SdkSandboxController.getClientPackageName gibi SdkSandbox API'lerini ve requestChecksum gibi PackageManager API'lerini kullanın.
  3. VerifiedMotionEvents: Android'in gelecekteki sürümlerinde, istemci uygulamasının SDK tarafından işlenecek bu yerel reklamın SDK'ya ait kısımlarındaki tüm kullanıcı hareketleri için dokunma odağını aktarmasını sağlama özelliğini araştırıyoruz. MotionEvents, sistem API'leri kullanılarak VerifiedMotionEvents biçimine dönüştürülebilir. SDK, isterse kullanıcı etkileşimine yanıt olarak kendi kullanıcı arayüzünü gösterebilir.

Açık sorular

Aşağıdaki konularda geri bildirimlerinizi bekliyoruz:

  1. SDK'nın VerifiedMotionEvents oluşturması tercih edilir mi, yoksa sağlayıcı kullanıcı arayüzü kitaplığının bunu SDK için yapması mı tercih edilir?
  2. SDK için yayıncının video içeren görüntülemelere mi, yoksa bu görünümlere kendi sahip olmasına mı izin vermesi tercih edilir?
  3. AppOwnedAdContainerInfo nesnesine dahil edilmesini istediğiniz özellikler neler?
  4. Ekranda aynı anda SDK'ya ait kaç reklamın veya reklam bileşeninin gösterilmesini bekliyorsunuz?