Google Play की इनलाइन इंस्टॉल सुविधा (तीसरे पक्ष के ऐप्लिकेशन स्टोर)

इस पेज पर बताया गया है कि Catalog Access प्रोग्राम में रजिस्टर किए गए तीसरे पक्ष के ऐप स्टोर, Google Play के इनलाइन इंस्टॉल को कैसे इंटिग्रेट कर सकते हैं. यह एक ऐसी सुविधा है जिसकी मदद से, अमेरिका में तीसरे पक्ष के Android ऐप स्टोर, लोगों को Google Play के Android ऐप्लिकेशन डाउनलोड करने के लिए रीडायरेक्ट कर सकते हैं. इन ऐप्लिकेशन को Google Play से डाउनलोड किया जा सकेगा. Google Play Store से सीधे तौर पर किए जाने वाले किसी भी अन्य डाउनलोड पर लागू होने वाली शर्तें इन पर भी लागू होंगी.

ज़रूरी शर्तें

किसी तीसरे पक्ष के ऐप्लिकेशन स्टोर में, ऐप्लिकेशन को वेबपेज से इंस्टॉल करने की सुविधा देने वाले एपीआई को इंटिग्रेट करने से पहले, आपको Google Play Console में यह सेटअप पूरा करना होगा:

  1. Play Catalog Access Program में रजिस्टर करें: रजिस्ट्रेशन के निर्देशों का पालन करें.
  2. कैटलॉग ऐक्सेस करने के लिए ऑप्ट-इन करें: Play Console की सेटिंग में जाकर, Catalog Access Program में रजिस्टर करें.
  3. डिलीवरी टोकन वापस पाना: आपको दिए गए Play ऐप्लिकेशन कैटलॉग एक्सपोर्ट को प्रोसेस करें. इस एक्सपोर्ट में, उन सभी ऐप्लिकेशन के लिए ज़रूरी catalog_token (डिलीवरी टोकन) शामिल हैं जिन्हें डिस्ट्रिब्यूट किया जा सकता है.

ज़रूरी शर्तें

उपयोगकर्ताओं को हाफ़-शीट इंटरफ़ेस दिखाने के लिए, ये ज़रूरी शर्तें पूरी करनी होंगी:

  • उपयोगकर्ता अमेरिका में होना चाहिए.
  • डिवाइस पर Google Play का कम से कम वर्शन 52.3 होना चाहिए.
  • Android का एपीआई लेवल 24 या इसके बाद का वर्शन होना चाहिए.
  • Play Store को ऐक्सेस करने के लिए, आपको एक मान्य और चालू catalog_token देना होगा.

अपने ऐप स्टोर से वेबपेज से इंस्टॉलेशन शुरू करना

वेबपेज से इंस्टॉलेशन करने की सुविधा वाली हाफ़-शीट को चालू करने के लिए, Intent क्लास का एक इंस्टेंस बनाएं. यह 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
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 के पैरामीटर

इनलाइन इंस्टॉल को अनुमति देने के लिए, आपको अपने इंटेंट यूआरएल या इंटेंट एक्स्ट्रा में ये पैरामीटर पास करने होंगे:

फ़ील्ड जगह Description ज़रूरी है
id यूआरएल क्वेरी टारगेट किए गए उस ऐप्लिकेशन का पैकेज नेम जिसे इंस्टॉल करना है. हां
referrer यूआरएल क्वेरी रेफ़रर ट्रैकिंग स्ट्रिंग (ज़रूरी नहीं). नहीं
overlay Intent Extra इनलाइन हाफ़-शीट इंटरफ़ेस का अनुरोध करने के लिए, इसे true पर सेट करें. हां
callerId Intent Extra आपके मंज़ूर किए गए तीसरे पक्ष के ऐप स्टोर के पैकेज का नाम. हां
catalog_token Intent Extra कैटलॉग ऐक्सेस एक्सपोर्ट में दिया गया यूनीक डिलीवरी टोकन. ध्यान दें: टोकन की पुष्टि इन आधार पर की जाती है: टोकन नया है या नहीं, टारगेट पैकेज से मैच करता है या नहीं, और कॉलर पैकेज से मैच करता है या नहीं. हां

(ज़रूरी नहीं) Google Play Inline Install की सुविधा के साथ-साथ, इंस्टॉलेशन की स्थिति दिखाने वाली ओवरले सुविधा

वेबपेज से इंस्टॉल करने की सुविधा के साथ, इंस्टॉलेशन की स्थिति दिखाने वाला ओवरले दिखाने के लिए, आपको Google Play HSDP SDK का इस्तेमाल करके, Google Play Inline Install को Persistent Affordance सुविधा के साथ इंटिग्रेट करना होगा.

वेबपेज से इंस्टॉलेशन की सुविधा के साथ-साथ, लगातार दिखने वाली सुविधा के लिए:

  • टारगेट किए गए डिवाइस में Google Play Store का कम से कम 52.5 या इसके बाद का वर्शन होना चाहिए.
  • Android का एपीआई लेवल 24 (Android M) या इसके बाद का होना चाहिए.
  • HSDP SDK के 2.0.2 (जल्द ही उपलब्ध होगा) या इसके बाद के वर्शन के साथ इंटिग्रेट करें.

इंटिग्रेशन का उदाहरण

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

किराया कम होने पर सूचना पाने की सुविधा को बंद करने का उदाहरण

इससे कॉल करने वाले ऐप्लिकेशन को, इंस्टॉल करने की स्थिति को मैन्युअल तरीके से ट्रैक करने और HPOA ओवरले को खारिज करने की अनुमति मिलती है. ध्यान दें: इससे HSDP की इंस्टॉल शीट बंद नहीं होगी. सिर्फ़ अफ़ॉर्डेंस बंद होगा.

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

अफ़ोर्डेंस स्टेटस और यूएक्स

'हमेशा उपलब्ध रहने वाली सुविधा के साथ Google Play Inline Install' में दो विज़ुअल स्टेट होती हैं:

  1. इंस्टॉल करने की स्थिति: इसमें टारगेट ऐप्लिकेशन का थंबनेल और इंस्टॉल होने के स्टेटस की जानकारी देने वाला स्पिनर दिखता है. थंबनेल पर क्लिक करने से, HSDP इंस्टॉल करने की शीट फिर से खुल जाती है.
  2. ऐप्लिकेशन इंस्टॉल होने के बाद की स्थिति: इसमें टारगेट किए गए ऐप्लिकेशन का आइकॉन दिखता है. साथ ही, "खोलें" कार्रवाई दिखती है. थंबनेल पर क्लिक करने से, नया इंस्टॉल किया गया ऐप्लिकेशन खुल जाता है.
इंस्टॉल किया जा रहा है ऐप्लिकेशन इंस्टॉल करने के बाद
इंस्टॉल करने की स्थिति (बड़ा किया गया)

इंस्टॉल करने की स्थिति (संक्षिप्त)
इंस्टॉल करने के बाद की स्थिति