Google Play Inline Installs (üçüncü taraf uygulama mağazaları)

Bu sayfada, Katalog Erişimi programına kayıtlı üçüncü taraf uygulama mağazalarının Google Play satır içi yüklemelerini nasıl entegre edebileceği açıklanmaktadır. Bu özellik, ABD'deki üçüncü taraf Android uygulama mağazalarının kullanıcıları, Google Play Store üzerinden doğrudan yapılan diğer indirmelerle aynı şartlarda Google Play aracılığıyla Play uygulamalarını indirmeye yönlendirmesine olanak tanır.

Ön koşullar

Satır içi yükleme API'sini üçüncü taraf uygulama mağazanıza entegre etmeden önce Google Play Console'da aşağıdaki kurulumu tamamlamanız gerekir:

  1. Google Play Katalog Erişimi Programı'na kaydolun: Kayıt talimatlarını uygulayın.
  2. Katalog erişimini etkinleştirme: Play Console ayarlarınızdan Katalog Erişimi programına kaydolun.
  3. Teslimat jetonlarını alma: Size sağlanan Play uygulama kataloğu dışa aktarma işlemini gerçekleştirin. Bu dışa aktarma, dağıtmaya uygun olduğunuz her uygulama için gerekli catalog_token (teslimat jetonu) içerir.

Şartlar

Yarım sayfa arayüzünün kullanıcılara başarıyla gösterilmesi için aşağıdaki koşulların karşılanması gerekir:

  • Kullanıcı ABD'de bulunmalıdır.
  • Cihazdaki minimum Google Play sürümü 52.3 olmalıdır.
  • Android API düzeyi 24 veya daha yüksek olmalıdır.
  • Play Store'a erişmek için geçerli ve süresi dolmamış bir catalog_token sağlamanız gerekir.

Uygulama mağazanızdan satır içi yüklemeleri çağırma

Satır içi yükleme yarım sayfasını çağırmak için Google Play derin bağlantı URL'sini hedefleyen ve benzersiz catalog_token'nizi içeren Intent sınıfının bir örneğini oluşturun.

Aşağıdaki örnek kodu (Kotlin veya Java) kılavuz olarak kullanın:

Kotlin

val intent = Intent(Intent.ACTION_VIEW)
val referrer = "<Your referrer string>"
val id = "<Package name of the app to be installed>"
val callerId = "<Package name of your third-party app store>"

// Retrieve the app-specific token from your processed catalog export
val catalogToken = getVerificationTokenByDocId(id)

intent.setPackage("com.android.vending")
val deepLinkUrl = "https://play.google.com/d?id=$id&referrer=$referrer"
intent.data = Uri.parse(deepLinkUrl)

// Set the required intent extras
intent.putExtra("overlay", true)
intent.putExtra("callerId", callerId)
intent.putExtra("catalog_token", catalogToken)

val packageManager = context.getPackageManager()
if (intent.resolveActivity(packageManager) != null) {
  startActivityForResult(intent, 0) // Call with a request code to receive ActivityResults
}

Java

Intent intent = new Intent(Intent.ACTION_VIEW);
String referrer = "<Your referrer string>";
String id = "<Package name of the app to be installed>";
String callerId = "<Package name of your third-party app store>";

// Retrieve the app-specific token from your processed catalog export
byte[] catalogToken = getVerificationTokenByDocId(id);

intent.setPackage("com.android.vending");
String deepLinkUrl = "https://play.google.com/d?id=" + id + "&referrer=" + referrer;
intent.setData(Uri.parse(deepLinkUrl));

// Set the required intent extras
intent.putExtra("overlay", true);
intent.putExtra("callerId", callerId);
intent.putExtra("catalog_token", catalogToken);

PackageManager packageManager = context.getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
  startActivityForResult(intent, 0); // Call with a request code to receive ActivityResults
}

Inline Install API parametreleri

Satır içi yüklemeyi yetkilendirmek için aşağıdaki parametreler, amaç URL'nizde veya amaç ekstraları olarak iletilmelidir:

