Engage SDK Shopping: دستورالعمل‌های یکپارچه‌سازی فنی شخص ثالث

Google در حال ساخت یک سطح روی دستگاه است که برنامه های کاربران را بر اساس عمودی سازماندهی می کند و یک تجربه همهجانبه جدید را برای مصرف شخصی و کشف محتوای برنامه امکان پذیر می کند. این تجربه تمام صفحه به شرکای توسعه‌دهنده فرصتی می‌دهد تا بهترین محتوای غنی خود را در یک کانال اختصاصی خارج از برنامه خود به نمایش بگذارند.

این راهنما حاوی دستورالعمل‌هایی برای شرکای توسعه‌دهنده است تا محتوای خرید خود را با استفاده از Engage SDK برای پر کردن این سطح جدید و سطوح موجود Google مانند Entertainment Space، یکپارچه کنند.

جزئیات یکپارچه سازی

واژه شناسی

این ادغام شامل پنج نوع خوشه زیر است: توصیه ، ویژه ، سبد خرید ، فهرست خرید ، سفارش مجدد و پیگیری سفارش خرید .

  • خوشه‌های توصیه پیشنهادات خرید شخصی‌شده از یک شریک توسعه‌دهنده را نشان می‌دهند. این توصیه‌ها را می‌توان برای کاربر شخصی‌سازی کرد یا تعمیم داد (به عنوان مثال، موارد پرطرفدار). از این ها برای نمایش محصولات، رویدادها، فروش ها، تبلیغات، اشتراک ها به دلخواه خود استفاده کنید.

    توصیه های شما ساختار زیر را دارد:

    • Recommendation Cluster: نمای رابط کاربری که شامل گروهی از توصیه‌های یک شریک توسعه‌دهنده است.

    • ShoppingEntity: یک شی که یک مورد را در یک خوشه نشان می دهد.

  • خوشه Featured قهرمان انتخاب شده ShoppingEntity از بسیاری از شرکای توسعه دهنده را در یک گروه UI به نمایش می گذارد. یک خوشه ویژه وجود دارد که در نزدیکی بالای رابط کاربری ظاهر شده است، با اولویت بالاتر از همه خوشه‌های توصیه. هر شریک توسعه‌دهنده مجاز است یک ShoppingEntity را در خوشه Featured منتشر کند.

  • خوشه سبد خرید نگاهی اجمالی به سبد خرید از بسیاری از شرکای توسعه‌دهنده در یک گروه رابط کاربری نشان می‌دهد و کاربران را وادار می‌کند تا سبدهای خرید برجسته خود را تکمیل کنند. یک خوشه سبد خرید وجود دارد که در نزدیکی بالای رابط کاربری ظاهر می‌شود، با اولویت بالاتر از همه خوشه‌های توصیه. هر شریک توسعه دهنده مجاز است یک ShoppingCart در خوشه سبد خرید پخش کند.

    سبد خرید شما ساختار زیر را دارد:

    • خوشه سبد خرید: نمای رابط کاربری که شامل گروهی از پیش نمایش های سبد خرید از بسیاری از شرکای توسعه دهنده است.

    • سبد خرید: شیئی که نمایانگر پیش‌نمایش سبد خرید برای یک شریک توسعه‌دهنده است که در خوشه سبد خرید نمایش داده می‌شود. ShoppingCart باید تعداد کل اقلام موجود در سبد را نشان دهد و همچنین ممکن است شامل تصاویر برخی از اقلام در سبد خرید کاربر باشد.

  • خوشه فهرست خرید نگاهی اجمالی به لیست های خرید از چندین شریک توسعه دهنده در یک گروه UI را نشان می دهد که از کاربران می خواهد برای به روز رسانی و تکمیل لیست های خود به برنامه مربوطه بازگردند. یک خوشه لیست خرید وجود دارد.

  • خوشه Reorder نگاهی اجمالی از سفارشات قبلی از چندین شریک توسعه دهنده در یک گروه UI را نشان می دهد که کاربران را وادار به سفارش مجدد می کند. یک خوشه Reorder واحد وجود دارد.

    • خوشه سفارش مجدد باید تعداد کل موارد در سفارش قبلی کاربر را نشان دهد و همچنین باید یکی از موارد زیر را شامل شود:

      • تصاویر برای X مورد در سفارش قبلی کاربر.
      • برچسب‌هایی برای X مورد در سفارش قبلی کاربر.
  • خوشه ردیابی سفارش خرید نگاهی گذرا از سفارشات خرید در انتظار یا اخیراً تکمیل شده از بسیاری از شرکای توسعه‌دهنده در یک گروه UI نشان می‌دهد که به کاربران امکان می‌دهد سفارش‌های خود را پیگیری کنند.

    یک خوشه ShoppingOrderTracking وجود دارد که در نزدیکی بالای UI ظاهر می‌شود، با اولویت بالاتر از همه خوشه‌های Recommendation. هر شریک توسعه دهنده مجاز است چندین مورد ShoppingOrderTrackingEntity را در خوشه ردیابی سفارش خرید پخش کند.

    • ShoppingOrderTrackingCluster شما ساختار زیر را دارد:

      • ShoppingOrderTracking Cluster : نمای رابط کاربری که شامل گروهی از پیش نمایش های ردیابی سفارش از بسیاری از شرکای توسعه دهنده است.
      • ShoppingOrderTrackingEntity : یک شی که نشان دهنده پیش نمایش ردیابی سفارش خرید برای یک شریک توسعه دهنده است که در خوشه پیگیری سفارش خرید نمایش داده می شود. ShoppingOrderTrackingEntity باید وضعیت سفارش و زمان سفارش را نشان دهد. ما قویاً توصیه می‌کنیم زمان تحویل مورد انتظار برای ShoppingOrderTrackingEntity را پر کنید، زیرا در صورت ارائه به کاربران نمایش داده می‌شود.

