SDK Çalışma Zamanı'nda uyumlulaştırma desteği

Uyumlulaştırma, satıcı tarafı reklam platformlarının getiri yönetimi sunmak için kullandığı yaygın bir yöntemdir. Uyumlulaştırma iş akışında, uyumlulaştırma SDK'sı ("aracı"), belirli bir alan için en iyi reklamı elde etmek üzere birden fazla reklam ağını ("aracılı" veya "aracılılar") çağırır. Bazı durumlarda hem aracı hem de çağırdığı reklam ağlarının SDK'larının cihazda bulunması ve etkileşimde bulunması gerekir.

Bu belgede, SDK Runtime'daki arabuluculuk iş akışlarında yapılan önemli değişiklikler özetlenmektedir. Bu makalede aşağıdaki konular ele alınmaktadır:

  • Önceki uyumlulaştırma akışları ile mevcut SDK Çalışma Zamanı uyumlulaştırma desteği arasındaki farklar
  • SDK Çalışma Zamanı'ndaki uyumlulaştırma iş akışları ve geçişin farklı aşamaları için kurulum işlemleri
  • Tüm SDK'ların Çalışma Zamanı'na taşınmadığı senaryoların nasıl ele alınacağıyla ilgili rehberlik

SDK Çalışma Zamanı'nda aracılı reklamlar için destek, AGP 8.5'ten ve SDK Çalışma Zamanı Jetpack kitaplıklarının aşağıdaki sürümlerinden itibaren kullanılabilir:

Androidx kitaplığı Sürüm
androidx.privacysandbox.activity 1.0.0-alpha01
androidx.privacysandbox.sdkruntime 1.0.0-alpha13
androidx.privacysandbox.tools 1.0.0-alpha08
androidx.privacysandbox.ui 1.0.0-alpha09

Sözlük

SDK Çalışma Zamanı'nda aracılığı anlamak için aşağıdaki terimler önemlidir:

  • Çalışma zamanı etkin SDK (RE SDK): SDK çalışma zamanı ortamında çalışmak ve uygulamayla süreçler arası iletişim (IPC) üzerinden iletişim kurmak için oluşturulan bir SDK.
  • Çalışma zamanı özellikli olmayan SDK (RA SDK): Uygulamaya statik olarak bağlanan, çalışma zamanı özellikli olmayan bir SDK. Mevcut SDK kodunuzun yanı sıra çalışma zamanı özellikli SDK'nızı çağırmak için yeni kod içerebilir.
  • Uygulama içi SDK: Uygulamaya statik olarak bağlı şekilde çalışan ve SDK Çalışma Zamanı'nın farkında olmayan bir SDK. Bu, SDK çalışma zamanına geçiş yapmamış bir reklam ağı veya yayıncının özel bağdaştırıcısı olabilir.
  • Aracı: Diğer reklam ağı SDK'larıyla etkileşim kurarak cihaz üzerinde uyumlulaştırma hizmeti sağlayan reklam uyumlulaştırma SDK'sı.
  • Uyumlulaştırılan: Bir reklam sağlamak ve oluşturmak için Uyumlulaştırıcı tarafından çağrılan reklam ağı SDK'sı.
  • Uyumlulaştırma Bağdaştırıcısı: Çeşitli uyumlulaştırılmış SDK'larla birlikte çalışmak için API arayüzü çevirisi sağlamak üzere aracı SDK'sı tarafından kullanılan SDK'lar. Genellikle aracı tarafından sağlanır. Bunlar, çalışma zamanı hakkında bilgi sahibi olabilir veya olmayabilir.

Tipik uyumluluk işlemleri akışları

SDK'nızın SDK çalışma zamanında uyumlulaştırma kullanım alanlarını desteklemesi gerekiyorsa bazı değişiklikler yapmanız gerekir. Bu bölümde, aracıların ve aracılık yapılanların ihtiyaç duyduğu değişiklikleri ele alabilmek için aracılık akışlarının temel unsurları incelenmektedir.

Açıkladığımız akışlar, birden fazla reklam ağı SDK'sının kullanıldığı cihaz üzerinde uyumlulaştırmanın basitleştirilmiş bir sürümünü temsil eder ve uyumlulaştırma yolculuklarının SDK çalışma zamanıyla uyumlu hale getirilmesi için gereken değişiklikler hakkında tartışmaya zemin hazırlar.