Alan Konum Açıklama Zorunlu
id URL Sorgusu Yüklenecek hedef uygulamanın paket adı. Evet
referrer URL Sorgusu İsteğe bağlı bir yönlendiren izleme dizesi. Hayır
overlay Intent Extra Satır içi yarım sayfa arayüzü istemek için true olarak ayarlayın. Evet
callerId Intent Extra Onaylanmış üçüncü taraf uygulama mağazanızın paket adı. Evet
catalog_token Intent Extra Katalog erişimi dışa aktarma işleminizde sağlanan benzersiz teslimat jetonu. Not: Jetonların geçerlilik süresi, hedef paket eşleşmesi ve arayan paket eşleşmesi doğrulanır. Evet

(İsteğe bağlı) Yükleme durumu yer paylaşımıyla Google Play Inline Install

Satır içi yükleme akışıyla birlikte yükleme durumu yer paylaşımı göstermek için Google Play HSDP SDK'sını kullanarak Google Play Inline Install'ı Persistent Affordance özelliğiyle entegre etmeniz gerekir.

Kalıcı uygunlukla satır içi yükleme akışının görünmesi için:

  • Hedef cihazın Google Play Store sürümü en az 52.5 olmalıdır.
  • Android API düzeyi 24 (Android M) veya daha yüksek olmalıdır.
  • 2.0.2 (yakında) veya daha yüksek bir sürümle HSDP SDK ile entegre edin.

Entegrasyon örneği

// Step 1: Initialize HSDP Service
// Note: Calling create(activity) automatically configures useServiceBasedHsdp = false
// (Activity Path) under the hood without requiring manual boolean flags.
val hsdpService = HsdpDeepLinkServiceFactory.create(activity)

// Step 2: Construct Extra Query Parameters with Catalog Token
val extraQueryParams = mapOf("catalog_token" to "YOUR_SECURE_CATALOG_TOKEN_VALUE")

// Step 3: Trigger Inline Install Flow
hsdpService.open(
    targetAppPackageName = "com.example.targetapp",
    referrer = "3pas_ad_campaign_123",
    listener = object : HsdpDeepLinkServiceListener {
        override fun onDeepLinkStarted() {
            // Inline details dialog started successfully
        }
        override fun onAffordanceStarted() {
            // HPOA persistent affordance UI attached
        }
        override fun onAffordanceEnded() {
            // Affordance UI detached
        }
        override fun onError(errorMessage: String) {
            // Handle error or fallback
        }
    },
    extraQueryParams = extraQueryParams
)

Uygunluk izlemeyi durdurma örneği

Arayan uygulamanın, yükleme durumunu izlemeyi manuel olarak durdurmasına ve HPOA yer paylaşımını kapatmasına olanak tanır. Not: Bu işlem, HSDP yükleme sayfasını değil, yalnızca istemi kapatır.

// Stop tracking the installation state and dismiss the affordance overlay
hsdpService.stopAffordance(
    targetAppPackageName = "com.example.targetapp",
    listener = object : HsdpDeepLinkService.AffordanceListener {
        override fun onAffordanceStopped() {
            // Affordance overlay stopped successfully
        }
    }
)

Affordance States & UX

Kalıcı Uygunluk özelliğiyle Google Play Satır İçi Yükleme'nin iki görsel durumu vardır:

  1. Yükleme Durumu: Hedef uygulamanın küçük resmini ve yükleme ilerleme durumunu gösterir. Küçük resmi tıkladığınızda HSDP yükleme sayfası yeniden başlatılır.
  2. Yükleme Sonrası Durum: Hedef uygulama simgesini "Aç" işlemiyle birlikte gösterir. Küçük resmi tıkladığınızda yeni yüklenen uygulama açılır.
Yükleme Yükleme sonrası
Yükleme Durumu (Genişletilmiş)

Yükleme durumu (daraltılmış)
Yükleme sonrası durum