Tam ekran reklamlar için etkinlik desteği

Geri bildirim gönderin

SDK Çalışma Zamanı, SDK'ların yeni etkinlikleri nasıl başlatabileceğine dair kısıtlamalar uygular. Bu durum, gelişmiş kontrol ve kullanıcı deneyimi için genellikle ayrı bir etkinlik başlatmaya dayanan tam ekran reklam biçimlerinde zorluk yaratır. SDK Çalışma Zamanı, bu sorunu ele almak üzere korumalı alana alınan etkinlikler için yeni bir mekanizma kullanıma sunmuştur.

SDK Çalışma Zamanı ortamına yüklenen SDK'lar, manifest dosyalarında <activity> etiketlerini doğrudan tanımlayamaz veya kendi etkinliklerini başlatamaz. Bunun yerine, yeni bir amaç işlemi (START_SANDBOXED_ACTIVITY) kullanıma sunuldu.

SDK'ların bu işlemle intent başlatması da kısıtlanır ancak SDK'lar istemci uygulamasından bu amacı başlatmasını isteyebilirsiniz. Daha sonra sistem, platform tanımlı bir etkinlik oluşturur ve bunu SDK'ya iletir. Bu etkinlik devam edecek SDK ile aynı süreci işler.

Ardından SDK, bu etkinliği tam ekran reklamı uygulamak ve yönetmek için kullanabilir sunmaktır.

Platform tarafından sağlanan etkinlik standart bir android.app.Activity ise istemci uygulamasının görevinin bir parçası olarak başlatılmıştır.

SDK Çalışma Zamanında etkinlik oluşturma

Etkinlik oluşturmak için iki temel yönteminiz vardır: Geliştirilmiş Jetpack Etkinlik kitaplıklarını kullanmak veya doğrudan Platform API'leriyle etkileşimde bulunmak.

Temel karmaşıklığı soyutlayarak etkinlik oluşturmayı basitleştirdikleri için Etkinlik kitaplıklarını kullanmanızı öneririz.

Etkinlik kitaplıkları

Etkinlik kitaplıklarda avantajları:

  • Etkinlik işleyicileri kaydetme ve tanımlayıcılarını istemci uygulamalarıyla paylaşmayla ilgili dahili ayrıntıları soyutlayın.
  • Uygulama geliştiricilere, karşılanacak koşulları (tahminler) ayarlama olanağı tanıyarak SDK'ların uygulamalarında Etkinlikler oluşturma konusunda daha fazla kontrol sahibi olmalarını sağlar.
  • SDK'ların, etkinlikleri başlatan API'leri tanımlaması için birleşik bir yol oluşturun.

Temel, istemci ve sağlayıcı olmak üzere üç etkinlik kitaplığı vardır.

  • Temel kitaplık, istemci uygulamaları ve sağlayıcı kitaplıkları.
  • provider kitaplığı, SDK'ların etkinlikleri başlatması için API'ler sağlar.
  • İstemci kitaplığı, istemci uygulamalarının bir etkinlik başlatıcı oluşturması için API'ler sağlar. SDK'lar, uygulamaların etkinlik başlatmasını istemek için kullanabilir.

Bu kitaplıklar aşağıdaki API'leri sunar:

Etkinlik kitaplıklarıyla etkinlik başlatma akışı aşağıdaki gibidir:

  1. SDK, Etkinlik başlatacak API'lere SdkActivityLauncher.
  2. İstemci uygulaması createSdkActivityLauncher, API çağrılarında SDK'ya aktarılabilecek bir başlatıcı oluşturmak için etkinliklerinden birinde.
  3. SDK çağrıları SdkSandboxControllerCompat.registerSdkSandboxActivityHandler(SdkSandboxActivityHandlerCompat) ve tanımlayıcı jetonunu alır.
  4. SDK çağrıları launchSdkActivity ve etkinliği başlatın.
ziyaret edin.

