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

Auf dieser Seite wird beschrieben, wie App-Shops von Drittanbietern, die für das Programm für den Zugriff auf den Katalog registriert sind, Inline-Installationen von Google Play integrieren können. Mit dieser Funktion können US-amerikanische Android-App-Shops von Drittanbietern Nutzer zum Download von Play-Apps über Google Play weiterleiten. Dies erfolgt zu denselben Bedingungen wie jeder andere Download, der direkt über den Google Play Store erfolgt.

Vorbereitung

Bevor Sie die Inline Install API in Ihren Drittanbieter-App-Store einbinden, müssen Sie die folgenden Schritte in der Google Play Console 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 über die 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 (Bereitstellungstoken) für jede App, die Sie vertreiben dürfen.

Voraussetzungen

Damit die Halbsheet-Benutzeroberfläche Nutzern angezeigt werden kann, müssen die folgenden Anforderungen erfüllt sein:

  • Der Nutzer muss sich in den USA befinden.
  • Auf dem Gerät muss mindestens die Google Play-Version 52.3 installiert sein.
  • Das Android-API-Level muss 24 oder höher sein.
  • Sie müssen einen gültigen, nicht abgelaufenen catalog_token angeben, um auf den Google Play Store zugreifen zu können.

Inline-Installationen über Ihren App-Shop aufrufen

Um das Inline-Installations-Halbsheet aufzurufen, erstellen Sie eine Instanz der Klasse Intent, die auf die Google Play-Deeplink-URL ausgerichtet ist und Ihre eindeutige 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
}

Inline Install API – Parameter

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 Legen Sie den Wert auf true fest, um die Inline-Halbblatt-Schnittstelle anzufordern. Ja
callerId Intent-Extra Der Paketname Ihres genehmigten Drittanbieter-App-Shops. Ja
catalog_token Intent-Extra Das eindeutige Bereitstellungstoken, das in Ihrem Export für den Katalogzugriff enthalten ist. Hinweis:Tokens werden auf Aktualität, Übereinstimmung mit dem Zielpaket und Übereinstimmung mit dem Aufruferpaket geprüft. Ja

Optional: Google Play Inline Install mit Overlay für den Installationsstatus

Wenn Sie im Inline-Installationsablauf ein Overlay mit dem Installationsstatus anzeigen möchten, müssen Sie die Google Play Inline Install API mithilfe des Google Play HSDP SDK in die Funktion „Persistent Affordance“ einbinden.

Damit der Inline-Installationsvorgang mit dauerhaftem Hinweis angezeigt wird, müssen folgende Voraussetzungen erfüllt sein:

  • Auf dem Zielgerät muss mindestens die Google Play Store-Version 52.5 installiert sein.
  • Das Android-API-Level muss 24 (Android M) oder höher sein.
  • Integrieren Sie das HSDP SDK mit Version 2.0.2 (demnächst verfügbar) oder höher.

Beispiel für die Integration

// 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 Anrufer-App, die Überwachung des Installationsstatus manuell zu beenden und das HPOA-Overlay zu schließen. Hinweis: Dadurch wird nicht das HSDP-Installationsblatt selbst geschlossen, sondern nur die Aufforderung.

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

Die Funktion „Google Play Inline-Installation“ mit dem persistenten Angebotscharakter hat zwei visuelle Zustände:

  1. Installationsstatus: Hier wird eine Miniaturansicht der Ziel-App und ein Fortschritts-Spinner für die Installation angezeigt. Wenn Sie auf das Thumbnail klicken, wird das HSDP-Installationsblatt neu gestartet.
  2. Status nach der Installation: Das Symbol der Ziel-App wird mit der Aktion „Öffnen“ angezeigt. Wenn Sie auf das Vorschaubild klicken, wird die neu installierte App geöffnet.
Installation läuft Nach der Installation
Installationsstatus (erweitert)

Installationsstatus (minimiert)
Status nach der Installation