בדף הזה מוסבר איך חנויות אפליקציות של צד שלישי שנרשמו לתוכנית "גישה לקטלוג" יכולות לשלב התקנות מוטמעות של Google Play. התכונה הזו מאפשרת לחנויות אפליקציות של צד שלישי ל-Android בארה"ב להפנות משתמשים להורדת האפליקציות של Play דרך Google Play, באותם תנאים כמו כל הורדה אחרת שמתבצעת ישירות דרך חנות Google Play.
דרישות מוקדמות
לפני שמשלבים את ה-API להתקנות מהאתר בחנות האפליקציות של הצד השלישי, צריך להשלים את ההגדרה הבאה ב-Google Play Console:
- להצטרף לתוכנית "גישה לקטלוג" של Play: פועלים לפי הוראות ההרשמה.
- הצטרפות לתוכנית "גישה לקטלוג": נרשמים לתוכנית "גישה לקטלוג" דרך ההגדרות ב-Play Console.
- אחזור אסימוני מסירה: מעבדים את הייצוא של קטלוג האפליקציות של Play שקיבלתם. הייצוא הזה מכיל את ה-
catalog_token(אסימון המסירה) הנדרש לכל אפליקציה שאתם יכולים להפיץ.
דרישות
כדי שממשק חצי הגיליון יופיע למשתמשים, צריך לעמוד בדרישות הבאות:
- המשתמש צריך להיות ממוקם בארה"ב.
- גרסת Google Play המינימלית במכשיר צריכה להיות 52.3.
- רמת ה-API של Android צריכה להיות 24 ומעלה.
- כדי לקבל גישה לחנות Play, צריך לספק
catalog_tokenתקין ובתוקף.
הפעלת התקנות מוטמעות מחנות האפליקציות
כדי להפעיל את הגיליון החלקי של ההתקנה מהאתר, יוצרים מופע של המחלקה Intent שמטרגט את כתובת ה-URL של קישור העומק ל-Google Play וכולל את ה-catalog_token הייחודי שלכם.
אפשר להיעזר בקוד לדוגמה הבא (Kotlin או Java):
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 String 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
כדי לאשר את ההתקנה בתוך האפליקציה, צריך להעביר את הפרמטרים הבאים בכתובת ה-URL של Intent או כתוספות ל-Intent:
| שדה | סוג | מיקום | תיאור | חובה |
|---|---|---|---|---|
id |
String |
שאילתת כתובת URL | שם החבילה של אפליקציית היעד שרוצים להתקין. | כן |
referrer |
String |
שאילתת כתובת URL | מחרוזת אופציונלית למעקב אחרי הפניות. | לא |
overlay |
boolean |
Intent Extra | מגדירים את הערך true כדי לבקש את ממשק הגיליון החלקי המוטמע. |
כן |
callerId |
String |
Intent Extra | שם החבילה של חנות האפליקציות של הצד השלישי שאושרה. | כן |
catalog_token |
String |
Intent Extra | האסימון הייחודי למסירה שמופיע בייצוא של הגישה לקטלוג. הערה: המערכת מאמתת את הטוקנים כדי לוודא שהם עדכניים, שהם תואמים לחבילת היעד ושהם תואמים לחבילת המתקשר. | כן |
(אופציונלי) התקנה מהאתר ב-Google Play עם שכבת-על של סטטוס ההתקנה
כדי להציג שכבת-על של סטטוס ההתקנה בתהליך ההתקנה מהאתר, צריך לשלב את ההתקנה מהאתר ב-Google Play עם התכונה "אפשרות קבועה" באמצעות Google Play HSDP SDK.
כדי שתהליך ההתקנה המוטמע עם אפשרות קבועה יופיע:
- גרסת חנות Google Play המינימלית במכשיר היעד צריכה להיות 52.6 ומעלה.
- רמת ה-API של Android חייבת להיות 24 (Android M) ומעלה.
- משלבים את HSDP SDK בגרסה 2.1.0 ואילך.
דוגמה לשילוב
Kotlin
// 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 )
Java
// Step 1: Initialize HSDP Service // Note: Calling create(activity) automatically configures useServiceBasedHsdp = false // (Activity Path) under the hood without requiring manual boolean flags. HsdpDeepLinkService hsdpService = HsdpDeepLinkServiceFactory.create(activity); // Step 2: Construct Extra Query Parameters with Catalog Token Map<String, String> extraQueryParams = new HashMap<>(); extraQueryParams.put("catalog_token", "YOUR_SECURE_CATALOG_TOKEN_VALUE"); // Step 3: Trigger Inline Install Flow hsdpService.open( "com.example.targetapp", "3pas_ad_campaign_123", new HsdpDeepLinkServiceListener() { @Override public void onDeepLinkStarted() { // Inline details dialog started successfully } @Override public void onAffordanceStarted() { // HPOA persistent affordance UI attached } @Override public void onAffordanceEnded() { // Affordance UI detached } @Override public void onError(String errorMessage) { // Handle error or fallback } }, extraQueryParams);
דוגמה להפסקת המעקב אחרי האפשרות לפעולה
מאפשרת לאפליקציה שמפעילה את ההתקנה להפסיק באופן ידני את המעקב אחרי מצב ההתקנה ולסגור את שכבת העל של HPOA. הערה: הפעולה הזו לא תסגור את גיליון ההתקנה של HSDP, אלא רק את האפשרות.
Kotlin
// 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 } } )
Java
// Stop tracking the installation state and dismiss the affordance overlay hsdpService.stopAffordance( "com.example.targetapp", new HsdpDeepLinkService.AffordanceListener() { @Override public void onAffordanceStopped() { // Affordance overlay stopped successfully } });
מצבי אפשרות פעולה וחוויית משתמש (UX)
לתכונה "התקנה מתוך האפליקציה ב-Google Play עם רכיב קבוע" יש שני מצבים חזותיים:
- מצב התקנה: מוצגת תמונה ממוזערת של אפליקציית היעד וסמל טעינה שמציין את התקדמות ההתקנה. לחיצה על התמונה הממוזערת תפתח מחדש את גיליון ההתקנה של HSDP.
- מצב אחרי ההתקנה: סמל האפליקציה שרוצים לקדם מוצג עם הפעולה "פתיחה". לחיצה על התמונה הממוזערת פותחת את האפליקציה החדשה שהותקנה.
| התקנה | אחרי ההתקנה |
|---|---|
![]() ![]() |
![]() |