قبل از کار

حداقل سطح API: 19

کتابخانه com.google.android.engage:engage-core به برنامه خود اضافه کنید:

dependencies {
    // Make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.engage:engage-core:1.5.2'
}

برای اطلاعات بیشتر، مشاهده بسته در Android 11 را ببینید.

خلاصه

طراحی بر اساس اجرای یک سرویس محدود است.

داده‌هایی که مشتری می‌تواند منتشر کند مشمول محدودیت‌های زیر برای انواع مختلف خوشه است:

نوع خوشه محدودیت های خوشه ای حداکثر محدودیت موجودیت در یک خوشه
خوشه(های) توصیه حداکثر 5 حداکثر 25 ShoppingEntity
خوشه برجسته حداکثر 1 حداکثر 1 ShoppingEntity
خوشه سبد خرید حداکثر 1 حداکثر 1 ShoppingCart
خوشه لیست خرید حداکثر 1 حداکثر 1 ShoppingListEntity
خوشه سفارش مجدد خرید حداکثر 1 حداکثر 1 ReorderEntity
خوشه پیگیری سفارش خرید حداکثر 3 حداکثر 3 ShoppingOrderTrackingEntity

مرحله 1: داده های موجودیت را ارائه دهید

SDK موجودیت های مختلفی را برای نشان دادن هر نوع مورد تعریف کرده است. نهادهای زیر برای دسته خرید پشتیبانی می شوند:

  1. ShoppingEntity
  2. ShoppingCart
  3. ShoppingList
  4. Reorder
  5. ShoppingOrderTracking

نمودارهای زیر ویژگی ها و الزامات موجود برای هر نوع را مشخص می کند.

ShoppingEntity

شی ShoppingEntity محصول، تبلیغ، معامله، اشتراک یا رویدادی را نشان می دهد که شرکای توسعه دهنده می خواهند منتشر کنند.

ShoppingEntity
صفت مورد نیاز شرح قالب
تصاویر پوستر ضروری حداقل یک تصویر باید ارائه شود. برای راهنمایی به مشخصات تصویر مراجعه کنید.
اکشن اوری ضروری

پیوند عمیق به صفحه در برنامه که جزئیات مربوط به موجودیت را نشان می دهد.

توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید

اوری
عنوان اختیاری نام نهاد.

متن آزاد

اندازه متن توصیه شده: کمتر از 90 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

قیمت - فعلی مشروط مورد نیاز است

قیمت فعلی واحد تجاری

در صورت ارائه قیمت خطی باید ارائه شود.

متن آزاد
قیمت - خط خطی اختیاری قیمت اصلی موجودیت، که در رابط کاربری ثبت شده است. متن آزاد
فراخوانی اختیاری فراخوانی برای ارائه یک تبلیغ، رویداد یا به‌روزرسانی برای نهاد، در صورت وجود.

متن آزاد

اندازه متن توصیه شده: کمتر از 45 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

چاپ ریز چاپ اختیاری متن چاپ دقیق برای فراخوانی.

متن آزاد

اندازه متن توصیه شده: کمتر از 45 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

رتبه بندی (اختیاری) - توجه: همه رتبه بندی ها با استفاده از سیستم رتبه بندی ستاره استاندارد ما نمایش داده می شوند.
رتبه - حداکثر مقدار اختیاری

حداکثر مقدار مقیاس رتبه بندی.

اگر ارزش فعلی رتبه‌بندی نیز ارائه شده باشد، باید ارائه شود.

عدد >= 0.0
رتبه - ارزش فعلی اختیاری

ارزش فعلی مقیاس رتبه بندی.

اگر حداکثر مقدار رتبه بندی نیز ارائه شده باشد، باید ارائه شود.

عدد >= 0.0
رتبه بندی - شمارش اختیاری

تعداد رتبه‌بندی‌ها برای نهاد.

توجه: اگر برنامه شما نحوه نمایش تعداد به کاربران را کنترل می‌کند، این قسمت را وارد کنید. از یک رشته مختصر استفاده کنید. به عنوان مثال، اگر تعداد 1,000,000 باشد، از مخفف‌هایی مانند 1M استفاده کنید تا این تعداد در اندازه‌های نمایشگر کوچک‌تر کوتاه نشود.