Uyumlulaştırma akışı uygulamalarındaki farklılıklar nedeniyle aşağıdaki iki ana akışa odaklanıyoruz:

  • Başlatma (reklam ağlarının keşfedilmesi ve iletişim dahil)
  • Reklam kullanıcı arayüzü (UI) sunumu

Başlatma

Aşağıda standart bir başlatma, reklam ağı keşfi ve iletişim akışı gösterilmektedir:

  1. İstemci uygulaması aracıyı başlatır.
  2. Aracı, ilgili aracıları ve bağdaştırıcıları keşfeder ve başlatır.
  3. Aracı, her uyumlulaştırılanla iletişim kurmak için bağdaştırıcılarını kullanır.
  4. İstemci uygulaması, aracıdan reklam yüklemesini ister
  5. İstemci uygulaması, bu reklamın gösterilmesi için aracıdan istekte bulunur.

Reklam Kullanıcı Arayüzü Sunumu

Önceki adımdaki son istekten sonra reklamın oluşturulması söz konusu olduğunda akış, reklamın türüne bağlıdır:

Banner reklamlar Tam ekran reklamlar Doğal reklamlar
Aracı SDK, kazanan aracı reklam öğesinin reklam görünümünü sarmalayan bir reklam görünümü oluşturur.

Bu görünümde dinleyiciler de ayarlayabilir veya reklamı otomatik olarak yenileyebilir (aynı ya da farklı bir aracı kullanarak).
Aracı SDK, aracıdan tam ekran reklam ister. Bu da bir Etkinlik başlatır. Yayıncı, aracı SDK'sı tarafından döndürülen bileşenleri kullanarak görüntüleme işleme ve şişirme işlemlerini yönetir.

SDK Çalışma Zamanı'ndaki uyumlulaştırma akışları

Uyumlulaştırmanın SDK çalışma zamanı içinde işleyiş şekli, uyumlulaştırılanın çalışma zamanı özelliğinin etkin olup olmamasına bağlı olarak değişir. Buna göre aşağıdaki senaryoları ele alabiliriz:

  • Hem arabulucu hem de arabuluculuk yapılan taraf SDK Çalışma Zamanı'ndadır: RE mediatee
  • Aracı, SDK çalışma zamanında, aracılandırılan ise uygulama içinde: Uygulama içi aracılandırılan

RE Mediatee

Aşağıdaki mimari şemada, aracıların çalışma zamanı etkin (RE) ve çalışma zamanı uyumlu (RA) SDK'larının, RE uyumlulaştırma bağdaştırıcılarının ve aracıların RE SDK'larının etkileşimine dair üst düzey bir genel bakış gösterilmektedir.

Aracılık bağdaştırıcılarının, arayüz oluşturdukları aracıyla aynı süreçte olması gerekir. Bu nedenle, SDK Çalışma Zamanı'na da taşınmaları gerekir.

Aracının çalışma zamanı etkin (RE) ve çalışma zamanı uyumlu (RA) SDK'larının, RE uyumlulaştırma bağdaştırıcılarının ve aracıların RE SDK'larının etkileşimine dair üst düzey bir genel bakışı gösteren mimari şeması.
Şekil 1. Hem aracı hem de aracıya tabi olan, RE SDK'larıdır.

Başlatma

Hem çalışma zamanı etkin aracının hem de aracının başlatılması, keşfedilmesi ve iletişimi göz önünde bulundurulduğunda akış aşağıdaki adımları izler:

  1. Uygulama (veya RA SDK), SdkSandboxManager#loadSdk kullanarak aracı SDK'sını yükler ve başlatır.
  2. Aracı SDK, başlatma sırasında SdkSandboxController#loadSdk kullanarak SDK Çalışma Zamanı'nda gerekli tüm aracıları yükler ve başlatır.
  3. RE SDK, SdkSandboxController#getSandboxedSdks çağrısı yaparak çalışma zamanında yüklenen tüm SDK'ları keşfedebilir.
RE - RE uyumlulaştırma sırası diyagramı, daha önce açıklanan akışı gösterir.
Şekil 2. Bir RE arabulucusu başlatma akışı.

Reklam Kullanıcı Arayüzü Sunumu

Aşağıdaki bölümde, bir aracıdan banner ve tam ekran reklam yükleme konusu ele alınmaktadır.

