Inline-Installationen über Google Play (App-Shops von Drittanbietern)

Auf dieser Seite wird beschrieben, wie App-Shops von Drittanbietern, die für das Programm zum Zugriff auf den Katalog registriert sind, Inline-Installationen von Google Play einbinden können. Mit dieser Funktion können US amerikanische Android-App-Shops von Drittanbietern Nutzer zu Downloads von Play-Apps über Google Play weiterleiten. Dabei gelten dieselben Bedingungen wie für alle anderen Downloads, die direkt über den Google Play Store erfolgen.

Vorbereitung

Bevor Sie die Inline-Installations-API in Ihren Drittanbieter-App-Shop einbinden, müssen Sie in der Google Play Console die folgenden Schritte ausführen:

  1. Für das Programm zum Zugriff auf den Play-Katalog registrieren:Folgen Sie der Registrierungsanleitung.
  2. Zugriff auf den Katalog aktivieren:Registrieren Sie sich in den Play Console-Einstellungen für das Programm zum Zugriff auf den Katalog.
  3. Lieferungstokens abrufen:Verarbeiten Sie den Export des Google Play-App-Katalogs, der Ihnen zur Verfügung gestellt wurde. Dieser Export enthält das erforderliche catalog_token (Lieferungstoken) für jede App, die Sie vertreiben dürfen.

Voraussetzungen

Damit die Half-Sheet-Oberfläche für Nutzer angezeigt werden kann, müssen die folgenden Voraussetzungen erfüllt sein:

  • Der Nutzer muss sich in den USA befinden.
  • Die Google Play-Version auf dem Gerät muss mindestens 52.3 sein.
  • Die Android API-Ebene muss 24 oder höher sein.
  • Sie müssen ein gültiges, nicht abgelaufenes catalog_token für den Zugriff auf den Google Play Store angeben.

Inline-Installationen über Ihren App-Shop aufrufen

Um das Half-Sheet für die Inline-Installation aufzurufen, erstellen Sie eine Instanz der Intent Klasse, die auf die Deeplink-URL von Google Play verweist und Ihr eindeutiges catalog_token enthält.

Verwenden Sie den folgenden Beispielcode (Kotlin oder Java) als Richtlinie:

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 der Inline-Installations-API

Die folgenden Parameter müssen in Ihrer Intent-URL oder als Intent-Extras übergeben werden, um die Inline-Installation zu autorisieren:

Feld Standort Beschreibung Erforderlich
id URL-Abfrage Der Paketname der Ziel-App, die installiert werden soll. Ja
referrer URL-Abfrage Ein optionaler String für das Referrer-Tracking. Nein
overlay Intent-Extra Auf true setzen, um die Half-Sheet-Oberfläche für die Inline-Installation anzufordern. Ja
callerId Intent-Extra Der Paketname Ihres genehmigten Drittanbieter-App-Shops. Ja
catalog_token Intent-Extra Das eindeutige Lieferungstoken, das in Ihrem Export für den Zugriff auf den Katalog angegeben ist. Hinweis:Tokens werden auf Aktualität, Übereinstimmung mit dem Zielpaket und Übereinstimmung mit dem Aufruferpaket geprüft. Ja

(Optional) Google Play-Inline-Installation mit Overlay für den Installationsstatus

Wenn Sie ein Overlay für den Installationsstatus im Inline-Installationsprozess anzeigen möchten, müssen Sie die Google Play-Inline-Installation mit der Funktion „Persistent Affordance“ mithilfe des Google Play HSDP SDK einbinden.

Damit der Inline-Installationsprozess mit der Funktion „Persistent Affordance“ angezeigt wird, müssen folgende Voraussetzungen erfüllt sein:

  • Die Google Play Store-Version auf dem Zielgerät muss mindestens 52.6 sein.
  • Die Android API-Ebene muss 24 (Android M) oder höher sein.
  • Die Einbindung muss mit dem HSDP SDK in der Version 2.1.0 oder höher erfolgen.

Beispiel für die Einbindung

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

Beispiel für das Beenden des Affordance-Trackings

Ermöglicht der aufrufenden App, das Tracking des Installationsstatus manuell zu beenden und das HPOA-Overlay zu schließen. Hinweis: Dadurch wird nicht das HSDP-Installations-Sheet selbst geschlossen, sondern nur die 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
        }
    }
)

Affordance-Status und Benutzeroberfläche

Die Google Play-Inline-Installation mit der Funktion „Persistent Affordance“ hat zwei visuelle Status:

  1. Installationsstatus: Zeigt eine Miniaturansicht der Ziel-App und einen Spinner für den Installationsfortschritt an. Wenn Sie auf die Miniaturansicht klicken, wird das HSDP-Installations-Sheet neu gestartet.
  2. Status nach der Installation: Zeigt das Symbol der Ziel-App mit der Aktion „Öffnen“ an. Wenn Sie auf die Miniaturansicht klicken, wird die neu installierte App geöffnet.
Installation Nach der Installation
Installationsstatus (erweitert)

Installationsstatus (minimiert)
Status nach der Installation