In-App Promo SDK ব্যবহার করে শর্টকাট সাজেস্ট করা

আপনার অ্যাপের ফিচার প্রচার করতে এবং এটি ব্যবহার করা আরও সহজ করতে, আপনি ব্যবহারকারীদের Assistant শর্টকাট সাজেস্ট করতে পারেন। Assistant শর্টকাট হল সংক্ষিপ্ত বাক্যাংশ যা ব্যবহারকারী আপনার অ্যাপের মধ্যে কার্যকারিতা ট্রিগার করতে বলতে পারেন।

Assistant শর্টকাট আপনার ব্যবহারকারীরা ম্যানুয়ালি তৈরি করতে পারলেও, In-App Promo SDK আপনাকে Assistant শর্টকাট সাজেস্ট ও প্রয়োগ করতে সাহায্য করে। শর্টকাটের সাজেশন দেওয়ার মাধ্যমে, আপনি ব্যবহারকারীদের আপনার অ্যাপে তাদের প্রিয় অ্যাক্টিভিটিতে ফিরে যাওয়ার জন্য স্পষ্ট, সহজ পথ দেখান, যাতে তাদের শর্টকাট সেট-আপ করার জন্য অতিরিক্ত পরিশ্রম করতে না হয়।

যেমন, কোনও ব্যবহারকারী আপনার মিউজিক অ্যাপে "হেভি মেটাল ওয়ার্কআউট" সার্চ করলে, আপনি ভবিষ্যতে সরাসরি সেই সার্চ ফলাফলে Assistant শর্টকাট সাজেস্ট করতে পারেন। আপনি কোনও শর্টকাটের সাজেশন দিলে, আপনার অ্যাপে একটি প্রম্পট দেখানো হয় যা শর্টকাটের জন্য প্রস্তাবিত শব্দগুচ্ছ দেখায় এবং ব্যবহারকারীকে জিজ্ঞাসা করে যে শর্টকাটটি তৈরি করা যাবে কিনা।

এই উদাহরণে, আপনি "আমার হেভি মেটাল ওয়ার্কআউট শুরু করো" বাক্যাংশটি সাজেস্ট করেন। ব্যবহারকারী সাজেশন গ্রহণ করেন এবং তারপর "Ok Google, আমার হেভি মেটাল ওয়ার্কআউট শুরু করো" বলে শর্টকাট চালু করতে পারেন।

আপনার অ্যাপের দর্শক সংখ্যা বাড়ানোর উপায় সম্পর্কে আরও জানতে, অ্যাপ অ্যাকশনের মাধ্যমে আপনার অ্যাপের দর্শক সংখ্যা বাড়ান নিবন্ধটি দেখুন।

In-App Promo SDK নিম্নলিখিত পদ্ধতি প্রদান করে:

  • lookupShortcut: আপনি যে শর্টকাট সাজেস্ট করতে চান সেটি আগে থেকেই আছে কিনা তা চেক করে। এছাড়াও, এই পদ্ধতি শর্টকাট তৈরি করার ক্ষেত্রে বাধা প্রদানকারী যেকোনও সমস্যা চেক করে। শর্টকাট তৈরি করা না গেলে, lookupShortcut তার কারণ জানায়।

  • createShortcutSuggestionIntent: এমন একটি ইনটেন্ট রিটার্ন করে যা আপনি ব্যবহার করে ব্যবহারকারীকে সাজেস্ট করা শর্টকাট তৈরি করার জন্য প্রম্পট করতে পারেন।

  • createShortcutSettingsIntent: এমন একটি ইনটেন্ট রিটার্ন করে যা ব্যবহার করে আপনি ব্যবহারকারীকে আপনার অ্যাপের Assistant শর্টকাট সেটিংসে নিয়ে যেতে পারবেন।

পূর্বশর্ত ও সীমাবদ্ধতা

এই বিভাগে সাজেশন ব্যবহার করার জন্য পূর্বশর্ত ও প্রয়োজনীয়তা এবং আপনি যেসব সীমাবদ্ধতার সম্মুখীন হতে পারেন সেগুলি বর্ণনা করা হয়েছে।

ডেভেলপমেন্টের পূর্বশর্ত