RE Mediatee banner reklamları

Uygulamadan bir banner reklam yükleme isteği geldiğinde oluşturma işlemini tamamlama akışı aşağıdaki gibidir:

  1. Aracı, bu reklam için kazanan aracıyı seçer.
  2. Aracı, aracıdan bir SandboxedUiAdapter alır.
  3. Aracı, UiAdapter'ı uygulamaya yönlendirir.
RE-RE uyumlulaştırmasında banner reklam oluşturmayı tamamlama akışı.
Şekil 3. Bir RE uyumlulaştırma öğesinden banner reklam oluşturma akışı.

SandboxedUiAdapter ve SDK Runtime UI Library'nin kullanımı hakkında daha fazla bilgi edinin.

Banner reklamlara yer paylaşımları

Aracılar, reklama bir yer paylaşımı eklemek isterse akışı aşağıdaki gibi değiştirmeleri gerekir:

  1. Aracı, yer paylaşımı ve SandboxedSdkView ile bir düzen oluşturur.
  2. Aracı, bu reklam için kazanan aracıyı seçer.
  3. Aracı, aracıdan SandboxedUiAdapter alır.
  4. Aracı, arabuluculuk yapılan tarafın UiAdapter değerini SandboxedSdkView olarak ayarlar.
  5. Aracı, doldurulmuş görünümü uygulamayla paylaşır.
Bir RE Mediatee'den alınan banner reklamın üzerine görünüm yerleştirme akışı.
Bir RE Mediatee'den alınan banner reklamın üzerine görünüm yerleştirme akışı.
RE Mediatee tam ekran reklamları

Uygulamadan tam ekran reklam yükleme isteği geldiğinde akış şu adımları izler:

  1. Uygulama (veya RA SDK), reklam yükleme isteğiyle birlikte aracıya bir SdkActivityLauncher geçirir.
    1. İstemci, bir yüklem kullanarak etkinlik oluşturmayı kısıtlayabilir.
  2. Aracı, bu reklam için kazanan aracıyı seçer.
  3. Aracı, uygulamadan SdkActivityLauncher değerini geçirerek aracıdan reklam yüklemesini ister.
  4. Aracı, bir etkinlik işleyici kaydeder ve kaydedilen etkinlik için bir tanımlayıcı jetonu alır.
  5. Arabuluculuk yapılan taraf, bu jetonu kullanarak bir etkinliğin başlatılmasını istemek için SdkActivityLauncher öğesini kullanır.
  6. İstemci uygulamasının koşulu izin veriyorsa SDK Çalışma Zamanı bu etkinliği özel işlemde başlatır.
Bir RE Mediatee'den aracılık edilen tam ekran uygulamanın gösterilme akışı.
Şekil 4. Bir RE Mediatee'den aracı tam ekran reklamın nasıl yükleneceğini gösteren akış şeması.

SDK Çalışma Zamanı'nda tam ekran reklamlar için etkinlik desteği hakkında daha fazla bilgi edinin.

Uygulama içi arabuluculuk

Aşağıdaki mimari şemada, aracıya ait RE ve RA SDK'larının, SDK Çalışma Zamanı'nın farkında olmayan uyumlulaştırma bağdaştırıcılarının ve uygulamaya statik olarak bağlı olan aracı SDK'larının (çalışma zamanı farkında olmayan) etkileşimine dair üst düzey bir genel bakış gösterilmektedir.

Aracının RE ve RA SDK'larının, SDK Çalışma Zamanı'nın farkında olmayan uyumlulaştırma bağdaştırıcılarının ve uygulamaya statik olarak bağlı olan (çalışma zamanı farkında olmayan) uyumlulaştırılmış öğelerin SDK'larının etkileşimine dair üst düzey bir genel bakışı gösteren mimari şema.
Şekil 5. Mediatee, RE SDK'sının farkında olsa bile uygulamaya statik olarak bağlanır.

Başlatma

Bu senaryoda uyumlulaştırılanlar uygulamaya statik olarak bağlandığından ve henüz SDK Çalışma Zamanı'na geçirilmediğinden, uyumlulaştırıcının çalışma zamanı etkin SDK'sı bunları kaydetmek için bir sürece sahip olmalıdır.

