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'in uygulamalarını Google Play üzerinden indirmeye yönlendirmesine olanak tanır. Bu indirme işlemi, doğrudan Google Play Store üzerinden yapılan diğer indirmelerle aynı şartlarda gerçekleşir.

Ön koşullar

Inline Install API'yi üçü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şimi'ni etkinleştirme: Google Play Console ayarlarınızdan Katalog Erişimi Programı'na kaydolun.
  3. Yayınlama jetonlarını alma: Size sağlanan Google Play Uygulama Kataloğu dışa aktarma işlemini işleyin. Bu dışa aktarma işlemi, dağıtmaya uygun olduğunuz her uygulama için gerekli catalog_token (dağıtım jetonu) bilgisini içerir.

Şartlar

Yarım sayfa arayüzünün kullanıcılara başarıyla gösterilmesi için aşağıdaki şartları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.
  • Google 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 değerinizi içeren bir Intent sınıfı örneği 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
String 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
}

Satır içi yükleme API'si parametreleri

Satır içi yüklemeyi yetkilendirmek için aşağıdaki parametrelerin Intent URL'nizde veya Intent Extras olarak iletilmesi gerekir:

Alan Tür Konum Açıklama Zorunlu
id String URL Sorgusu Yüklenecek hedef uygulamanın paket adı. Evet
referrer String URL Sorgusu İsteğe bağlı bir yönlendiren izleme dizesi. Hayır
overlay boolean Intent Extra Satır içi yarım sayfa arayüzünü istemek için true olarak ayarlayın. Evet
callerId String Intent Extra Onaylanan üçüncü taraf uygulama mağazanızın paket adı. Evet
catalog_token String Intent Extra Katalog Erişimi dışa aktarma işleminizde sağlanan benzersiz yayınlama jetonu. Not: Jetonlar güncellik, hedef paket eşleşmesi ve arayan paket eşleşmesi açısından 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'yı kullanarak Google Play satır içi yüklemeyi kalıcı olanak özelliğiyle entegre etmeniz gerekir.

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

  • Hedef cihazın minimum Google Play Store sürümü 52.6 veya daha yeni olmalıdır.
  • Android API düzeyi 24 (Android M) veya daha yüksek olmalıdır.
  • 2.1.0 veya daha yeni bir sürüme sahip HSDP SDK ile entegre edin.

Entegrasyon örneği

Kotlin

// 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
)

Java

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

// Step 2: Construct Extra Query Parameters with Catalog Token
Map<String, String> extraQueryParams = new HashMap<>();
extraQueryParams.put("catalog_token", "YOUR_SECURE_CATALOG_TOKEN_VALUE");

// Step 3: Trigger Inline Install Flow
hsdpService.open(
    "com.example.targetapp",
    "3pas_ad_campaign_123",
    new HsdpDeepLinkServiceListener() {
      @Override
      public void onDeepLinkStarted() {
        // Inline details dialog started successfully
      }

      @Override
      public void onAffordanceStarted() {
        // HPOA persistent affordance UI attached
      }

      @Override
      public void onAffordanceEnded() {
        // Affordance UI detached
      }

      @Override
      public void onError(String errorMessage) {
        // Handle error or fallback
      }
    },
    extraQueryParams);

İzlemeyi durdurma imkanı ö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 ilgili seçeneği kapatır.

Kotlin

// 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
        }
    }
)

Java

// Stop tracking the installation state and dismiss the affordance overlay
hsdpService.stopAffordance(
    "com.example.targetapp",
    new HsdpDeepLinkService.AffordanceListener() {
      @Override
      public void onAffordanceStopped() {
        // Affordance overlay stopped successfully
      }
    });

Kullanım kolaylığı durumları ve kullanıcı deneyimi

Kalıcı Uygunluk özelliğine sahip Google Play Inline Install'un iki görsel durumu vardır:

  1. Yükleme durumu: Hedef uygulamanın küçük resmini ve yükleme ilerleme durumunu gösteren bir dönen simge 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 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