Instalacje wbudowane w Google Play (sklepy innych firm z aplikacjami)

Na tej stronie opisujemy, jak sklepy z aplikacjami innych firm zarejestrowane w programie Dostęp do katalogu mogą zintegrować Google Play instalacje w tekście. Ta funkcja umożliwia sklepom z aplikacjami na Androida innych firm w Stanach Zjednoczonych kierowanie użytkowników do pobierania aplikacji z Google Play na tych samych warunkach co każde inne pobieranie bezpośrednio ze Sklepu Google Play.

Wymagania wstępne

Zanim zintegrujesz interfejs API instalacji w tekście w sklepie innej firmy z aplikacjami, musisz wykonać te czynności w Konsoli Google Play:

  1. Zarejestruj się w programie Dostęp do katalogu Google Play: postępuj zgodnie z instrukcjami rejestracji.
  2. Zgłoś chęć udziału w programie Dostęp do katalogu: zarejestruj się w programie Dostęp do katalogu w ustawieniach Konsoli Play.
  3. Pobierz tokeny dostawy: przetwórz wyeksportowany katalog aplikacji w Google Play. Ten eksport zawiera niezbędny catalog_token (token dostawy) dla każdej aplikacji, którą możesz rozpowszechniać.

Wymagania

Aby interfejs półekranu był prawidłowo wyświetlany użytkownikom, muszą być spełnione te wymagania:

  • Użytkownik musi znajdować się w Stanach Zjednoczonych.
  • Minimalna wersja Google Play na urządzeniu musi wynosić 52.3.
  • Poziom interfejsu API Androida musi wynosić 24 lub więcej.
  • Musisz podać prawidłowy, nieprzeterminowany catalog_token, aby uzyskać dostęp do Sklepu Play.

Wywoływanie instalacji w tekście ze sklepu z aplikacjami

Aby wywołać półekran instalacji w tekście, utwórz instancję klasy Intent, która kieruje na adres URL linku bezpośredniego do Google Play i zawiera Twój unikalny catalog_token.

Jako wskazówkę możesz użyć tego przykładowego kodu (w Kotlinie lub Javie):

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
}

Parametry interfejsu API instalacji w tekście

Aby autoryzować instalację w tekście, musisz przekazać te parametry w adresie URL intencji lub jako dodatkowe informacje o intencji:

Pole Lokalizacja Opis Wymagane
id Zapytanie URL Nazwa pakietu docelowej aplikacji, która ma zostać zainstalowana. Tak
referrer Zapytanie URL Opcjonalny ciąg znaków do śledzenia źródła. Nie
overlay Dodatkowe informacje o intencji Ustaw na true, aby wysłać żądanie interfejsu półekranu w tekście. Tak
callerId Dodatkowe informacje o intencji Nazwa pakietu zatwierdzonego sklepu innej firmy z aplikacjami. Tak
catalog_token Dodatkowe informacje o intencji Unikalny token dostawy podany w wyeksportowanym katalogu. Uwaga: tokeny są weryfikowane pod kątem aktualności, zgodności z pakietem docelowym i zgodności z pakietem wywołującym. Tak

(Opcjonalnie) Instalacja w tekście z Google Play z nakładką stanu instalacji

Aby wyświetlać nakładkę stanu instalacji w trakcie instalacji w tekście, musisz zintegrować instalację w tekście z Google Play z funkcją trwałego elementu interaktywnego za pomocą pakietu Google Play HSDP SDK.

Aby wyświetlić instalację w tekście z trwałym elementem interaktywnym:

  • Minimalna wersja Sklepu Google Play na urządzeniu docelowym musi wynosić 52.5 lub więcej.
  • Poziom interfejsu API Androida musi wynosić 24 (Android M) lub więcej.
  • Zintegruj z pakietem HSDP SDK w wersji 2.0.2 (dostępna wkrótce) lub nowszej.

Przykład integracji

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

Przykład zatrzymania śledzenia elementu interaktywnego

Umożliwia aplikacji wywołującej ręczne zatrzymanie śledzenia stanu instalacji i zamknięcie nakładki HPOA. Uwaga: nie spowoduje to zamknięcia samego arkusza instalacji HSDP, tylko element interaktywny.

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

Stany afordancji i UX

Instalacja w tekście z Google Play z funkcją trwałego elementu interaktywnego ma 2 stany wizualne:

  1. Stan instalowania: wyświetla miniaturę aplikacji docelowej i spinner postępu instalacji. Kliknięcie miniatury powoduje ponowne uruchomienie arkusza instalacji HSDP.
  2. Stan po instalacji: wyświetla ikonę aplikacji docelowej z działaniem „Otwórz”. Kliknięcie miniatury powoduje otwarcie nowo zainstalowanej aplikacji.
Instalowanie Po instalacji
Stan instalacji (rozwinięty)

Stan instalacji (zwinięty)
Stan po instalacji