Bu sayfada, Katalog Erişimi programına kayıtlı üçüncü taraf uygulama mağazalarının Google Play satır içi yüklemelerini nasıl entegre edebileceği açıklanmaktadır. Bu özellik, ABD'deki üçüncü taraf Android uygulama mağazalarının, kullanıcıları Google Play'in uygulamalarını Google Play üzerinden indirmeye yönlendirmesine olanak tanır. Bu indirme işlemi, doğrudan Google Play Store üzerinden yapılan diğer indirmelerle aynı şartlarda gerçekleşir.
Ön koşullar
Inline Install API'yi üçüncü taraf uygulama mağazanıza entegre etmeden önce Google Play Console'da aşağıdaki kurulumu tamamlamanız gerekir:
- Google Play Katalog Erişimi Programı'na kaydolun: Kayıt talimatlarını uygulayın.
- Katalog Erişimi'ni etkinleştirme: Google Play Console ayarlarınızdan Katalog Erişimi Programı'na kaydolun.
- Yayınlama jetonlarını alma: Size sağlanan Google Play Uygulama Kataloğu dışa aktarma işlemini işleyin. Bu dışa aktarma işlemi, dağıtmaya uygun olduğunuz her uygulama için gerekli
catalog_token(dağıtım jetonu) bilgisini içerir.
Şartlar
Yarım sayfa arayüzünün kullanıcılara başarıyla gösterilmesi için aşağıdaki şartların karşılanması gerekir:
- Kullanıcı ABD'de bulunmalıdır.
- Cihazdaki minimum Google Play sürümü 52.3 olmalıdır.
- Android API düzeyi 24 veya daha yüksek olmalıdır.
- Google Play Store'a erişmek için geçerli ve süresi dolmamış bir
catalog_tokensağlamanız gerekir.
Uygulama mağazanızdan satır içi yüklemeleri çağırma
Satır içi yükleme yarım sayfasını çağırmak için Google Play derin bağlantı URL'sini hedefleyen ve benzersiz catalog_token değerinizi içeren bir Intent sınıfı örneği oluşturun.
Aşağıdaki örnek kodu (Kotlin veya Java) kılavuz olarak kullanın:
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 }
Satır içi yükleme API'si parametreleri
Satır içi yüklemeyi yetkilendirmek için aşağıdaki parametrelerin Intent URL'nizde veya Intent Extras olarak iletilmesi gerekir:
| Alan | Tür | Konum | Açıklama | Zorunlu |
|---|---|---|---|---|
id |
String |
URL Sorgusu | Yüklenecek hedef uygulamanın paket adı. | Evet |
referrer |
String |
URL Sorgusu | İsteğe bağlı bir yönlendiren izleme dizesi. | Hayır |
overlay |
boolean |
Intent Extra | Satır içi yarım sayfa arayüzünü istemek için true olarak ayarlayın. |
Evet |
callerId |
String |
Intent Extra | Onaylanan üçüncü taraf uygulama mağazanızın paket adı. | Evet |
catalog_token |
String |
Intent Extra | Katalog Erişimi dışa aktarma işleminizde sağlanan benzersiz yayınlama jetonu. Not: Jetonlar güncellik, hedef paket eşleşmesi ve arayan paket eşleşmesi açısından doğrulanır. | Evet |
(İsteğe bağlı) Yükleme durumu yer paylaşımıyla Google Play Inline Install
Satır içi yükleme akışıyla birlikte yükleme durumu yer paylaşımı göstermek için Google Play HSDP SDK'yı kullanarak Google Play satır içi yüklemeyi kalıcı olanak özelliğiyle entegre etmeniz gerekir.
Kalıcı imkan sunan satır içi yükleme akışının görünmesi için:
- Hedef cihazın minimum Google Play Store sürümü 52.6 veya daha yeni olmalıdır.
- Android API düzeyi 24 (Android M) veya daha yüksek olmalıdır.
- 2.1.0 veya daha yeni bir sürüme sahip HSDP SDK ile entegre edin.
Entegrasyon örneği
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);
İzlemeyi durdurma imkanı örneği
Arayan uygulamanın, yükleme durumunu izlemeyi manuel olarak durdurmasına ve HPOA yer paylaşımını kapatmasına olanak tanır. Not: Bu işlem, HSDP yükleme sayfasını değil, yalnızca ilgili seçeneği kapatır.
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 } });
Kullanım kolaylığı durumları ve kullanıcı deneyimi
Kalıcı Uygunluk özelliğine sahip Google Play Inline Install'un iki görsel durumu vardır:
- Yükleme durumu: Hedef uygulamanın küçük resmini ve yükleme ilerleme durumunu gösteren bir dönen simge gösterir. Küçük resmi tıkladığınızda HSDP yükleme sayfası yeniden başlatılır.
- Yükleme Sonrası Durum: Hedef uygulama simgesini "Aç" işlemiyle gösterir. Küçük resmi tıkladığınızda yeni yüklenen uygulama açılır.
| Yükleme | Yükleme sonrası |
|---|---|
![]() ![]() |
![]() |


