Google Play ইনলাইন ইনস্টলেশন (থার্ড-পার্টি অ্যাপ স্টোর)

এই পৃষ্ঠায় বর্ণনা করা হয়েছে যে কীভাবে ক্যাটালগ অ্যাক্সেস প্রোগ্রামে নথিভুক্ত থার্ড-পার্টি অ্যাপ স্টোর Google Play ইনলাইন ইনস্টল ফিচার ইন্টিগ্রেট করতে পারে। এই ফিচার মার্কিন যুক্তরাষ্ট্রের থার্ড-পার্টি Android অ্যাপ স্টোরকে ব্যবহারকারীদের Google Play-এর মাধ্যমে Play-এর অ্যাপ ডাউনলোড করার জন্য নির্দেশ দিতে দেয়। এই ডাউনলোড Google Play Store-এর মাধ্যমে সরাসরি করা অন্য যেকোনও ডাউনলোডের মতো একই শর্তাবলী মেনে চলে।

পূর্বশর্ত

আপনার থার্ড-পার্টি অ্যাপ স্টোরে ইনলাইন ইনস্টল API ইন্টিগ্রেট করার আগে, আপনাকে Google Play Console-এ নিম্নলিখিত সেট-আপ সম্পূর্ণ করতে হবে:

  1. Play ক্যাটালগ অ্যাক্সেস প্রোগ্রামে এনরোল করুন: এনরোল করার নির্দেশাবলী অনুসরণ করুন।
  2. ক্যাটালগ অ্যাক্সেস চালু করা: আপনার Play Console সেটিংসের মাধ্যমে ক্যাটালগ অ্যাক্সেস প্রোগ্রামে নাম নথিভুক্ত করুন।
  3. ডেলিভারি টোকেন ফিরিয়ে আনা: আপনাকে দেওয়া Play অ্যাপ ক্যাটালগ এক্সপোর্ট প্রসেস করুন। এই এক্সপোর্টে আপনার ডিস্ট্রিবিউট করার উপযুক্ত প্রতিটি অ্যাপের জন্য প্রয়োজনীয় catalog_token (ডেলিভারি টোকেন) থাকে।

প্রয়োজনীয়তা

ব্যবহারকারীদের কাছে হাফ-শিট ইন্টারফেস সফলভাবে দেখানোর জন্য, নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:

  • ব্যবহারকারীকে অবশ্যই মার্কিন যুক্তরাষ্ট্রে থাকতে হবে।
  • ডিভাইসে Google Play-এর ন্যূনতম ভার্সন 52.3 হতে হবে।
  • Android API লেভেল অবশ্যই ২৪ বা তার বেশি হতে হবে।
  • Play Store-এ অ্যাক্সেস পেতে আপনাকে অবশ্যই একটি সঠিক, মেয়াদ শেষ হয়নি এমন catalog_token প্রদান করতে হবে।

আপনার অ্যাপ স্টোর থেকে ইনলাইন ইনস্টল চালু করুন

ইনলাইন ইনস্টল হাফ-শিট চালু করতে, Intent ক্লাসের একটি ইনস্ট্যান্স তৈরি করুন যা Google Play ডিপ লিঙ্ক URL-কে টার্গেট করে এবং আপনার অনন্য 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
}

জাভা

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
}

ইনলাইন ইনস্টল API প্যারামিটার

ইনলাইন ইনস্টল অনুমোদিত করতে আপনার ইনটেন্ট URL-এ বা ইনটেন্ট এক্সট্রা হিসেবে নিম্নলিখিত প্যারামিটারগুলি অবশ্যই পাস করতে হবে:

ফিল্ড ধরন লোকেশন বর্ণনা প্রয়োজনীয়
id String URL কোয়েরি ইনস্টল করার জন্য টার্গেট অ্যাপের প্যাকেজের নাম। হ্যাঁ
referrer String URL কোয়েরি একটি ঐচ্ছিক রেফারার ট্র্যাকিং স্ট্রিং। না
overlay boolean ইনটেন্ট এক্সট্রা ইনলাইন হাফ-শিট ইন্টারফেসের অনুরোধ করতে true-এ সেট করুন। হ্যাঁ
callerId String ইনটেন্ট এক্সট্রা আপনার অনুমোদিত থার্ড-পার্টি অ্যাপ স্টোরের প্যাকেজের নাম। হ্যাঁ
catalog_token String ইনটেন্ট এক্সট্রা আপনার ক্যাটালগ অ্যাক্সেস এক্সপোর্টে অনন্য ডেলিভারি টোকেন প্রদান করা হয়েছে। মনে রাখবেন: টোকেন ফ্রেশ কিনা, টার্গেট প্যাকেজ ম্যাচ এবং কলার প্যাকেজ ম্যাচ যাচাই করা হয়। হ্যাঁ

(ঐচ্ছিক) ইনস্টলেশন স্ট্যাটাস ওভারলে সহ Google Play ইনলাইন ইনস্টল

ইনলাইন ইনস্টল ফ্লো সহ ইনস্টলেশন স্ট্যাটাস ওভারলে দেখাতে, আপনাকে Google Play HSDP SDK ব্যবহার করে পারসিস্টেন্ট অ্যাফর্ডেন্স ফিচারের সাথে Google Play ইনলাইন ইনস্টল ইন্টিগ্রেট করতে হবে।

ইনলাইন ইনস্টল ফ্লোতে পারসিস্টেন্ট অ্যাফর্ডেন্স দেখানোর জন্য:

  • টার্গেট ডিভাইসে Google Play Store-এর ন্যূনতম ভার্সন 52.6 বা তার পরবর্তী ভার্সন হতে হবে।
  • Android API লেভেল অবশ্যই ২৪ (Android M) বা তার বেশি হতে হবে।
  • 2.1.0 বা তার পরবর্তী ভার্সনের HSDP SDK-এর সাথে ইন্টিগ্রেট করুন।

ইন্টিগ্রেশনের উদাহরণ

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
)

জাভা

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

জাভা

// 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 ইনলাইন ইনস্টলের দুটি ভিজ্যুয়াল স্টেট আছে:

  1. ইনস্টল করার স্ট্যাটাস: টার্গেট অ্যাপের থাম্বনেল এবং ইনস্টলেশন প্রগ্রেস স্পিনার দেখায়। থাম্বনেলে ক্লিক করলে HSDP ইনস্টল শিট আবার চালু হয়।
  2. ইনস্টল করার পরের অবস্থা: "খুলুন" অ্যাকশন সহ টার্গেট অ্যাপ আইকন দেখায়। থাম্বনেলে ক্লিক করলে নতুন ইনস্টল করা অ্যাপ খুলে যায়।
ইনস্টল করা হচ্ছে ইনস্টল করার পরে
ইনস্টল করার স্ট্যাটাস (বড় করা)

ইনস্টল করার স্ট্যাটাস (আড়াল করা)
ইনস্টল করার পরের স্ট্যাটাস