رشته
رتبه بندی - مقدار شمارش اختیاری

تعداد رتبه‌بندی‌ها برای نهاد.

توجه: اگر خودتان منطق مخفف نمایشگر را مدیریت نمی‌کنید، این فیلد را وارد کنید. اگر تعداد و مقدار تعداد هر دو موجود باشد، تعداد به کاربران نمایش داده می شود.

طولانی
DisplayTimeWindow (اختیاری) - یک پنجره زمانی برای نمایش محتوا روی سطح تنظیم کنید
مهر زمانی را شروع کنید اختیاری

مهر زمانی دوره که پس از آن محتوا باید روی سطح نشان داده شود.

اگر تنظیم نشود، محتوا واجد شرایط نمایش در سطح است.

مهر زمانی دوره در میلی ثانیه
پایان مهر زمان اختیاری

مهر زمانی دوره ای که پس از آن محتوا دیگر روی سطح نشان داده نمی شود.

اگر تنظیم نشود، محتوا واجد شرایط نمایش در سطح است.

مهر زمانی دوره در میلی ثانیه

ShoppingCart

صفت مورد نیاز شرح قالب
اکشن اوری ضروری

پیوند عمیق به سبد خرید در برنامه شریک.

توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید

اوری
تعداد اقلام ضروری

تعداد اقلام (نه فقط تعداد محصولات) در سبد خرید.

به عنوان مثال: اگر 3 پیراهن یکسان و 1 کلاه در سبد خرید وجود دارد، این عدد باید 4 باشد.

عدد صحیح >= 1
متن اقدام اختیاری

متن فراخوان دکمه روی سبد خرید (به عنوان مثال، کیف خرید شما ).

اگر هیچ متن اقدامی توسط برنامه‌نویس ارائه نشد، View Cart پیش‌فرض است.

این ویژگی در نسخه 1.1.0 به بعد پشتیبانی می شود.

رشته
عنوان اختیاری

عنوان سبد خرید (به عنوان مثال، کیف خرید شما ).

اگر هیچ عنوانی توسط توسعه دهنده ارائه نشده باشد، سبد خرید شما پیش فرض است.

متن آزاد

اندازه متن توصیه شده: کمتر از 25 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

تصاویر سبد خرید اختیاری

تصاویر هر محصول در سبد خرید.

حداکثر 10 تصویر به ترتیب اولویت ارائه می شود. تعداد واقعی تصاویر نمایش داده شده به فاکتور فرم دستگاه بستگی دارد.

برای راهنمایی به مشخصات تصویر مراجعه کنید.
برچسب های اقلام اختیاری

لیست برچسب ها برای اقلام موجود در لیست خرید.

تعداد واقعی برچسب های نمایش داده شده به فاکتور فرم دستگاه بستگی دارد.

لیست برچسب های متن آزاد

اندازه متن توصیه شده: کمتر از 20 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

DisplayTimeWindow (اختیاری) - یک پنجره زمانی برای نمایش محتوا روی سطح تنظیم کنید
مهر زمانی را شروع کنید اختیاری

مهر زمانی دوره که پس از آن محتوا باید روی سطح نشان داده شود.

اگر تنظیم نشود، محتوا واجد شرایط نمایش در سطح است.

مهر زمانی دوره در میلی ثانیه
پایان مهر زمان اختیاری

مهر زمانی دوره ای که پس از آن محتوا دیگر روی سطح نشان داده نمی شود.

اگر تنظیم نشود، محتوا واجد شرایط نمایش در سطح است.

مهر زمانی دوره در میلی ثانیه

ShoppingList

صفت مورد نیاز شرح قالب
اکشن اوری ضروری

پیوند عمیق به لیست خرید در برنامه شریک.

توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید

اوری
تعداد اقلام ضروری تعداد کالاهای موجود در لیست خرید. عدد صحیح >= 1
عنوان اختیاری

عنوان لیست (به عنوان مثال، فهرست مواد غذایی شما ).

اگر هیچ عنوانی توسط توسعه دهنده ارائه نشده باشد، لیست خرید پیش فرض است.

متن آزاد

اندازه متن توصیه شده: کمتر از 25 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

برچسب های اقلام ضروری

لیست برچسب ها برای اقلام موجود در لیست خرید.

حداقل 1 برچسب باید ارائه شود و حداکثر 10 برچسب می تواند به ترتیب اولویت ارائه شود. تعداد واقعی برچسب های نمایش داده شده به فاکتور فرم دستگاه بستگی دارد.

لیست برچسب های متن آزاد

اندازه متن توصیه شده: کمتر از 20 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

ShoppingReorderCluster

صفت مورد نیاز شرح قالب
اکشن اوری ضروری

پیوند عمیق برای سفارش مجدد در برنامه شریک.

توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید

اوری
متن اقدام اختیاری

متن فراخوانی دکمه روی ترتیب مجدد (به عنوان مثال، دوباره سفارش دهید ).