সাজেশন ব্যবহার করতে, আপনার ডেভেলপমেন্ট এমভায়রনমেন্টকে নিম্নলিখিত পূর্বশর্ত পূরণ করতে হবে।

  • আপনার Android অ্যাপ এক্সটেন্ড করে অ্যাপ অ্যাকশন ব্যবহার করুন।

  • আপনার ম্যানিফেস্টে <queries> ট্যাগের মধ্যে com.google.android.googlequicksearchbox অন্তর্ভুক্ত করুন। যেমন:

    <manifest ...>
      <queries>
        <package android:name="com.google.android.googlequicksearchbox" />
      </queries>
      ...
    </manifest>
    
  • আপনার অ্যাপ প্রকাশ করতে Android অ্যাপ বান্ডেল ব্যবহার করুন।

প্রয়োজনীয় ডিভাইস

কোনও ডিভাইসে আপনার সাজেশন পরীক্ষা করতে, আপনার ডিভাইসে নিম্নলিখিতগুলি ইনস্টল করা থাকতে হবে।

  • Google অ্যাপ-এর লেটেস্ট ভার্সন

  • Android 6.0 (API লেভেল 23) বা তার পরবর্তী যেকোনও ভার্সন

পরিচিত সীমাবদ্ধতা

শুধুমাত্র ইংরেজি ভাষাতেই সাজেশন কাজ করে। ব্যবহারকারীরা যাতে আপনার সাজেশন দেখতে পান, তার জন্য তাদের ডিভাইসে Assistant-এর ভাষা ইংরেজি হিসেবে সেট করতে হবে।

সাজেশন প্রয়োগ করুন