Bu kayıt, arabulucunun API'si kullanılarak erişilebilir olmalıdır ancak uygulama ayrıntıları her arabulucunun takdirine bırakılır. Bu API'ye MediationSandboxedSdk#registerInAppMediatee adını veriyoruz.

Bir aracı SDK'sının ve uygulama içi uyumlulaştırma SDK'larının başlatılması, keşfedilmesi ve iletişimi göz önünde bulundurulduğunda akış şu adımları izler:

  1. Uygulama, arabulucunun çalışma zamanı farkında olan SDK'sını yükler ve başlatır.
  2. Arabulucunun RA SDK'sı:
    1. SdkSandboxManager#loadSdk kullanarak arabulucunun RE SDK'sını başlatır.
    2. Tüm uygulama içi aracı SDK'larını başlatır.
    3. RE SDK'nın sağladığı API'yi (MediationSandboxedSdk#registerInAppMediate) kullanarak uygulama içi aracı SDK'larını keşfeder ve kaydeder.

Aracı SDK'sı, uygulama içi tüm aracı SDK'larının kayıtlı olmasının yanı sıra SdkSandboxController#getSandboxedSdks kullanarak SDK çalışma zamanına yüklenen tüm SDK'ları da keşfedebilir.

Uygulama içi arabulucuyu başlatmak için açıklanan akışı gösteren sıra.
Şekil 6. Uygulama içi aracıların referansını kaydetmek için önerilen aracının API'sini kullandığımızı unutmayın.

Reklam Kullanıcı Arayüzü Sunumu

Aşağıdaki bölümde, uygulama içi bir aracıdan banner ve tam ekran reklamların yüklenmesi ele alınmaktadır.

Uygulama içi aracı banner reklamlar

Uygulamadan bir banner reklam yükleme isteği geldiğinde oluşturma işlemini tamamlama akışı aşağıdaki gibidir:

  1. Aracının çalışma zamanı hakkında bilgi sahibi SDK'sı, uygulamanın isteğini çalışma zamanı etkin SDK'sına yönlendirir.
  2. Aracının RE SDK'sı, ilgili aracıya iletilen reklamı seçer.
  3. Aracının RE SDK'sı, aracılık edilen öğeye referansı alır ve RA SDK aracılığıyla reklam yükleme isteğinde bulunur.
  4. RA SDK'sı, uygulama içi aracıdan bir Görünüm alır.
  5. RA SDK, aldığı görünüm için bir SandboxedUiAdapter oluşturur.
  6. RA SDK, UiAdapter değerini RE SDK'ya yönlendirir.
  7. RE SDK, UiAdapter uygulamanın önüne yönlendirir.
Uygulama içi aracıdan banner reklamların oluşturulmasını tamamlama akışı
Şekil 7. Aracının, uygulama içi bir aracıdan elde ederken V1'in üzerine görünümler yerleştirmemesi gerektiğini unutmayın.
Uygulama içi araya giren tam ekran reklamlar

Uygulamadan tam ekran reklam yükleme isteği geldiğinde akış şu adımları izler:

  1. Uygulama, reklam yükleme isteğiyle birlikte aracıya ait RA SDK'sına bir SdkActivityLauncher geçirir.
    1. İstemci, bir yüklem kullanarak etkinlik oluşturmayı kısıtlayabilir.
  2. Aracının RA SDK'sı, uygulamanın isteğini RE SDK'sına yönlendirir.
  3. Aracının RE SDK'sı:
    1. İlgili arabulucuyu seçer.
    2. Uygulama içi reklam öğesi referansını alır.
    3. RA SDK aracılığıyla reklam yükleme istekleri.
  4. RA SDK, uyumlulaştırılan taraftan reklam yüklemesini ister.
  5. Arabuluculuk yapılan taraf, etkinliği doğrudan başlatır. Uygulamanın yüklemine uyulmaz.
Aracı, uygulama sürecindeyken tam ekran reklam yükleme akışı.
Şekil 8. Koşul, uygulama içi aracı tarafından yoksayılır.

Etkileşim kurma ve geri bildirim paylaşma

Android'deki Özel Korumalı Alan, devam eden bir projedir ve bu belgede mevcut tasarımı yansıtılmaktadır. Özelliklerini geliştirmeye ve iyileştirmeye devam ederken geri bildirimleriniz bizim için çok önemli. Geri bildirimde bulunmak için hata kaydı oluşturun.