اگر هیچ متن اقدامی توسط توسعه‌دهنده ارائه نشد، Reorder پیش‌فرض است.

این ویژگی در نسخه 1.1.0 به بعد پشتیبانی می شود.

رشته
تعداد اقلام ضروری

تعداد اقلام (نه فقط تعداد محصولات) در سفارش قبلی.

به عنوان مثال: اگر به ترتیب قبلی 3 قهوه کوچک و 1 کروسان وجود داشت، این عدد باید 4 باشد.

عدد صحیح >= 1
عنوان ضروری عنوان مورد سفارش مجدد.

متن آزاد

اندازه متن توصیه شده: کمتر از 40 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

برچسب های اقلام

اختیاری

(در صورت عدم ارائه، تصاویر پوستر ارائه شود)

لیست برچسب های اقلام برای سفارش قبلی.

حداکثر 10 برچسب می تواند به ترتیب اولویت ارائه شود. تعداد واقعی برچسب های نمایش داده شده به فاکتور فرم دستگاه بستگی دارد.

لیست متن آزاد

اندازه متن توصیه شده برای هر برچسب: کمتر از 20 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

تصاویر پوستر

اختیاری

(در صورت عدم ارائه، برچسب های کالا باید ارائه شود)

تصاویری از اقلام به ترتیب قبلی.

حداکثر 10 تصویر به ترتیب اولویت ارائه می شود. تعداد واقعی تصاویر نمایش داده شده به فاکتور فرم دستگاه بستگی دارد.

برای راهنمایی به مشخصات تصویر مراجعه کنید.

ShoppingOrderTrackingCluster

صفت مورد نیاز شرح قالب
عنوان ضروری

عنوان کوتاهی از بسته/اقلام در حال پیگیری یا شماره رهگیری.

متن آزاد

اندازه متن توصیه شده: 50 کاراکتر (متنی که خیلی طولانی باشد بیضی ها را نشان می دهد)

نوع سفارش ضروری

عنوان کوتاهی از بسته/اقلام در حال پیگیری یا شماره رهگیری.

تعداد: IN_STORE_PICKUP، SAME_DAY_DELIVERY، MULTI_DAY_DELIVERY

وضعیت ضروری

وضعیت فعلی سفارش

به عنوان مثال: "تأخیر اجرا می شود"، "در حال حمل و نقل"، "تاخیر"، "ارسال شده"، "تحویل شده"، "تمام موجودی"، "سفارش آماده است"

متن آزاد

اندازه متن توصیه شده: 25 کاراکتر (متنی که خیلی طولانی باشد بیضی ها را نشان می دهد)

زمان سفارش ضروری

مهر زمانی دوره بر حسب میلی ثانیه که در آن سفارش ثبت شد.

اگر پنجره زمان تحویل مورد انتظار وجود نداشته باشد، زمان سفارش نمایش داده می شود

مهر زمانی دوره در میلی ثانیه
اکشن اوری ضروری

پیوند عمیق به ردیابی سفارش در برنامه شریک.

اوری
OrderDeliveryTimeWindow (اختیاری) - یک پنجره زمانی برای سفارشی که از زمان ثبت سفارش تا زمان تحویل مورد انتظار/واقعی پیگیری می شود، تنظیم کنید.
OrderDeliveryTimeWindow - زمان شروع اختیاری

مهر زمانی دوره در میلی ثانیه در/پس از آن سفارش تحویل داده می شود یا برای تحویل آماده می شود.

مهر زمانی دوره در میلی ثانیه
OrderDeliveryTimeWindow - زمان پایان اختیاری

مهر زمانی دوره در میلی ثانیه در/قبل از آن سفارش تحویل داده می شود یا برای تحویل آماده می شود.

مهر زمانی دوره در میلی ثانیه
تصاویر پوستر اختیاری

تصویر یک کالا/محصول که بخشی از سفارش است.

نسبت تصویر پیشنهادی 1:1 است

برای راهنمایی به مشخصات تصویر مراجعه کنید.
تعداد اقلام اختیاری تعداد اقلام در سفارش عدد صحیح >= 1
شرح اختیاری

یک پاراگراف متن برای توصیف موارد به ترتیب.

توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو.

متن آزاد

اندازه متن پیشنهادی: 180 کاراکتر

لیست زیرنویس اختیاری

حداکثر 3 زیرنویس، با هر زیرنویس یک خط متن.

توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو.

متن آزاد

اندازه متن توصیه شده برای هر زیرنویس: حداکثر 50 کاراکتر

ارزش سفارش - CurrentPrice اختیاری ارزش فعلی سفارش متن آزاد
شماره سفارش اختیاری شماره سفارش / شناسه ای که می تواند برای شناسایی منحصر به فرد سفارش استفاده شود.

متن آزاد

اندازه متن پیشنهادی: حداکثر 25 کاراکتر

شماره پیگیری اختیاری شماره پیگیری برای سفارش/تحویل بسته در صورتی که سفارش نیاز به تحویل داشته باشد.

