Installations intégrées Google Play (magasins d'applications tiers)

Cette page explique comment les plates-formes de téléchargement d'applications tierces inscrites au programme d'accès au catalogue peuvent intégrer les installations intégrées de Google Play. Cette fonctionnalité permet aux plates-formes de téléchargement d'applications Android tierces basées aux États-Unis de rediriger les utilisateurs vers le téléchargement d'applications Play via Google Play, selon les mêmes conditions que pour tout autre téléchargement effectué directement depuis le Google Play Store.

Prérequis

Avant d'intégrer l'API d'installation intégrée à votre magasin d'applications tiers, vous devez effectuer la configuration suivante dans la Google Play Console :

  1. Inscrivez-vous au Programme d'accès au Catalogue Play : suivez les instructions d'inscription.
  2. Activez l'accès au catalogue : inscrivez-vous au programme d'accès au catalogue dans les paramètres de la Play Console.
  3. Récupérez les jetons de diffusion : traitez l'exportation du catalogue d'applications Play qui vous est fournie. Cette exportation contient le catalog_token (jeton de diffusion) nécessaire pour chaque application que vous êtes autorisé à distribuer.

Conditions requises

Pour que l'interface de la demi-feuille s'affiche correctement pour les utilisateurs, les conditions suivantes doivent être remplies :

  • L'utilisateur doit se trouver aux États-Unis.
  • La version minimale de Google Play sur l'appareil doit être la 52.3.
  • Le niveau d'API Android doit être 24 ou supérieur.
  • Vous devez fournir un catalog_token valide et non expiré pour accéder au Play Store.

Appeler des installations intégrées depuis votre plate-forme de téléchargement d'applications

Pour appeler la demi-feuille d'installation intégrée, créez une instance de la Intent classe qui cible l'URL de lien profond Google Play et inclut votre catalog_token unique.

Utilisez l'exemple de code suivant (Kotlin ou Java) comme guide :

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
}

Paramètres de l'API d'installation intégrée

Les paramètres suivants doivent être transmis dans l'URL de votre intent ou en tant qu'extras d'intent pour autoriser l'installation intégrée :

Champ Emplacement Description Obligatoire
id Requête d'URL Nom du package de l'application cible à installer. Oui
referrer Requête d'URL Chaîne de suivi de l'annonceur facultative. Non
overlay Extra d'intent Définissez la valeur sur true pour demander l'interface de la demi-feuille intégrée. Oui
callerId Extra d'intent Nom du package de votre magasin d'applications tiers approuvé. Oui
catalog_token Extra d'intent Jeton de diffusion unique fourni dans votre exportation d'accès au catalogue. Remarque : Les jetons sont validés en fonction de leur fraîcheur, de la correspondance du package cible et de la correspondance du package de l'appelant. Oui

(Facultatif) Installation intégrée de Google Play avec superposition de l'état de l'installation

Pour afficher une superposition de l'état de l'installation avec le flux d'installation intégrée, vous devez intégrer l'installation intégrée de Google Play à la fonctionnalité d'affordance persistante à l'aide du SDK HSDP Google Play.

Pour que le flux d'installation intégrée avec affordance persistante s'affiche :

  • La version minimale du Google Play Store sur l'appareil cible doit être la 52.5 ou une version ultérieure.
  • Le niveau d'API Android doit être 24 (Android M) ou supérieur.
  • Intégrez le SDK HSDP avec la version 2.0.2 (à venir) ou une version ultérieure.

Exemple d'intégration

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

Exemple d'arrêt du suivi de l'affordance

Permet à l'application appelante d'arrêter manuellement le suivi de l'état de l'installation et de fermer la superposition HPOA. Remarque : Cela ne fermera pas la feuille d'installation HSDP elle-même, mais uniquement l'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
        }
    }
)

États de l'affordance et expérience utilisateur

La fonctionnalité d'installation intégrée de Google Play avec affordance persistante présente deux états visuels :

  1. État d'installation : affiche une vignette de l'application cible et un indicateur de progression de l'installation. Si vous cliquez sur la vignette, la feuille d'installation HSDP est relancée.
  2. État post-installation : affiche l'icône d'application cible avec une action « Ouvrir ». Si vous cliquez sur la vignette, l'appli installée s'ouvre.
Installation Post-installation
État d'installation (développé)

État d'installation (réduit)
État post-installation