Aşağıdaki şemada, etkinlik kitaplıklarının kullanılmasındaki akış gösterilmektedir.

Etkinlik kitaplığı sıra şeması
Etkinlik kullanarak bir etkinlik başlatma akışını gösteren sıra diyagramı hakkında daha fazla bilgi edinin.

Platform API'leri

Platform, oluşturma işlemini kolaylaştırmak amacıyla aşağıdaki API'leri sunar: SDK Çalışma Zamanında korumalı alana alınan etkinliklerin yönetimi:

Platform API'lerini kullanarak etkinlik başlatmak için SDK'ların şu akışı izlemesi gerekir:

  1. SDK, sağlanan API'leri kullanarak bir etkinlik işleyici kaydeder ve bir tanımlayıcı edinir.
  2. SDK, bu tanımlayıcıyı istemci uygulamasıyla paylaşır.
  3. İstemci uygulaması, startSdkSandboxActivity(Activity, IBinder) platformu API'si ile SDK Çalışma Zamanında bir etkinlik başlatma yöntemini çağırarak bu yeni etkinlik için seçilen başlangıç Etkinliği'ni ve Etkinlik İşleyici'nin tanımlayıcısını parametre olarak iletir.
  4. Platform bir etkinlik başlatır ve Etkinlik İşleyici'de (SdkSandboxActivityHandler.onActivityCreated(Activity)) geri çağırma yaparak SDK'yı bilgilendirir.
  5. SDK, etkinliği bir reklamla doldurmak için kullanır.
ziyaret edin.

Platform API'lerinin kullanılması, SDK'yı SdkSandboxActivityHandler API'leri aracılığıyla istemci uygulaması ile uygun bir zamanda tanımlanmışsa ve istemci uygulamalarına nasıl kullanılacağıyla ilgili rehberlik etmek.

Aşağıdaki akış şemasında, örnek SDK'nın launchActivity(AppCallback) yöntemi içeren bir yöntemi var ve bu yöntem için geri çağırma (SDK'nın API'sinin parçası olarak tanımlanır). Bu geri çağırma yöntemi Etkinlik İşleyici'nin (SdkSandboxActivityHandler) istemci uygulaması ile kimliği tanımlayabileceksiniz.

Platform API&#39;leri adım şeması
Platform API'leri kullanılarak etkinlik başlatma akışını gösteren sıra şeması.

Görüntülenebilirlik

SDK Çalışma Zamanı'nda, istemci uygulamasının görünüm hiyerarşisi kullanımına entegre edilen reklamlar taraf kanallar SDK görünümlerini SDK işleminden istemci uygulamasının sürecine kadar oluşturmak için kullanılır.

SDK, aşağıdaki işlemler için SDK çalışma zamanı dışında kullandıkları View API'lerini kullanamaz: reklamın kullanıcı tarafından görülüp görülmediğini belirler. Çünkü, reklam görüntülemesi uygulamanın penceresine eklenir (Görüntülenebilirlik).

Buna karşın platform tarafından sağlanan etkinlik, SDK Çalışma Zamanı sürecinde yerel olarak yürütülür. Böylece yan kanallara olan ihtiyacı ortadan kaldırır ve SDK'ların standart Android Activity ve View API'lerini kullanmasına olanak tanır.

Devam eden çalışmalar, bu farklı uygulamalar sayesinde her bir arayüzleri kullanarak reklam yükleme bağlamından bağımsız olarak görüntülenebilirlik sinyallerini alabilirsiniz.

Yaşam döngüsü

İlgili içeriği oluşturmak için kullanılan ActivityHolder SDK'ya SdkSandboxActivityHandlerCompat.onActivityCreated(ActivityHolder) uygular LifecycleOwner ve yeni kampanyalar hakkında bilgi edinmek için Lifecycle.Event

Geri gitme

Yöntem ActivityHolder.getOnBackPressedDispatcher() iadelerin toplam tutarı OnBackPressedDispatcher Bu veriler, OnBackPressedCallback örnekler sunar.