متن آزاد

اندازه متن پیشنهادی: حداکثر 25 کاراکتر

مشخصات تصویر

مشخصات مورد نیاز برای دارایی های تصویر در زیر ذکر شده است:

نسبت ابعاد حداقل پیکسل پیکسل های توصیه شده

مربع (1x1)

برای خوشه های غیر مشخص ترجیح داده می شود

300x300 1200x1200

منظره (1.91x1)

برای خوشه های برجسته ترجیح داده می شود

600x314 1200x628
پرتره (4x5) 480x600 960x1200

فرمت های فایل

PNG، JPG، GIF استاتیک، WebP

حداکثر اندازه فایل

5120 کیلوبایت

توصیه های اضافی

  • ناحیه امن تصویر: محتوای مهم خود را 80 درصد در مرکز تصویر قرار دهید.
  • از پس زمینه شفاف استفاده کنید تا تصویر به درستی در تنظیمات تم تیره و روشن نمایش داده شود.

مرحله 2: داده های Cluster را ارائه دهید

توصیه می‌شود کار انتشار محتوا در پس‌زمینه اجرا شود (مثلاً با استفاده از WorkManager ) و به طور منظم یا بر اساس رویداد برنامه‌ریزی شود (به عنوان مثال، هر بار که کاربر برنامه را باز می‌کند یا زمانی که کاربر به تازگی چیزی به آن اضافه کرده است. سبد خرید آنها).

AppEngageShoppingClient مسئول انتشار خوشه های خرید است.

API های زیر در معرض خوشه های انتشار در مشتری قرار می گیرند:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishShoppingCart
  • publishShoppingList
  • publishShoppingReorderCluster
  • publishShoppingOrderTrackingCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteShoppingCartCluster
  • deleteShoppingListCluster
  • deleteShoppingReorderCluster
  • deleteShoppingOrderTrackingCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

این API برای بررسی اینکه آیا سرویس برای یکپارچه سازی در دسترس است و اینکه آیا محتوا می تواند در دستگاه ارائه شود یا خیر استفاده می شود.

کاتلین


client.isServiceAvailable.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // Handle IPC call success
        if(task.result) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
}

جاوا


client.isServiceAvailable().addOnCompleteListener(task - > {
    if (task.isSuccessful()) {
        // Handle success
        if(task.getResult()) {
          // Service is available on the device, proceed with content
          // publish calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
});

publishRecommendationClusters

این API برای انتشار لیستی از اشیاء RecommendationCluster استفاده می شود.

یک شی RecommendationCluster می تواند دارای ویژگی های زیر باشد:

صفت مورد نیاز شرح
لیست ShoppingEntity ضروری فهرستی از اشیاء ShoppingEntity که توصیه‌های این کلاستر توصیه را تشکیل می‌دهند.
عنوان ضروری

عنوان برای خوشه توصیه.

اندازه متن توصیه شده: کمتر از 25 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد)

عنوان فرعی اختیاری زیرنویس خوشه توصیه.
اکشن اوری اختیاری

پیوند عمیق به صفحه در برنامه شریک که در آن کاربران می‌توانند فهرست کامل توصیه‌ها را ببینند.

توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید

کاتلین


client.publishRecommendationClusters(
            PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Black Friday Deals")
                        .build())
                .build())

جاوا


client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Black Friday Deals")
                        .build())
                .build());

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • تمام داده های موجود در خوشه توصیه حذف شده است.
  • داده‌های درخواست در خوشه‌های پیشنهادی جدید تجزیه و ذخیره می‌شوند.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

publishFeaturedCluster

این API برای انتشار یک شی FeaturedCluster استفاده می شود.

کاتلین


client.publishFeaturedCluster(
            PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    FeaturedCluster.Builder()
                        ...
                        .build())
                .build())

جاوا


client.publishFeaturedCluster(
            new PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    new FeaturedCluster.Builder()
                        ...
                        .build())
                .build());

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • داده های FeaturedCluster موجود از شریک توسعه حذف شده است.
  • داده های درخواست تجزیه و تحلیل می شود و در خوشه ویژه به روز شده ذخیره می شود.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

publishShoppingCart

این API برای انتشار یک شی ShoppingCartCluster استفاده می شود.

کاتلین


client.publishShoppingCart(
            PublishShoppingCartRequest.Builder()
                .setShoppingCart(
                    ShoppingCart.Builder()
                        ...
                        .build())
                .build())

جاوا


client.publishShoppingCart(
            new PublishShoppingCartRequest.Builder()
                .setShoppingCart(
                    new ShoppingCart.Builder()
                        ...
                        .build())
                .build())

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • داده‌های ShoppingCart موجود از شریک توسعه‌دهنده حذف شده است.
  • داده های درخواست تجزیه و تحلیل می شود و در خوشه سبد خرید به روز شده ذخیره می شود.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

publishShoppingList

این API برای انتشار یک شی FoodShoppingList استفاده می شود.

کاتلین


