Penginstalan Inline Google Play (app store pihak ketiga)

Halaman ini menjelaskan cara app store pihak ketiga yang terdaftar dalam program Akses Katalog dapat mengintegrasikan penginstalan inline Google Play, sebuah fitur yang memungkinkan app store Android pihak ketiga di Amerika Serikat mengarahkan pengguna untuk mendownload aplikasi Play melalui Google Play dengan persyaratan yang sama seperti saat mendownload aplikasi langsung melalui Google Play Store.

Prasyarat

Sebelum mengintegrasikan API penginstalan inline di app store pihak ketiga, Anda harus menyelesaikan penyiapan berikut di Konsol Google Play:

  1. Mendaftar ke Program Akses Katalog Google Play: Ikuti petunjuk pendaftaran.
  2. Mengaktifkan Akses Katalog: Daftar ke program Akses Katalog melalui setelan Konsol Play.
  3. Mengambil token pengiriman: Proses ekspor Katalog Aplikasi Play yang diberikan kepada Anda. Ekspor ini berisi catalog_token (token pengiriman) yang diperlukan untuk setiap aplikasi yang memenuhi syarat untuk Anda distribusikan.

Persyaratan

Agar antarmuka setengah layar berhasil ditampilkan kepada pengguna, persyaratan berikut harus dipenuhi:

  • Pengguna harus berada di Amerika Serikat.
  • Versi minimum Google Play di perangkat harus 52.3.
  • Level Android API harus 24 atau yang lebih tinggi.
  • Anda harus memberikan catalog_token yang valid dan belum habis masa berlakunya untuk mengakses Google Play Store.

Memanggil penginstalan inline dari app store Anda

Untuk memanggil setengah layar penginstalan inline, buat instance class Intent yang menargetkan URL deep link Google Play dan menyertakan catalog_token unik Anda.

Gunakan kode contoh berikut (Kotlin atau Java) sebagai panduan:

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
}

Parameter API penginstalan inline

Parameter berikut harus diteruskan di URL Intent Anda atau sebagai Intent Extra untuk mengotorisasi penginstalan inline:

Kolom Lokasi Deskripsi Wajib
id Kueri URL Nama paket aplikasi target yang akan diinstal. Ya
referrer Kueri URL String pelacakan perujuk opsional. Tidak
overlay Intent Extra Tetapkan ke true untuk meminta antarmuka setengah layar inline. Ya
callerId Intent Extra Nama paket app store pihak ketiga yang disetujui. Ya
catalog_token Intent Extra Token pengiriman unik yang disediakan dalam ekspor Akses Katalog Anda. Catatan: Token divalidasi untuk kesegaran, kecocokan paket target, dan kecocokan paket pemanggil. Ya

(Opsional) Penginstalan Inline Google Play dengan overlay status penginstalan

Untuk menampilkan overlay status penginstalan dengan alur penginstalan inline, Anda harus mengintegrasikan Penginstalan Inline Google Play dengan fitur Persistent Affordance menggunakan Google Play HSDP SDK.

Agar alur penginstalan inline dengan persistent affordance muncul:

  • Versi minimum Google Play Store perangkat target harus 52.5 atau yang lebih tinggi.
  • Level Android API harus 24 (Android M) atau yang lebih tinggi.
  • Integrasikan dengan HSDP SDK versi 2.0.2 (segera hadir) atau yang lebih tinggi.

Contoh integrasi

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

Contoh menghentikan pelacakan affordance

Memungkinkan aplikasi pemanggil menghentikan pelacakan status penginstalan secara manual dan menutup overlay HPOA. Catatan: Tindakan ini tidak akan menutup sheet penginstalan HSDP itu sendiri, hanya affordance.

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

Status &UX Affordance

Penginstalan Inline Google Play dengan fitur Persistent Affordance memiliki dua status visual:

  1. Status Menginstal: Menampilkan thumbnail aplikasi target dan pemutar progres penginstalan. Mengklik thumbnail akan meluncurkan kembali sheet penginstalan HSDP.
  2. Status Pasca-Penginstalan: Menampilkan ikon aplikasi target dengan tindakan "Buka". Mengklik thumbnail akan membuka aplikasi yang baru diinstal.
Menginstal Pasca-penginstalan
Status Menginstal (Diperluas)

Status Menginstal (Diciutkan)
Status pasca-penginstalan