সাজেশন প্রয়োগ করতে, আপনাকে build.gradle ফাইল আপডেট করতে হবে, সাজেশন ক্লায়েন্ট সেট-আপ করতে হবে এবং তারপর ব্যবহারকারীদের যে সাজেশন দিতে চান তা নির্ধারণ করতে হবে।

  1. আপনার build.gradle ফাইলে লাইব্রেরি ডিপেন্ডেন্সি যোগ করুন।

    dependencies {
      ...
      implementation "com.google.assistant.appactions:suggestions:1.0.0"
    }
    
  2. AssistantShortcutSuggestionsClient-এর একটি ইনস্ট্যান্স সংজ্ঞায়িত করুন।

    Kotlin

    val shortcutsClient =
      AssistantShortcutSuggestionsClient.builder()
        .setContext(CONTEXT: Context)
        .setVerifyIntents(VERIFY_INTENTS: Boolean)
        .setCustomExecutor(CUSTOM_EXECUTOR: Object)
        .build()

    জাভা

    AssistantShortcutSuggestionsClient shortcutsClient =
      AssistantShortcutSuggestionsClient.builder()
        .setContext(CONTEXT: Context)
        .setVerifyIntents(VERIFY_INTENTS: Boolean)
        .setCustomExecutor(CUSTOM_EXECUTOR: Object)
        .build();

    এই উদাহরণে:

    • CONTEXT (প্রয়োজনীয়) হল অ্যাপ্লিকেশন কনটেক্সট।

    • VERIFY_INTENTS (প্রয়োজনীয়) ব্যবহারকারীদের শর্টকাট সাজেস্ট করার সময় তৈরি করা প্রতিটি ইনটেন্ট যাচাই করা হবে কিনা তা নির্ধারণ করে। true হলে, AssistantShortcutSuggestionsClient-এর তৈরি করা ইনটেন্ট যাচাই করা হয়। কোনও ইন্টেন্ট ভুল হলে, একটি ব্যতিক্রম রিটার্ন করা হয়।

    • CUSTOM_EXECUTOR (ঐচ্ছিক) হল অ্যাসিঙ্ক্রোনাস টাস্ক চালানোর জন্য কাস্টম এক্সিকিউটর। প্রদান করা না হলে, SDK টাস্কের জন্য সিঙ্গেল-থ্রেডেড এক্সিকিউটর ব্যবহার করে।

  3. আপনি যে শর্টকাট সাজেস্ট করতে চান সেটি সঠিক কিনা এবং বিকল্প হিসেবে, শর্টকাটটি আগে থেকেই আছে কিনা তা নির্ধারণ করতে lookupShortcut পদ্ধতি ব্যবহার করুন।

    1. অ্যাপ শর্টকাট ইনটেন্ট তৈরি করুন। শর্টকাট ইনটেন্ট বলতে সেই শর্টকাটকে বোঝায় যা আপনি ব্যবহারকারীকে সাজেস্ট করতে চান। নিম্নলিখিত উদাহরণটি ব্যায়াম শুরু করার জন্য শর্টকাটের ইনটেন্ট তৈরি করে।

      Kotlin

      val exercise = mapOf(
          "@type" to "Exercise",
          "@context" to "http://schema.googleapis.com",
          "name" to "Running",
      )
      
      val appShortcutIntent = AppShortcutIntent.builder()
          .setIntentName("actions.intent.START_EXERCISE")
          .setPackageName("my.app.package")
          .setIntentParamName("exercise")
          .setIntentParamValue(exercise)
          .build()
       

      জাভা

        Map<String, Object> exercise = new HashMap<>();
        exercise.put("@type", "Exercise");
        menuItem.put("@context", "http://schema.googleapis.com");
        menuItem.put("name", "Running");
      
        AppShortcutIntent appShortcutIntent =
            AppShortcutIntent.builder()
                .setIntentName("actions.intent.START_EXERCISE")
                .setPackageName("my.app.package")
                .setIntentParamName("exercise")
                .setIntentParamValue(exercise)
                .build();
       
    2. lookupShortcut পদ্ধতিতে শর্টকাট ইনটেন্ট পাস করুন।

      Kotlin

      val result = shortcutsClient.lookupShortcut(appShortcutIntent).await()
      if (!result.isShortcutPresent) {
          // App can suggest creating a shortcut
      } else {
          // App can remind the user that they have a shortcut for this app action
      }

      জাভা

      shortcutsClient.lookupShortcut(appShortcutIntent)
        .addOnSuccessListener(shortcutLookupResult -> {
          if (!shortcutLookupResult.isShortcutPresent()) {
            // App can suggest creating a shortcut
          } else {
            // App can remind the user that they have a shortcut for this app action
          }
        })
        .addOnFailureListener(e -> Log.e(TAG, "Shortcut lookup failed", e));
  4. শর্টকাট ইনটেন্ট ব্যবহার করে সাজেশন তৈরি করুন। আপনি দুটি পদ্ধতিতে সাজেশন তৈরি করতে পারবেন:

    • createShortcutSuggestionIntent: একটি Android ইনটেন্ট রিটার্ন করে যা আপনি আপনার অ্যাপের প্রসঙ্গে শর্টকাট সাজেশন অ্যাক্টিভিটি শুরু করতে ব্যবহার করেন।

      Kotlin

      val exerciseShortcut = AppShortcutSuggestion.builder()
          .setAppShortcutIntent(appShortcutIntent)
          .setCommand(PHRASE: String)
          .build()
      
      val intent = shortcutsClient.createShortcutSuggestionIntent(exerciseShortcut).await()
      application.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))

      জাভা

        AppShortcutSuggestion exerciseShortcut =
            AppShortcutSuggestion.builder()
                .setAppShortcutIntent(appShortcutIntent)
                .setCommand(PHRASE: String)
                .build();
      
        shortcutsClient.createShortcutSuggestionIntent(exerciseShortcut)
            .addOnSuccessListener(intent ->
                getApplication().startActivity(
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
            )
            .addOnFailureListener(e ->
                Log.e(TAG, "Failed to get shortcut suggestion intent", e);
            );

      এই উদাহরণে, PHRASE হল সেই উচ্চারণ যা আপনি ব্যবহারকারীকে শর্টকাট হিসেবে সাজেস্ট করতে চান। যেমন, আপনি যদি চান যে ব্যবহারকারী শর্টকাট হিসেবে "Ok Google, দৌড়ানো শুরু করো" বলুক, তাহলে PHRASE-এর পরিবর্তে "start a run" ব্যবহার করুন।

      Kotlin

      val exerciseShortcut = AppShortcutSuggestion.builder()
          .setAppShortcutIntent(appShortcutIntent)
          .setCommand("start a run")
          .build()

      জাভা

      AppShortcutSuggestion exerciseShortcut =
          AppShortcutSuggestion.builder()
              .setAppShortcutIntent(appShortcutIntent)
              .setCommand("start a run")
              .build();
    • createShortcutSettingsIntent: এমন একটি Android ইনটেন্ট রিটার্ন করে যা ব্যবহারকারীকে Assistant অ্যাপের শর্টকাট সেটিংস ইন্টারফেসে নিয়ে যায়।

      Kotlin

      val intent = shortcutsClient.createShortcutSettingsIntent().await()
      application.startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))

      জাভা

        shortcutsClient.createShortcutSettingsIntent()
          .addOnSuccessListener(intent ->
              getApplication().startActivity(
                  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
          )
          .addOnFailureListener(e ->
              Log.e(TAG, "Failed to get shortcut settings intent", e);
          );
  5. আগের ধাপে ফেরত আসা Android ইনটেন্ট ব্যবহার করে startActivity কল করুন।

সমস্যার সমাধান সংক্রান্ত সাজেশন

এই বিভাগে শর্টকাট সাজেস্ট করার সময় আপনি যেসব সমস্যা ও ব্যতিক্রমের সম্মুখীন হতে পারেন তার তালিকা দেওয়া আছে।

"GoogleInstallationUnsupportedException: পরিষেবার সাথে বাইন্ড করা যাচ্ছে না"

প্যাকেজ দৃশ্যমানতা ফিল্টারিং-এর কারণে, "GoogleInstallationUnsupportedException: পরিষেবার সাথে বাইন্ড করা যাচ্ছে না" সমস্যাটি Android 11 এবং তার পরবর্তী ভার্সনে হতে পারে। আপনার ম্যানিফেস্টে <queries> ট্যাগের মধ্যে com.google.android.googlequicksearchbox অন্তর্ভুক্ত করা হয়েছে কিনা তা নিশ্চিত করুন:

<manifest ...>
  <queries>
    <package android:name="com.google.android.googlequicksearchbox" />
  </queries>
  ...
</manifest>

"APK সিগনেচার যাচাই করা যায়নি"

আপনি যদি প্রোডাকশন অ্যাপ, অ্যাপ বান্ডেল হিসেবে জমা না দেন, তাহলে নিম্নলিখিত সমস্যা হতে পারে:

Failed to verify the APK signature. If this is a development build, please
make sure to update the preview of your app in App Actions Test Tool.

নিশ্চিত করুন যে আপনি Android অ্যাপ বান্ডেল হিসেবে আপনার অ্যাপ জমা দিয়েছেন।

"ব্যবহারকারীর শর্টকাট পাওয়া যায়নি"

"ব্যবহারকারীর শর্টকাট পাওয়া যায়নি" সংক্রান্ত সমস্যার মেসেজ তখনই দেখানো হতে পারে, যদি আপনি সম্প্রতি ডিভাইসে কোনও অ্যাকাউন্ট যোগ করে থাকেন এবং নতুন অ্যাকাউন্টের শর্টকাট ডেটা ডিভাইসে এখনও ক্যাশে করা না হয়ে থাকে।

ডিভাইসে শর্টকাট ডেটা সিঙ্ক করতে, Assistant অ্যাপের ইন্টারফেস ব্যবহার করে Assistant শর্টকাট যোগ করুন বা মুছে দিন।

শর্টকাট তৈরি করার অ্যাক্টিভিটি কোনও কন্টেন্ট না দেখিয়েই সাথে সাথে বন্ধ হয়ে যায়

আপনি যদি অ্যাপ অ্যাকশন টেস্ট টুল ব্যবহার করে প্রিভিউ তৈরি না করেন বা প্রিভিউয়ের মেয়াদ শেষ হয়ে যায়, তাহলে শর্টকাট তৈরির অ্যাক্টিভিটি কোনও কন্টেন্ট না দেখিয়েই বন্ধ হয়ে যেতে পারে। আপনার প্রিভিউ আপডেট করে আবার চেষ্টা করুন।