client.publishFoodShoppingList(
            PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build())

جاوا


client.publishFoodShoppingList(
            new PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    new FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build());

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • داده های FoodShoppingList موجود از شریک سازنده حذف شده است.
  • داده های درخواست تجزیه و تحلیل می شود و در خوشه لیست خرید به روز شده ذخیره می شود.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

publishShoppingReorderCluster

این API برای انتشار یک شی ShoppingReorderCluster استفاده می شود.

کاتلین


client.publishShoppingReorderCluster(
            PublishShoppingReorderClusterRequest.Builder()
                .setReorderCluster(
                    ShoppingReorderCluster.Builder()
                        ...
                        .build())
                .build())

جاوا


client.publishShoppingReorderCluster(
            new PublishShoppingReorderClusterRequest.Builder()
                .setReorderCluster(
                    new ShoppingReorderCluster.Builder()
                        ...
                        .build())
                .build());

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • داده های موجود ShoppingReorderCluster از شریک توسعه دهنده حذف شده است.
  • داده‌های درخواست تجزیه و تحلیل می‌شوند و در خوشه ترتیب مجدد به‌روز شده ذخیره می‌شوند.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

publishShoppingOrderTrackingCluster

این API برای انتشار یک شی ShoppingOrderTrackingCluster استفاده می شود.

کاتلین


client.publishShoppingOrderTrackingCluster(
            PublishShoppingOrderTrackingClusterRequest.Builder()
                .setShoppingOrderTrackingCluster(
                    ShoppingOrderTrackingCluster.Builder()
                        ...
                        .build())
                .build())

جاوا


client.publishShoppingOrderTrackingCluster(
            new PublishShoppingOrderTrackingClusterRequest.Builder()
                .setShoppingOrderTrackingCluster(
                    new ShoppingOrderTrackingCluster.Builder()
                        ...
                        .build())
                .build());

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • داده های موجود ShoppingOrderTrackingCluster از شریک توسعه دهنده حذف شده است.
  • داده‌های درخواست در خوشه پیگیری سفارش خرید به‌روز شده تجزیه و ذخیره می‌شوند.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

publishUserAccountManagementRequest

این API برای انتشار کارت ورود به سیستم استفاده می شود. عمل ورود به سیستم، کاربران را به صفحه ورود به برنامه هدایت می‌کند تا برنامه بتواند محتوا را منتشر کند (یا محتوای شخصی‌سازی‌شده‌تری ارائه کند)

فراداده زیر بخشی از کارت ورود به سیستم است -

صفت مورد نیاز شرح
اکشن اوری ضروری پیوند عمیق به Action (یعنی به صفحه ورود به برنامه پیمایش می‌کند)
تصویر اختیاری - در صورت عدم ارائه، عنوان باید ارائه شود

تصویر روی کارت نشان داده شده است

تصاویر با نسبت ابعاد 16x9 با وضوح 1264x712

عنوان اختیاری - اگر ارائه نشد، تصویر باید ارائه شود عنوان روی کارت
متن اقدام اختیاری متن نمایش داده شده در CTA (یعنی ورود به سیستم)
عنوان فرعی اختیاری زیرنویس اختیاری روی کارت

کاتلین


var SIGN_IN_CARD_ENTITY =
      SignInCardEntity.Builder()
          .addPosterImage(
              Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build()

client.publishUserAccountManagementRequest(
            PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

جاوا


SignInCardEntity SIGN_IN_CARD_ENTITY =
      new SignInCardEntity.Builder()
          .addPosterImage(
              new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build();

client.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:

  • داده های موجود UserAccountManagementCluster از شریک توسعه دهنده حذف شده است.
  • داده های درخواست در خوشه UserAccountManagementCluster به روز شده تجزیه و ذخیره می شود.

در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

updatePublishStatus

اگر به دلایل تجاری داخلی، هیچ یک از خوشه‌ها منتشر نشد، اکیداً توصیه می‌کنیم وضعیت انتشار را با استفاده از updatePublishStatus API به‌روزرسانی کنید. این مهم است زیرا:

  • ارائه وضعیت در همه سناریوها، حتی زمانی که محتوا منتشر می شود (وضعیت == منتشر شده)، برای پر کردن داشبوردهایی که از این وضعیت صریح برای انتقال سلامت و سایر معیارهای ادغام شما استفاده می کنند، بسیار مهم است.
  • اگر محتوایی منتشر نشود اما وضعیت ادغام خراب نباشد (STATUS == NOT_PUBLISHED)، Google می‌تواند از ایجاد هشدار در داشبوردهای سلامت برنامه جلوگیری کند. تأیید می کند که محتوا به دلیل یک وضعیت مورد انتظار از دیدگاه ارائه دهنده منتشر نمی شود.
  • این به توسعه‌دهندگان کمک می‌کند تا بینش‌هایی درباره زمانی که داده‌ها منتشر می‌شوند در مقابل عدم انتشار اطلاعات ارائه کنند.
  • ممکن است Google از کدهای وضعیت استفاده کند تا کاربر را وادار کند تا اقدامات خاصی را در برنامه انجام دهد تا بتواند محتوای برنامه را ببیند یا بر آن غلبه کند.

لیست کدهای وضعیت انتشار واجد شرایط عبارتند از:

// Content is published
AppEngagePublishStatusCode.PUBLISHED,

// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,

// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,

// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,

// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,

// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,

// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,

// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,

// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER

اگر محتوا به دلیل وارد نشدن کاربر منتشر نشود، Google انتشار کارت ورود به سیستم را توصیه می کند. اگر به هر دلیلی ارائه دهندگان قادر به انتشار کارت ورود به سیستم نیستند، توصیه می کنیم با کد وضعیت NOT_PUBLISHED_REQUIRES_SIGN_IN با updatePublishStatus API تماس بگیرید.

کاتلین


client.updatePublishStatus(
   PublishStatusRequest.Builder()
     .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
     .build())

جاوا


client.updatePublishStatus(
    new PublishStatusRequest.Builder()
        .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
        .build());

deleteRecommendationClusters

این API برای حذف محتوای خوشه های توصیه استفاده می شود.

کاتلین


client.deleteRecommendationClusters()

جاوا


client.deleteRecommendationClusters();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه های توصیه حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteFeaturedCluster

این API برای حذف محتوای Featured Cluster استفاده می شود.

کاتلین


client.deleteFeaturedCluster()

جاوا


client.deleteFeaturedCluster();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه ویژه حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteShoppingCartCluster

این API برای حذف محتوای خوشه سبد خرید استفاده می شود.

کاتلین


client.deleteShoppingCartCluster()

جاوا


client.deleteShoppingCartCluster();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه سبد خرید حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteShoppingListCluster

این API برای حذف محتوای خوشه لیست خرید استفاده می شود.

کاتلین


client.deleteShoppingListCluster()

جاوا


client.deleteShoppingListCluster();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه لیست خرید حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteShoppingReorderCluster

این API برای حذف محتوای Shopping Reorder Cluster استفاده می شود.

کاتلین


client.deleteShoppingReorderCluster()

جاوا


client.deleteShoppingReorderCluster();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه سفارش مجدد خرید حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteShoppingOrderTrackingCluster

این API برای حذف محتوای خوشه ردیابی سفارش خرید استفاده می شود.

کاتلین


client.deleteShoppingOrderTrackingCluster()

جاوا


client.deleteShoppingOrderTrackingCluster();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه پیگیری سفارش خرید حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteUserManagementCluster

این API برای حذف محتوای UserAccountManagement Cluster استفاده می شود.

کاتلین


client.deleteUserManagementCluster()

جاوا


client.deleteUserManagementCluster();

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از UserAccountManagement Cluster حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

deleteClusters

این API برای حذف محتوای یک نوع خوشه مشخص استفاده می شود.

کاتلین


client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      ...
      .build())

جاوا


client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                ...
                .build());

هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از همه خوشه های مطابق با انواع خوشه های مشخص شده حذف می کند. مشتریان می توانند انتخاب کنند که یک یا چند نوع خوشه را پاس کنند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.

رسیدگی به خطا

به شدت توصیه می شود که به نتیجه کار از API های منتشر شده گوش دهید تا بتوان یک اقدام بعدی را برای بازیابی و ارسال مجدد یک کار موفق انجام داد.

کاتلین


client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

جاوا


client.publishRecommendationClusters(
              new PublishRecommendationClustersRequest.Builder()
                  .addRecommendationCluster(...)
                  .build())
          .addOnCompleteListener(
              task -> {
                if (task.isSuccessful()) {
                  // do something
                } else {
                  Exception exception = task.getException();
                  if (exception instanceof AppEngageException) {
                    @AppEngageErrorCode
                    int errorCode = ((AppEngageException) exception).getErrorCode();
                    if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
                      // do something
                    }
                  }
                }
              });

خطا به عنوان AppEngageException با علت به عنوان کد خطا برگردانده می شود.

کد خطا توجه داشته باشید
SERVICE_NOT_FOUND این سرویس در دستگاه داده شده در دسترس نیست.
SERVICE_NOT_AVAILABLE این سرویس در دستگاه داده شده در دسترس است، اما در زمان تماس در دسترس نیست (مثلاً صراحتاً غیرفعال است).
SERVICE_CALL_EXECUTION_FAILURE اجرای کار به دلیل مشکلات رشته ای انجام نشد. در این صورت می توان آن را دوباره امتحان کرد.
SERVICE_CALL_PERMISSION_DENIED تماس گیرنده مجاز به برقراری تماس سرویس نیست.
SERVICE_CALL_INVALID_ARGUMENT درخواست حاوی داده های نامعتبر است (به عنوان مثال، بیش از تعداد مجاز خوشه ها).
SERVICE_CALL_INTERNAL خطایی در سمت سرویس وجود دارد.
SERVICE_CALL_RESOURCE_EXHAUSTED تماس سرویس خیلی مکرر برقرار می شود.

مرحله 3: اهداف پخش را مدیریت کنید

علاوه بر برقراری تماس‌های API محتوای انتشار از طریق یک کار، برای دریافت درخواست انتشار محتوا نیز باید یک BroadcastReceiver راه‌اندازی کرد.

هدف از اهداف پخش عمدتاً فعال سازی مجدد برنامه و همگام سازی اجباری داده ها است. اهداف پخش برای ارسال خیلی مکرر طراحی نشده اند. تنها زمانی فعال می‌شود که سرویس Engage تشخیص دهد که ممکن است محتوا قدیمی باشد (مثلاً یک هفته‌ای است). به این ترتیب، اطمینان بیشتری وجود دارد که کاربر می تواند یک تجربه محتوای تازه داشته باشد، حتی اگر برنامه برای مدت طولانی اجرا نشده باشد.

BroadcastReceiver باید به دو روش زیر راه اندازی شود:

  • به صورت پویا یک نمونه از کلاس BroadcastReceiver را با استفاده از Context.registerReceiver() ثبت کنید. این امکان برقراری ارتباط از برنامه هایی را که هنوز در حافظه هستند را امکان پذیر می کند.

کاتلین

class AppEngageBroadcastReceiver : BroadcastReceiver(){
  // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION
  // broadcast is received
  // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is
  // received
  // Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast
  // is received
  // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast
  // is received
  // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
  // received
  // Trigger shopping order tracking cluster publish when
  // PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER broadcast is received
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION))

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED))

// Register Shopping Cart Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART))

// Register Shopping List Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST))

// Register Reorder Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER))

// Register Shopping Order Tracking Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER))
}

جاوا

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received

// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received

// Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast is
// received

// Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast is
// received

// Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
// received

// Trigger reorder cluster publish when PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER
// broadcast is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));

// Register Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART));

// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST));

// Register Reorder Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER));

// Register Shopping Order Tracking Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER));

}
  • به صورت ایستا یک پیاده سازی را با تگ <receiver> در فایل AndroidManifest.xml خود اعلام کنید. این اجازه می دهد تا برنامه زمانی که در حال اجرا نیست، اهداف پخش را دریافت کند و همچنین به برنامه اجازه می دهد محتوا را منتشر کند.
<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:exported="true"
      android:enabled="true">
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER" />
      </intent-filter>
   </receiver>
</application>

اهداف زیر توسط سرویس ارسال می شود:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION توصیه می شود هنگامی که این هدف دریافت شد، یک تماس publishRecommendationClusters شروع شود.
  • com.google.android.engage.action.PUBLISH_FEATURED توصیه می شود هنگامی که این هدف دریافت شد، یک تماس publishFeaturedCluster شروع شود.
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART توصیه می شود هنگامی که این هدف دریافت شد، تماس publishShoppingCart را شروع کنید.
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST توصیه می شود هنگامی که این هدف دریافت شد، یک تماس publishShoppingList شروع کنید.
  • com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER توصیه می شود هنگامی که این هدف دریافت شد، یک تماس publishReorderCluster شروع شود.
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER توصیه می شود هنگامی که این هدف دریافت شد، یک تماس publishShoppingOrderTrackingCluster شروع کنید.

گردش کار یکپارچه سازی

برای راهنمایی گام به گام در مورد تأیید ادغام خود پس از تکمیل، به گردش کار ادغام برنامه‌نویس Engage مراجعه کنید.

سوالات متداول

برای پرسش‌های متداول به پرسش‌های متداول SDK مراجعه کنید.

مخاطب

در صورت وجود هرگونه سوال در طول فرآیند ادغام، با engage-developers@google.com تماس بگیرید. تیم ما در اسرع وقت پاسخ می دهد.

مراحل بعدی

پس از تکمیل این ادغام، مراحل بعدی شما به شرح زیر است:

  • یک ایمیل به engage-developers@google.com ارسال کنید و APK یکپارچه خود را که برای آزمایش توسط Google آماده است، پیوست کنید.
  • Google یک راستی‌آزمایی را انجام می‌دهد و به صورت داخلی بررسی می‌کند تا مطمئن شود ادغام مطابق انتظار عمل می‌کند. در صورت نیاز به تغییرات، Google با هر گونه جزئیات لازم با شما تماس می گیرد.
  • وقتی آزمایش کامل شد و نیازی به تغییر نیست، Google با شما تماس می گیرد تا به شما اطلاع دهد که می توانید شروع به انتشار APK به روز شده و یکپارچه در فروشگاه Play کنید.
  • پس از اینکه Google تأیید کرد که APK به‌روزرسانی‌شده شما در فروشگاه Play منتشر شده است، توصیه‌ها ، ویژگی‌ها ، سبد خرید ، فهرست خرید ، خوشه‌های سفارش مجدد و خوشه‌های پیگیری سفارش خرید ممکن است منتشر شده و برای کاربران قابل مشاهده باشند.