با دسترسی به کاربران خود در هر کجا که هستند، تعامل با برنامه را افزایش دهید. Engage SDK را ادغام کنید تا توصیههای شخصیسازیشده و محتوای مداوم را مستقیماً به کاربران در سطوح مختلف روی دستگاه، مانند Collections ، Entertainment Space و Play Store ارائه دهید. این ادغام کمتر از ۵۰ کیلوبایت (فشردهشده) به میانگین APK اضافه میکند و برای اکثر برنامهها حدود یک هفته از زمان توسعهدهنده را میگیرد. برای اطلاعات بیشتر به سایت تجاری ما مراجعه کنید.
این سند شامل دستورالعملهایی برای شرکای توسعهدهنده است تا محتوای جدیدی مانند رزرو، رویدادها، اقامتگاهها، مکانهای دیدنی، افراد و سایر محتوایی که ممکن است به هیچ یک از این دستهها تعلق نداشته باشند را ادغام کنند.
جزئیات ادغام
اصطلاحات
این ادغام شامل سه نوع خوشه زیر است: توصیه ، ویژه و ادامه .
خوشههای توصیه، پیشنهادهای شخصیسازیشده از یک شریک توسعهدهنده را نشان میدهند. این یک نمای رابط کاربری است که شامل گروهی از توصیهها از همان شریک توسعهدهنده است.
ArticleEntity : ArticleEntity که یک پیشنهاد مبتنی بر متن برای محتوایی ارائه میدهد که به بیش از یک دسته از محتوا مربوط میشود. آیتم ArticleEntity به توسعهدهندگان این امکان را میدهد که در مقایسه با GenericFeaturedEntity، انواع محتوای متنی و تصویری را با فرادادههای بیشتر برای بیان اطلاعات به کاربران ارائه دهند. مثال: محتوای بازاریابی، قطعه اخبار

شکل ۱: رابط کاربری که یک ArticleEntity واحد را در خوشه توصیهها نشان میدهد. EventEntity : EventEntity نشان دهنده رویدادی است که در آینده اتفاق میافتد. زمان شروع رویداد، بخش مهمی از اطلاعات است که باید به کاربران منتقل شود.

شکل ۲: رابط کاربری که یک EventEntity واحد را در خوشه توصیهها نشان میدهد. LodgingEntity : LodgingEntity نشان دهنده یک اقامتگاه، مانند هتل، آپارتمان، خانه تعطیلات برای اجاره کوتاه مدت و بلند مدت است.

شکل ۳: رابط کاربری که یک LodgingEntity واحد را در خوشه توصیهها نشان میدهد. StoreEntity : StoreEntity نشاندهنده یک فروشگاه، رستوران، کافه و غیره است. این عنصر، محتوایی را برجسته میکند که در آن یک محل غذاخوری یا فروشگاه، بخش مهمی از اطلاعات است که باید به کاربران منتقل شود.

شکل ۴: رابط کاربری که یک StoreEntity واحد را در خوشه توصیهها نشان میدهد. PointOfInterestEntity : PointOfInterestEntity نشاندهنده یک مکان مورد علاقه مانند پمپ بنزین، محل برگزاری رویداد، پارک تفریحی، موزه، جاذبه گردشگری، مسیر پیادهروی و غیره است. این مکان، محتوایی را برجسته میکند که در آن مکان، اطلاعات مهمی است که باید به کاربران منتقل شود. نباید از آن برای اقامت، فروشگاه یا محل غذاخوری استفاده شود.

شکل ۵: رابط کاربری که یک PointOfInterestEntity واحد را در خوشه توصیهها نشان میدهد. PersonEntity : PersonEntity نمایانگر یک شخص است. توصیهها میتواند برجسته کردن یک شخص در دستهبندیهایی مانند سلامت و تناسب اندام، ورزش، قرار ملاقات و غیره باشد.

شکل ۵: رابط کاربری که یک PersonEntity واحد را در خوشه توصیهها نشان میدهد.
خوشه Continuation محتوایی را نشان میدهد که اخیراً توسط کاربران چندین شریک توسعهدهنده در یک گروهبندی رابط کاربری واحد مورد استفاده قرار گرفته است. هر شریک توسعهدهنده مجاز به پخش حداکثر ۱۰ موجودیت در خوشه Continuation خواهد بود.
محتوای ادامه شما میتواند ساختار زیر را داشته باشد:
موجودیت مقاله : موجودیت مقالهای که یک پیشنهاد متنی برای محتوایی مرتبط با بیش از یک دسته محتوا ارائه میدهد. این موجودیت میتواند برای نمایش مقالات خبری ناتمام یا سایر محتوایی که کاربر مایل است از جایی که آن را رها کرده است، به خواندن آن ادامه دهد، استفاده شود. مثال: محتوای بازاریابی، قطعه خبر

شکل ۶. رابط کاربری که یک ArticleEntity واحد را در یک خوشه Continuation نشان میدهد. RestaurantReservationEntity : RestaurantReservationEntity نشاندهنده رزرو برای یک رستوران یا کافه است و به کاربران کمک میکند تا رزروهای آینده یا جاری رستوران را پیگیری کنند.

شکل ۷. رابط کاربری که یک RestaurantReservationEntity واحد را در یک خوشه Continuation نشان میدهد. EventReservationEntity : EventReservationEntity نشاندهنده رزرو برای یک رویداد است و به کاربران کمک میکند تا رزرو رویدادهای آینده یا در حال انجام را پیگیری کنند. رویدادها میتوانند شامل موارد زیر باشند، اما محدود به آنها نیستند:
- رویدادهای ورزشی مانند رزرو مسابقه فوتبال
- رویدادهای بازی مانند رزرو برای eSports
- رویدادهای سرگرمی مانند رزرو فیلم در سینما، کنسرت، تئاتر، امضای کتاب
- رزرو سفر یا مکانهای مورد علاقه مانند تورهای گردشگری، بلیط موزه
- رزروهای اجتماعی / سمینار / کنفرانس
- رزرو جلسات آموزشی/تربیتی

شکل ۸. رابط کاربری که یک EventReservationEntity واحد را درون یک کلاستر Continuation نشان میدهد. LodgingReservationEntity : LodgingEntityReservation نشاندهنده رزرو یک اقامتگاه مسافرتی است و به کاربران کمک میکند تا رزروهای آتی یا جاری هتل یا اجاره اقامتگاه برای تعطیلات را پیگیری کنند.

شکل ۹. رابط کاربری که یک LodgingReservationEntity واحد را در یک خوشه Continuation نشان میدهد. TransportationReservationEntity : TransportationReservationEntity نشاندهنده رزرو برای حمل و نقل با هر وسیلهای است و به کاربران کمک میکند تا رزروهای مربوط به پرواز، کشتی، قطار، اتوبوس، تاکسی اینترنتی یا سفر دریایی آینده یا در حال انجام را پیگیری کنند.

شکل ۱۰. رابط کاربری که یک TransportationReservationEntity واحد را درون یک خوشه Continuation نشان میدهد. VehicleRentalReservationEntity : VehicleRentalReservationEntity نشاندهنده رزرو اجاره خودرو است و به کاربران کمک میکند تا رزروهای اجاره خودرو در آینده یا در حال انجام را پیگیری کنند.

شکل ۱۱. رابط کاربری که یک VehicleRentalReservationEntity واحد را در یک خوشه Continuation نشان میدهد.
خوشه ویژه (Featured cluster) یک نمای رابط کاربری است که
GenericFeaturedEntityقهرمان انتخاب شده را از بین بسیاری از شرکای توسعهدهنده در یک گروهبندی رابط کاربری نمایش میدهد. یک خوشه ویژه (Featured cluster) وجود دارد که در نزدیکی بالای رابط کاربری ظاهر میشود و اولویت آن بالاتر از همه خوشههای توصیه (Recommendation clusters) است. هر شریک توسعهدهنده مجاز است یک موجودیت واحد از یک نوع پشتیبانی شده را در ویژه (Featured) پخش کند، و بسیاری از موجودیتها (به طور بالقوه از انواع مختلف) از چندین توسعهدهنده برنامه در خوشه ویژه (Featured cluster) قرار دارند.موجودیت ویژه عمومی (GenericFeaturedEntity) : موجودیت ویژه عمومی با آیتم توصیه (Recommendation item) متفاوت است، زیرا آیتم ویژه باید برای یک محتوای برتر از توسعهدهندگان استفاده شود و باید مهمترین محتوایی را که برای کاربران جالب و مرتبط خواهد بود، نشان دهد.

شکل ۱۲: رابط کاربری که یک کارت GenericFeaturedEntity قهرمان واحد را در یک خوشه ویژه نشان میدهد
پیش کار
حداقل سطح API: ۱۹
کتابخانه 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.12'
}
خلاصه
طراحی بر اساس پیادهسازی یک سرویس محدود (bound service) است.
دادههایی که یک کلاینت میتواند منتشر کند، برای انواع مختلف خوشهها مشمول محدودیتهای زیر است:
| نوع خوشه | محدودیتهای خوشه | حداقل محدودیت موجودیت در یک خوشه | حداکثر محدودیتهای موجودیت در یک خوشه |
|---|---|---|---|
| خوشه(های) پیشنهادی | حداکثر ۷ عدد | حداقل ۱ | حداکثر ۵۰ ( ArticleEntity ، EventEntity ، LodgingEntity ، StoreEntity ، PointOfInterestEntity یا PersonEntity ) |
| خوشه ادامه | حداکثر ۱ | حداقل ۱ | حداکثر ۲۰ ( ArticleEntity ، EventReservationEntity ، LodgingReservationEntity ، TransportationReservationEntity ، یا VehicleRentalReservationEntity ) |
| خوشه ویژه | حداکثر ۱ | حداقل ۱ | حداکثر 20 ( GenericFeaturedEntity ) |
مرحله ۱: ارائه دادههای موجودیت
SDK برای نمایش هر نوع آیتم، موجودیتهای مختلفی تعریف کرده است. ما از موجودیتهای زیر برای دستهی other پشتیبانی میکنیم:
-
GenericFeaturedEntity -
ArticleEntity -
EventEntity -
LodgingEntity -
StoreEntity -
PointOfInterestEntity -
PersonEntity -
RestaurantReservationEntity -
EventReservationEntity -
LodgingReservationEntity -
TransportationReservationEntity -
VehicleRentalReservationEntity
نمودارهای زیر ویژگیها و الزامات موجود برای هر نوع را شرح میدهند.
GenericFeaturedEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| تصاویر پوستر | مورد نیاز | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. توجه: اگر نشان ارائه میشود، فضای امن ۲۴ dps را در بالا و پایین تصویر تضمین کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| عنوان | اختیاری | عنوان نهاد. | متن رایگان اندازه متن پیشنهادی: ۵۰ کاراکتر |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| نشانها | اختیاری | هر نشان یا متن آزاد (حداکثر ۱۵ کاراکتر) یا تصویر کوچک است. جلوههای ویژه UX روی تصویر/ویدئو، مثلاً به عنوان پوشش نشان روی تصویر
| |
| نشان - متن | اختیاری | عنوان برای نشان توجه: برای نشان، متن یا تصویر الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| نشان - تصویر | اختیاری | تصویر کوچک جلوههای ویژه تجربه کاربری، برای مثال به صورت پوشش نشان روی تصویر کوچک تصویر/ویدئو. توجه: برای نشان، متن یا تصویر الزامی است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| دسته بندی محتوا | اختیاری | دسته بندی محتوای موجود در موجودیت را شرح دهید. | فهرست Enumها برای راهنمایی به بخش دستهبندی محتوا مراجعه کنید. |
ArticleEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | مورد نیاز | عنوان نهاد. | متن رایگان اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| تصاویر پوستر | اختیاری | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. توجه: تصویر اکیداً توصیه میشود. در صورت ارائه نشان، فضای امن ۲۴ dps را در بالا و پایین تصویر تضمین کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| منبع - عنوان | اختیاری | نام نویسنده، سازمان یا گزارشگر | متن رایگان اندازه متن پیشنهادی: کمتر از ۲۵ کاراکتر |
| منبع - تصویر | اختیاری | تصویری از منبع مانند نویسنده، سازمان، خبرنگار | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| نشانها | اختیاری | هر نشان یا متن آزاد (حداکثر ۱۵ کاراکتر) یا تصویر کوچک است. جلوههای ویژه UX روی تصویر/ویدئو، برای مثال به عنوان پوشش نشان روی تصویر
| |
| نشان - متن | اختیاری | عنوان برای نشان توجه: برای نشان، متن یا تصویر الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| نشان - تصویر | اختیاری | تصویر کوچک جلوههای ویژه تجربه کاربری، برای مثال به صورت پوشش نشان روی تصویر کوچک تصویر/ویدئو. توجه: برای نشان، متن یا تصویر الزامی است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| زمان انتشار محتوا | اختیاری | این نشانگر زمانیِ epoch بر حسب میلیثانیه است که نشان میدهد محتوا در چه زمانی در برنامه منتشر/بهروزرسانی شده است. | مهر زمانی عصر بر حسب میلی ثانیه |
| آخرین زمان نامزدی | مشروط الزامی | مهر زمانیِ آخرین تعامل کاربر با این موجودیت بر حسب میلیثانیه. توجه: اگر این موجودیت بخشی از خوشه تداوم باشد، این فیلد الزامی است. | مهر زمانی عصر بر حسب میلی ثانیه |
| درصد پیشرفت | مشروط الزامی | درصد کل محتوای مصرفشده توسط کاربر تا به امروز. توجه: اگر این موجودیت بخشی از خوشه تداوم باشد، این فیلد الزامی است. | یک مقدار صحیح بین ۰ تا ۱۰۰. |
| دسته بندی محتوا | اختیاری | دسته بندی محتوای موجود در موجودیت را شرح دهید. | فهرست Enumها برای راهنمایی به بخش دستهبندی محتوا مراجعه کنید. |
EventEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| زمان شروع | مورد نیاز | مهر زمانیِ دورهای که انتظار میرود رویداد در آن شروع شود. نکته: این مقدار بر حسب میلیثانیه نمایش داده میشود. | مهر زمانی عصر بر حسب میلی ثانیه |
| حالت رویداد | مورد نیاز | فیلدی برای مشخص کردن اینکه آیا رویداد مجازی، حضوری یا هر دو خواهد بود. | Enum: مجازی، حضوری یا ترکیبی |
| تصاویر پوستر | مورد نیاز | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. توجه: تصویر اکیداً توصیه میشود. در صورت ارائه نشان، فضای امن ۲۴ dps را در بالا و پایین تصویر تضمین کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| مکان - کشور | مشروط الزامی | کشوری که رویداد در آن اتفاق میافتد. توجه: این مورد برای رویدادهایی که IN_PERSON یا HYBRID هستند، الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - شهر | مشروط الزامی | شهری که رویداد در آن اتفاق میافتد. توجه: این مورد برای رویدادهایی که IN_PERSON یا HYBRID هستند، الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - نمایش آدرس | مشروط الزامی | آدرس یا نام مکانی که رویداد در آن برگزار خواهد شد که باید به کاربر نمایش داده شود. توجه: این مورد برای رویدادهایی که IN_PERSON یا HYBRID هستند، الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) مکانی که رویداد در آن برگزار میشود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - ایالت | اختیاری | ایالت یا استانی (در صورت وجود) که رویداد در آن برگزار میشود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) محل برگزاری رویداد. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| موقعیت مکانی - محله | اختیاری | محله (در صورت وجود) که رویداد در آن برگزار میشود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| زمان پایان | اختیاری | مهر زمانیِ دورهای که انتظار میرود رویداد در آن پایان یابد. نکته: این مقدار بر حسب میلیثانیه نمایش داده میشود. | مهر زمانی عصر بر حسب میلی ثانیه |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| نشانها | اختیاری | هر نشان یا متن آزاد (حداکثر ۱۵ کاراکتر) یا تصویر کوچک است. | |
| نشان - متن | اختیاری | عنوان برای نشان توجه: برای نشان، متن یا تصویر الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| نشان - تصویر | اختیاری | تصویر کوچک جلوههای ویژه تجربه کاربری، برای مثال به صورت پوشش نشان روی تصویر کوچک تصویر/ویدئو. توجه: برای نشان، متن یا تصویر الزامی است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| قیمت - قیمت فعلی | مشروط مورد نیاز | قیمت فعلی بلیط/کارت ورود به رویداد. در صورت ارائه قیمت خط خورده، باید ارائه شود. | متن رایگان |
| قیمت - قیمت ضربدری | اختیاری | قیمت اصلی بلیط/کارت ورود به رویداد. | متن رایگان |
| اطلاع از قیمت | اختیاری | اعلام قیمت برای ارائه تخفیف ویژه، رویداد، و تخفیف برای اعضا، در صورت وجود. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| دسته بندی محتوا | اختیاری | دسته بندی محتوای موجود در موجودیت را شرح دهید. | فهرست Enumهای واجد شرایط
برای راهنمایی به بخش دستهبندی محتوا مراجعه کنید. |
LodgingEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| تصاویر پوستر | مورد نیاز | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. توجه: اگر نشان ارائه میشود، فضای امن ۲۴ dps را در بالا و پایین تصویر تضمین کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| مکان - کشور | مورد نیاز | کشوری که محل اقامت در آن اتفاق میافتد. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - شهر | مورد نیاز | شهری که محل اقامت در آن واقع شده است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - نمایش آدرس | مورد نیاز | آدرس اقامتگاه به کاربر نمایش داده میشود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) محل اقامت. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - ایالت | اختیاری | ایالت یا استانی (در صورت وجود) که محل اقامت در آن واقع شده است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) محل اقامت. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| موقعیت مکانی - محله | اختیاری | محله (در صورت وجود) محل اقامت. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| نشانها | اختیاری | هر نشان یا متن آزاد (حداکثر ۱۵ کاراکتر) یا تصویر کوچک است. | |
| نشان - متن | اختیاری | عنوان برای نشان توجه: برای نشان، متن یا تصویر الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| نشان - تصویر | اختیاری | تصویر کوچک جلوههای ویژه تجربه کاربری، برای مثال به صورت پوشش نشان روی تصویر کوچک تصویر/ویدئو. توجه: برای نشان، متن یا تصویر الزامی است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| پنجره زمان دسترسی - زمان شروع | اختیاری | مهر زمانی دوره زمانی (epoch) بر حسب میلیثانیه که انتظار میرود اقامتگاه باز/در دسترس باشد. | مهر زمانی عصر بر حسب میلی ثانیه |
| پنجره زمان دسترسی - زمان پایان | اختیاری | مهر زمانی دوره زمانی به میلیثانیه که انتظار میرود اقامتگاه تا آن زمان باز/در دسترس باشد. | مهر زمانی عصر بر حسب میلی ثانیه |
| رتبهبندی - حداکثر مقدار | اختیاری | حداکثر مقدار مقیاس رتبهبندی. اگر مقدار فعلی رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - ارزش فعلی | اختیاری | مقدار فعلی مقیاس رتبهبندی. اگر حداکثر مقدار رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - تعداد | اختیاری | تعداد امتیازهای مربوط به اقامتگاه. نکته: اگر برنامه شما نحوه نمایش تعداد به کاربران را کنترل میکند، این فیلد را ارائه دهید. از یک رشته مختصر استفاده کنید. برای مثال، اگر تعداد ۱,۰۰۰,۰۰۰ است، استفاده از مخففی مانند ۱M را در نظر بگیرید تا تعداد در اندازههای کوچکتر صفحه نمایش کوتاه نشود. | رشته |
| رتبهبندی - مقدار شمارش | اختیاری | تعداد امتیازهای مربوط به اقامتگاه. نکته: اگر خودتان منطق نمایش اختصارات را مدیریت نمیکنید، این فیلد را وارد کنید. اگر هم تعداد و هم مقدار تعداد وجود داشته باشند، تعداد به کاربران نمایش داده میشود. | بلند |
| قیمت - قیمت فعلی | مشروط مورد نیاز | قیمت فعلی اقامتگاه. در صورت ارائه قیمت خط خورده، باید ارائه شود. | متن رایگان |
| قیمت - قیمت ضربدری | اختیاری | قیمت اصلی اقامتگاه، که در فاکتور خط خورده است. | متن رایگان |
| اطلاع از قیمت | اختیاری | اعلام قیمت برای ارائه تخفیف ویژه، رویداد، و تخفیف برای اعضا، در صورت وجود. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
StoreEntity
شیء StoreEntity نشان دهنده یک فروشگاه شخصی است که شرکای توسعه دهنده می خواهند آن را منتشر کنند، مانند یک رستوران یا یک فروشگاه مواد غذایی.
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| تصاویر پوستر | مورد نیاز | حداقل یک تصویر باید ارائه شود. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | اختیاری | نام فروشگاه. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| مکان | اختیاری | موقعیت مکانی فروشگاه. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| فراخوان | اختیاری | در صورت امکان، برای تبلیغ، رویداد یا بهروزرسانی فروشگاه، فراخوان دهید. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| چاپ خوب را بنویسید | اختیاری | متن چاپی زیبا برای توضیحات. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| توضیحات | اختیاری | توضیحی در مورد فروشگاه. | متن رایگان اندازه متن پیشنهادی: کمتر از ۹۰ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| رتبهبندی - حداکثر مقدار | اختیاری | حداکثر مقدار مقیاس رتبهبندی. اگر مقدار فعلی رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - ارزش فعلی | اختیاری | مقدار فعلی مقیاس رتبهبندی. اگر حداکثر مقدار رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - تعداد | اختیاری | تعداد امتیازهای مربوط به اقامتگاه. نکته: اگر برنامه شما میخواهد نحوه نمایش این عدد به کاربران را کنترل کند، این فیلد را ارائه دهید. رشته مختصری را که میتواند به کاربر نمایش داده شود، ارائه دهید. برای مثال، اگر تعداد ۱,۰۰۰,۰۰۰ است، استفاده از اختصاراتی مانند ۱M را در نظر بگیرید تا در اندازههای کوچکتر صفحه نمایش کوتاه نشود. | رشته |
| رتبهبندی - مقدار شمارش | اختیاری | تعداد امتیازهای مربوط به اقامتگاه. توجه: اگر نمیخواهید خودتان منطق نمایش اختصارات را مدیریت کنید، این فیلد را وارد کنید. اگر هم تعداد و هم مقدار تعداد وجود داشته باشد، از تعداد برای نمایش به کاربران استفاده خواهیم کرد. | بلند |
PointOfInterestEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| تصاویر پوستر | مورد نیاز | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. توجه: تصویر اکیداً توصیه میشود. در صورت ارائه نشان، فضای امن ۲۴ dps را در بالا و پایین تصویر تضمین کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| مکان - کشور | مورد نیاز | کشوری که نقطه مورد نظر در آن اتفاق میافتد. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - شهر | مورد نیاز | شهری که نقطه مورد نظر در آن اتفاق میافتد. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - نمایش آدرس | مورد نیاز | آدرس نقطه مورد نظر که به کاربر نمایش داده خواهد شد. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) نقطه مورد نظر. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - ایالت | اختیاری | ایالت یا استانی (در صورت وجود) که نقطه مورد نظر در آن واقع شده است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) نقطه مورد نظر. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| موقعیت مکانی - محله | اختیاری | محله (در صورت وجود) نقطه مورد نظر. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| پنجره زمان دسترسی - زمان شروع | اختیاری | مهر زمانی دوره زمانی بر حسب میلیثانیه که انتظار میرود نقطه مورد نظر باز/در دسترس باشد. | مهر زمانی عصر بر حسب میلی ثانیه |
| پنجره زمان دسترسی - زمان پایان | اختیاری | مهر زمانی دوره زمانی بر حسب میلیثانیه که انتظار میرود نقطه مورد نظر تا آن زمان باز/در دسترس باشد. | مهر زمانی عصر بر حسب میلی ثانیه |
| نشانها | اختیاری | هر نشان یا متن آزاد (حداکثر ۱۵ کاراکتر) یا تصویر کوچک است. | |
| نشان - متن | اختیاری | عنوان برای نشان توجه: برای نشان، متن یا تصویر الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| نشان - تصویر | اختیاری | تصویر کوچک جلوههای ویژه تجربه کاربری، برای مثال به صورت پوشش نشان روی تصویر کوچک تصویر/ویدئو. توجه: برای نشان، متن یا تصویر الزامی است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| رتبهبندی - حداکثر مقدار | اختیاری | حداکثر مقدار مقیاس رتبهبندی. اگر مقدار فعلی رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - ارزش فعلی | اختیاری | مقدار فعلی مقیاس رتبهبندی. اگر حداکثر مقدار رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - تعداد | اختیاری | تعداد امتیازهای مربوط به نقطه مورد نظر. نکته: اگر برنامه شما نحوه نمایش تعداد به کاربران را کنترل میکند، این فیلد را ارائه دهید. از یک رشته مختصر استفاده کنید. برای مثال، اگر تعداد ۱,۰۰۰,۰۰۰ است، استفاده از مخففی مانند ۱M را در نظر بگیرید تا تعداد در اندازههای کوچکتر صفحه نمایش کوتاه نشود. | رشته |
| رتبهبندی - مقدار شمارش | اختیاری | تعداد امتیازهای مربوط به نقطه مورد نظر. توجه: اگر خودتان منطق نمایش اختصارات را مدیریت نمیکنید، این فیلد را وارد کنید. اگر هم تعداد و هم مقدار تعداد وجود داشته باشد، تعداد به کاربران نمایش داده میشود. | بلند |
| قیمت - قیمت فعلی | مشروط مورد نیاز | قیمت فعلی بلیط/کارت ورود به نقطه مورد نظر. در صورت ارائه قیمت خط خورده، باید ارائه شود. | متن رایگان |
| قیمت - قیمت ضربدری | اختیاری | قیمت اصلی بلیط/کارت ورود به نقطه مورد نظر. | متن رایگان |
| اطلاع از قیمت | اختیاری | اعلام قیمت برای ارائه تخفیف ویژه، رویداد، و تخفیف برای اعضا، در صورت وجود. | متن رایگان اندازه متن پیشنهادی: کمتر از ۴۵ کاراکتر (متن خیلی طولانی ممکن است بیضی نشان دهد) |
| دسته بندی محتوا | اختیاری | دسته بندی محتوای موجود در موجودیت را شرح دهید. | فهرست Enumهای واجد شرایط
برای راهنمایی به بخش دستهبندی محتوا مراجعه کنید. |
PersonEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| مشخصات - نام | مورد نیاز | نام یا شناسه یا شناسه پروفایل، مثلاً "John Doe"، "@TeamPixel" و غیره. | رشته اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| پروفایل - آواتار | مورد نیاز | تصویر پروفایل یا تصویر آواتار کاربر. توجه: تصویر باید مربعی شکل و با نسبت تصویر ۱:۱ باشد. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| مشخصات - متن اضافی | اختیاری | متن رایگان مانند دسته پروفایل. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| مشخصات - تصویر اضافی | اختیاری | تصویر کوچکی مانند نشان تأیید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| تصویر سربرگ | اختیاری | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. توجه: تصویر اکیداً توصیه میشود. در صورت ارائه نشان، فضای امن ۲۴ dps را در بالا و پایین تصویر تضمین کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| محبوبیت - تعداد | اختیاری | تعداد دنبالکنندگان یا مقدار محبوبیت را مشخص کنید، مثلاً - "3.7 میلیون". نکته: اگر هم تعداد و هم مقدار تعداد ارائه شوند، از تعداد استفاده خواهد شد. | رشته اندازه متن پیشنهادی: حداکثر ۲۰ کاراکتر برای تعداد + برچسب (ترکیبی از هر کاراکتر) |
| محبوبیت - تعداد ارزش | اختیاری | تعداد دنبالکنندگان یا ارزش محبوبیت. نکته: اگر برنامه شما نمیخواهد منطق بهینهسازی یک عدد بزرگ برای اندازههای مختلف نمایشگر را مدیریت کند، مقدار شمارش (Count Value) را ارائه دهید. اگر هم تعداد و هم مقدار شمارش ارائه شوند، از تعداد (Count Value) استفاده خواهد شد. | بلند |
| محبوبیت - برچسب | اختیاری | مشخص کنید که برچسب محبوبیت چیست. به عنوان مثال - "لایک". | رشته اندازه متن پیشنهادی: حداکثر ۲۰ کاراکتر برای مجموع تعداد + برچسب |
| محبوبیت - بصری | اختیاری | مشخص کنید که این تعامل برای چیست. برای مثال - تصویری که آیکون لایک یا ایموجی را نشان میدهد. میتواند بیش از یک تصویر ارائه دهد، هرچند ممکن است همه آنها در همه فرم فاکتورها نمایش داده نشوند. توجه: تصویر باید مربعی شکل و با نسبت تصویر ۱:۱ باشد. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| رتبهبندی - حداکثر مقدار | مورد نیاز | حداکثر مقدار مقیاس رتبهبندی. اگر مقدار فعلی رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - ارزش فعلی | مورد نیاز | مقدار فعلی مقیاس رتبهبندی. اگر حداکثر مقدار رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
| رتبهبندی - تعداد | اختیاری | تعداد رتبهبندیها برای نهاد. نکته: اگر برنامه شما میخواهد نحوه نمایش این عدد به کاربران را کنترل کند، این فیلد را ارائه دهید. رشته مختصری را که میتواند به کاربر نمایش داده شود، ارائه دهید. برای مثال، اگر تعداد ۱,۰۰۰,۰۰۰ است، استفاده از اختصاراتی مانند ۱M را در نظر بگیرید تا در اندازههای کوچکتر صفحه نمایش کوتاه نشود. | رشته |
| رتبهبندی - مقدار شمارش | اختیاری | تعداد رتبهبندیها برای نهاد. توجه: اگر نمیخواهید خودتان منطق نمایش اختصارات را مدیریت کنید، این فیلد را وارد کنید. اگر هم تعداد و هم مقدار تعداد وجود داشته باشد، از تعداد برای نمایش به کاربران استفاده خواهیم کرد. | بلند |
| مکان - کشور | اختیاری | کشوری که شخص در آن مستقر است یا خدمت میکند. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - شهر | اختیاری | شهری که فرد در آن مستقر است یا خدمت میکند. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - نمایش آدرس | اختیاری | آدرسی که فرد در آن قرار دارد یا به آن خدمت رسانی میکند، به کاربر نمایش داده میشود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) که شخص در آن مستقر است یا خدمت میکند. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - ایالت | اختیاری | ایالتی (در صورت وجود) که شخص در آن مستقر است یا خدمت میکند. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) جایی که فرد در آن مستقر است یا خدمت میکند. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| موقعیت مکانی - محله | اختیاری | محله (در صورت وجود) که فرد در آن مستقر است یا خدمت میکند. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| نشانها | اختیاری | هر نشان یا متن آزاد (حداکثر ۱۵ کاراکتر) یا تصویر کوچک است. | |
| نشان - متن | اختیاری | عنوان برای نشان توجه: برای نشان، متن یا تصویر الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ۱۵ کاراکتر |
| نشان - تصویر | اختیاری | تصویر کوچک جلوههای ویژه تجربه کاربری، برای مثال به صورت پوشش نشان روی تصویر کوچک تصویر/ویدئو. توجه: برای نشان، متن یا تصویر الزامی است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| دسته بندی محتوا | اختیاری | دسته بندی محتوای موجود در موجودیت را شرح دهید. | فهرست Enumهای واجد شرایط
برای راهنمایی به بخش دستهبندی محتوا مراجعه کنید. |
RestaurantReservationEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| زمان شروع رزرو | مورد نیاز | مهر زمانی دوره زمانی (epoch) بر حسب میلیثانیه که انتظار میرود رزرو از آن شروع شود. | مهر زمانی عصر بر حسب میلی ثانیه |
| مکان - کشور | مورد نیاز | کشوری که رستوران در آن برگزار میشود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - شهر | مورد نیاز | شهری که رستوران در آن واقع شده است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - نمایش آدرس | مورد نیاز | آدرس رستوران که به کاربر نمایش داده خواهد شد. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) رستوران. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - ایالت | اختیاری | ایالت یا استانی (در صورت وجود) که رستوران در آن واقع شده است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) رستوران. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| موقعیت مکانی - محله | اختیاری | محله رستوران (در صورت وجود). | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| تصاویر پوستر | اختیاری | در صورت ارائه چندین تصویر، فقط ۱ تصویر نمایش داده میشود. نسبت تصویر توصیه شده ۱۶:۹ است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
| توضیحات | اختیاری | یک پاراگراف متن برای توصیف موجودیت. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: ۱۸۰ کاراکتر |
| فهرست زیرنویسها | اختیاری | حداکثر ۳ زیرنویس، که هر زیرنویس شامل یک خط متن است. توجه: یا توضیحات یا فهرست زیرنویسها به کاربر نمایش داده میشود، نه هر دو. | متن رایگان اندازه متن پیشنهادی برای هر زیرنویس: حداکثر ۵۰ کاراکتر |
| اندازه میز | اختیاری | تعداد افراد در گروه رزرو | عدد صحیح > 0 |
EventReservationEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| اکشن اوری | مورد نیاز | پیوند عمیق به موجودیت در برنامه ارائه دهنده. توجه: میتوانید از لینکهای عمیق برای ارجاع استفاده کنید. به این سوالات متداول مراجعه کنید. | اوری |
| عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر ۵۰ کاراکتر |
| زمان شروع | مورد نیاز | مهر زمانیِ دورهای که انتظار میرود رویداد در آن شروع شود. نکته: این مقدار بر حسب میلیثانیه نمایش داده میشود. | مهر زمانی عصر بر حسب میلی ثانیه |
| حالت رویداد | مورد نیاز | فیلدی برای مشخص کردن اینکه آیا رویداد مجازی، حضوری یا هر دو خواهد بود. | Enum: مجازی، حضوری یا ترکیبی |
| مکان - کشور | مشروط الزامی | کشوری که رویداد در آن اتفاق میافتد. توجه: این مورد برای رویدادهایی که IN_PERSON یا HYBRID هستند، الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - شهر | مشروط الزامی | شهری که رویداد در آن اتفاق میافتد. توجه: این مورد برای رویدادهایی که IN_PERSON یا HYBRID هستند، الزامی است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
| مکان - نمایش آدرس | Conditionally Required | The address or venue name where the event will take place that should be displayed to the user. Note: This is required for events which are IN_PERSON or HYBRID | Free text Recommended text size: max ~20 chars |
| Location - Street Address | اختیاری | The street address (if applicable) of the location at which event is being hosted. | Free text Recommended text size: max ~20 chars |
| Location - State | اختیاری | The state or province (if applicable) in which the event is being hosted. | Free text Recommended text size: max ~20 chars |
| Location - Zip code | اختیاری | The zip code (if applicable) of the location in which the event is being hosted. | Free text Recommended text size: max ~20 chars |
| Location - Neighborhood | اختیاری | The neighborhood (if applicable) in which the event is being hosted. | Free text Recommended text size: max ~20 chars |
| Poster images | اختیاری | We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9 Note: Image is highly recommended. If a badge is provided, ensure safe space of 24 dps at both the top and bottom of the image | See Image Specifications for guidance. |
| زمان پایان | اختیاری | The epoch timestamp when the event is expected to end. Note: This will be represented in milliseconds. | Epoch timestamp in milliseconds |
| Service Provider - Name | اختیاری | The name of the service provider. Note: Either text or image is required for the service provider. | Free text. For example, name of the event organizer/tour |
| Service Provider - Image | اختیاری | The logo/image of the service provider. Note: Either text or image is required for the service provider. | See Image Specifications for guidance. |
| توضیحات | اختیاری | A single paragraph of text to describe the entity. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size: 180 chars |
| Subtitle list | اختیاری | Up to 3 subtitles, with each subtitle a single line of text. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size for each subtitle: max 50 chars |
| نشانها | اختیاری | Each badge is either free text (max 15 chars) or small image. | |
| Badge - Text | اختیاری | Title for the badge Note: Either text or image is required for the badge | Free text Recommended text size: max 15 chars |
| Badge - Image | اختیاری | Small image Special UX treatment, for example as badge overlay on the image/video thumbnail. Note: Either text or image is required for the badge | See Image Specifications for guidance. |
| Reservation ID | اختیاری | The reservation ID for the event reservation. | Free text |
| Price - CurrentPrice | Conditionally required | The current price of the ticket/pass for the event. Must be provided if strikethrough price is provided. | Free text |
| Price - StrikethroughPrice | اختیاری | The original price of the ticket/pass for the event. | Free text |
| Price Callout | اختیاری | Price callout to feature a promo, event, member discount, if available. | Free text Recommended text size: under 45 chars (Text that is too long may show ellipses) |
| Rating - Max value | اختیاری | The maximum value of the rating scale. Must be provided if current value of rating is also provided. | Number >= 0.0 |
| Rating - Current value | اختیاری | The current value of the rating scale. Must be provided if maximum value of rating is also provided. | Number >= 0.0 |
| Rating - Count | اختیاری | The count of the ratings for the event. Note: Provide this field if your app wants to control how this is displayed to the users. Provide the concise string that can be displayed to the user. For example, if the count is 1,000,000, consider using abbreviations like 1M, so that it won't be truncated on smaller display sizes. | رشته |
| Rating - Count Value | اختیاری | The count of the ratings for the event. Note: Provide this field if you don't want to handle the display abbreviation logic yourself. If both Count and Count Value are present, we will use the Count to display to users | بلند |
| دسته بندی محتوا | اختیاری | Describe the category of the content in the entity. | List of Eligible Enums
See the Content Category section for guidance. |
LodgingReservationEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| Action Uri | مورد نیاز | Deep Link to the entity in the provider app. Note: You can use deep links for attribution. Refer to this FAQ | اوری |
| عنوان | مورد نیاز | Title of the entity. | Free text. For example, "Your Stay from Dec 12th" Recommended text size: Max 50 chars |
| زمان ورود | مورد نیاز | The epoch timestamp in milliseconds that represents the check in time for the reservation. | Epoch timestamp in milliseconds |
| زمان خروج | مورد نیاز | The epoch timestamp in milliseconds that represents the check out time for the reservation. | Epoch timestamp in milliseconds |
| Location - Country | مورد نیاز | The country in which the lodging is located. | Free text Recommended text size: max ~20 chars |
| Location - City | مورد نیاز | The city in which the lodging is located. | Free text Recommended text size: max ~20 chars |
| Location - Display Address | مورد نیاز | The address of the lodging that will be displayed to the user. | Free text Recommended text size: max ~20 chars |
| Location - Street Address | اختیاری | The street address (if applicable) of the lodging. | Free text Recommended text size: max ~20 chars |
| Location - State | اختیاری | The state or province (if applicable) in which the lodging is located. | Free text Recommended text size: max ~20 chars |
| Location - Zip code | اختیاری | The zip code (if applicable) of the lodging. | Free text Recommended text size: max ~20 chars |
| Location - Neighborhood | اختیاری | The neighborhood (if applicable) of the lodging. | Free text Recommended text size: max ~20 chars |
| Poster images | اختیاری | We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9 Note: If a badge is provided, ensure safe space of 24 dps at both the top and bottom of the image | See Image Specifications for guidance. |
| توضیحات | اختیاری | A single paragraph of text to describe the entity. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size: 180 chars |
| Subtitle list | اختیاری | Up to 3 subtitles, with each subtitle a single line of text. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size for each subtitle: max 50 chars |
| Reservation ID | اختیاری | The reservation ID for the lodging reservation. | Free text |
| Rating - Max value | اختیاری | The maximum value of the rating scale. Must be provided if current value of rating is also provided. | Number >= 0.0 |
| Rating - Current value | اختیاری | The current value of the rating scale. Must be provided if maximum value of rating is also provided. | Number >= 0.0 |
| Rating - Count | اختیاری | The count of the ratings for the lodging. Note: Provide this field if your app wants to control how this is displayed to the users. Provide the concise string that can be displayed to the user. For example, if the count is 1,000,000, consider using abbreviations like 1M, so that it won't be truncated on smaller display sizes. | رشته |
| Rating - Count Value | اختیاری | The count of the ratings for the lodging. Note: Provide this field if you don't want to handle the display abbreviation logic yourself. If both Count and Count Value are present, we will use the Count to display to users | بلند |
| Price - CurrentPrice | Conditionally required | The current price of the lodging. Must be provided if strikethrough price is provided. | Free text |
| Price - StrikethroughPrice | اختیاری | The original price of the lodging, which is be struck-through in the UI. | Free text |
| Price Callout | اختیاری | Price callout to feature a promo, event, member discount, if available. | Free text Recommended text size: under 45 chars (Text that is too long may show ellipses) |
TransportationReservationEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| Action Uri | مورد نیاز | Deep Link to the entity in the provider app. Note: You can use deep links for attribution. Refer to this FAQ | اوری |
| عنوان | مورد نیاز | Title of the entity. | Free text. For example, "SFO to SAN" Recommended text size: Max 50 chars |
| Transportation Type | مورد نیاز | The mode/type of transportation for the reservation. | Enum: FLIGHT, TRAIN, BUS, or FERRY |
| Departure Time | مورد نیاز | The epoch timestamp in milliseconds that represents the departure time. | Epoch timestamp in milliseconds |
| زمان رسیدن | مورد نیاز | The epoch timestamp in milliseconds that represents the arrival time. | Epoch timestamp in milliseconds |
| Departure Location - Country | اختیاری | The country of departure. | Free text Recommended text size: max ~20 chars |
| Departure Location - City | اختیاری | The city of departure. | Free text Recommended text size: max ~20 chars |
| Departure Location - Display Address | اختیاری | The location of departure that will be displayed to the user. | Free text Recommended text size: max ~20 chars |
| Departure Location - Street Address | اختیاری | The street address (if applicable) of the departure location. | Free text Recommended text size: max ~20 chars |
| Departure Location - State | اختیاری | The state or province (if applicable) of the departure location. | Free text Recommended text size: max ~20 chars |
| Departure Location - Zip code | اختیاری | The zip code (if applicable) of the departure location. | Free text Recommended text size: max ~20 chars |
| Departure Location - Neighborhood | اختیاری | The neighborhood (if applicable) of the departure location. | Free text Recommended text size: max ~20 chars |
| Arrival Location - Country | اختیاری | The country of arrival. | Free text Recommended text size: max ~20 chars |
| Arrival Location - City | اختیاری | The city of arrival. | Free text Recommended text size: max ~20 chars |
| Arrival Location - Display Address | اختیاری | The location of arrival that will be displayed to the user. | Free text Recommended text size: max ~20 chars |
| Arrival Location - Street Address | اختیاری | The street address (if applicable) of the arrival location. | Free text Recommended text size: max ~20 chars |
| Arrival Location - State | اختیاری | The state or province (if applicable) of the arrival location. | Free text Recommended text size: max ~20 chars |
| Arrival Location - Zip code | اختیاری | The zip code (if applicable) of the arrival location. | Free text Recommended text size: max ~20 chars |
| Arrival Location - Neighborhood | اختیاری | The neighborhood (if applicable) of the arrival location. | Free text Recommended text size: max ~20 chars |
| Service Provider - Name | اختیاری | The name of the service provider. Note: Either text or image is required for the service provider. | Free text. For example, Airline name |
| Service Provider - Image | اختیاری | The logo/image of the service provider. Note: Either text or image is required for the service provider. | See Image Specifications for guidance. |
| Poster images | اختیاری | We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9 | See Image Specifications for guidance. |
| توضیحات | اختیاری | A single paragraph of text to describe the entity. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size: 180 chars |
| Subtitle list | اختیاری | Up to 3 subtitles, with each subtitle a single line of text. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size for each subtitle: max 50 chars |
| Reservation ID | اختیاری | The reservation ID for the transportation reservation. | Free text |
| Price - CurrentPrice | Conditionally required | The current price of the reservation. Must be provided if strikethrough price is provided. | Free text |
| Price - StrikethroughPrice | اختیاری | The original price of the reservation, which is be struck-through in the UI. | Free text |
| Price Callout | اختیاری | Price callout to feature a promo, event, member discount, if available. | Free text Recommended text size: under 45 chars (Text that is too long may show ellipses) |
| Transportation Number | مورد نیاز | The flight number, bus number, train number, or ferry/cruise number. | Free text |
| زمان سوار شدن به هواپیما | مورد نیاز | The epoch timestamp that represents the boarding time for the reservation (if applicable) | Epoch timestamp in milliseconds |
VehicleRentalReservationEntity
| ویژگی | مورد نیاز | توضیحات | قالب |
|---|---|---|---|
| Action Uri | مورد نیاز | Deep Link to the entity in the provider app. Note: You can use deep links for attribution. Refer to this FAQ | اوری |
| عنوان | مورد نیاز | Title of the entity. | Free text. For example, "Avis Union Square SF" Recommended text size: Max 50 chars |
| Pickup Time | مورد نیاز | The epoch timestamp that represents the pick up time for the reservation. | Epoch timestamp in milliseconds |
| زمان بازگشت | اختیاری | The epoch timestamp that represents the check out time for the reservation. | Epoch timestamp in milliseconds |
| Pickup Address - Country | اختیاری | The country of the pickup location. | Free text Recommended text size: max ~20 chars |
| Pickup Address - City | اختیاری | The city of the pickup location. | Free text Recommended text size: max ~20 chars |
| Pickup Address - Display Address | اختیاری | The pickup location that will be displayed to the user. | Free text Recommended text size: max ~20 chars |
| Pickup Address - Street Address | اختیاری | The street address (if applicable) of the pickup location. | Free text Recommended text size: max ~20 chars |
| Pickup Address - State | اختیاری | The state or province (if applicable) of the pickup location. | Free text Recommended text size: max ~20 chars |
| Pickup Address - Zip code | اختیاری | The zip code (if applicable) of the pickup location. | Free text Recommended text size: max ~20 chars |
| Pickup Address - Neighborhood | اختیاری | The neighborhood (if applicable) of the pickup location. | Free text Recommended text size: max ~20 chars |
| Return Address - Country | اختیاری | The country of return location. | Free text Recommended text size: max ~20 chars |
| Return Address - City | اختیاری | The city of return location. | Free text Recommended text size: max ~20 chars |
| Return Address - Display Address | اختیاری | The return location that will be displayed to the user. | Free text Recommended text size: max ~20 chars |
| Return Address - Street Address | اختیاری | The street address (if applicable) of the return location. | Free text Recommended text size: max ~20 chars |
| Return Address - State | اختیاری | The state or province (if applicable) of the return location. | Free text Recommended text size: max ~20 chars |
| Return Address - Zip code | اختیاری | The zip code (if applicable) of the return location. | Free text Recommended text size: max ~20 chars |
| Return Address - Neighborhood | اختیاری | The neighborhood (if applicable) of the return location. | Free text Recommended text size: max ~20 chars |
| Service Provider - Name | اختیاری | The name of the service provider. Note: Either text or image is required for the service provider. | Free text. For example, "Avis Car Rental" |
| Service Provider - Image | اختیاری | The logo/image of the service provider. Note: Either text or image is required for the service provider. | See Image Specifications for guidance. |
| Poster images | اختیاری | We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9 | See Image Specifications for guidance. |
| توضیحات | اختیاری | A single paragraph of text to describe the entity. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size: 180 chars |
| Subtitle list | اختیاری | Up to 3 subtitles, with each subtitle a single line of text. Note: Either description or subtitle list will be displayed to the user, not both. | Free text Recommended text size for each subtitle: max 50 chars |
| Confirmation ID | اختیاری | The confirmation ID for the vehicle rental reservation. | Free text |
| Price - CurrentPrice | Conditionally required | The current price of the reservation. Must be provided if strikethrough price is provided. | Free text |
| Price - StrikethroughPrice | اختیاری | The original price of the reservation, which is be struck-through in the UI. | Free text |
| Price Callout | اختیاری | Price callout to feature a promo, event, member discount, if available. | Free text Recommended text size: under 45 chars (Text that is too long may show ellipses) |
مشخصات تصویر
Required specifications for image assets are listed in this table:
| نسبت ابعاد | Minimum pixels | Recommended pixels |
|---|---|---|
Square (1x1) ترجیحی | 300x300 | 1200x1200 |
| Landscape (1.91x1) | 600x314 | 1200x628 |
| Portrait (4x5) | 480x600 | 960x1200 |
The images are required to be hosted on public CDNs so that Google can access them.
فرمتهای فایل
PNG, JPG, static GIF, WebP
Maximum file size
5120 KB
Additional recommendations
- Image safe area: Put your important content in the center 80% of the image.
- Use a transparent background so that the image can be properly displayed in Dark and Light theme settings.
Content Category
The content category allows apps to publish content belonging to multiple categories. This maps the content with some of the predefined categories namely:
-
TYPE_EDUCATION -
TYPE_SPORTS -
TYPE_MOVIES_AND_TV_SHOWS -
TYPE_BOOKS -
TYPE_AUDIOBOOKS -
TYPE_MUSIC -
TYPE_DIGITAL_GAMES -
TYPE_TRAVEL_AND_LOCAL -
TYPE_HOME_AND_AUTO -
TYPE_BUSINESS -
TYPE_NEWS -
TYPE_FOOD_AND_DRINK -
TYPE_SHOPPING -
TYPE_HEALTH_AND_FITENESS -
TYPE_MEDICAL -
TYPE_PARENTING -
TYPE_DATING
The images are required to be hosted on public CDNs so that Google can access them.
Guidelines to use the content categories
- Some entities like ArticleEntity and GenericFeaturedEntity are eligible to use any of the content categories. For other entities like EventEntity , EventReservationEntity , PointOfInterestEntity , only a subset of these categories are eligible. Check the list of categories eligible for an entity type before populating the list.
Use the specific entity type for some content categories over a combination of the Generic entities and the ContentCategory:
- TYPE_MOVIES_AND_TV_SHOWS - Check out the entities from Watch integration guide before using the generic entities.
- TYPE_BOOKS - Check out the EbookEntity before using the generic entities.
- TYPE_AUDIOBOOKS - Check out AudiobookEntity before using the generic entities.
- TYPE_SHOPPING - Check out ShoppingEntity before using the generic entities.
- TYPE_FOOD_AND_DRINK - Check out entities from Food Integration guide before using the generic entities.
The ContentCategory field is optional and should be left blank if the content doesn't belong to any of the categories mentioned earlier.
In case multiple content categories are provided, provide them in the order of relevance to the content with the most relevant content category placed first in the list.
Step 2: Provide Cluster data
It is recommended to have the content publish job executed in the background (for example, using WorkManager ) and scheduled on a regular basis or on an event basis (for example, every time the user opens the app or when the user just added something to their cart).
AppEngagePublishClient is responsible for publishing clusters.
There are following APIs to publish clusters in the client:
-
isServiceAvailable -
publishRecommendationClusters -
publishFeaturedCluster -
publishContinuationCluster -
publishUserAccountManagementRequest -
updatePublishStatus -
deleteRecommendationsClusters -
deleteFeaturedCluster -
deleteContinuationCluster -
deleteUserManagementCluster -
deleteClusters
isServiceAvailable
This API is used to check if the service is available for integration and whether the content can be presented on the device.
کاتلین
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
This API is used to publish a list of RecommendationCluster objects.
کاتلین
client.publishRecommendationClusters(
PublishRecommendationClustersRequest.Builder()
.addRecommendationCluster(
RecommendationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.setTitle("Top Picks For You")
.build()
)
.build()
)
جاوا
client.publishRecommendationClusters(
new PublishRecommendationClustersRequest.Builder()
.addRecommendationCluster(
new RecommendationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.setTitle("Top Picks For You")
.build())
.build());
When the service receives the request, the following actions take place within one transaction:
- Existing
RecommendationClusterdata from the developer partner is removed. - Data from the request is parsed and stored in the updated Recommendation Cluster.
In case of an error, the entire request is rejected and the existing state is maintained.
publishFeaturedCluster
This API is used to publish a list of FeaturedCluster objects.
کاتلین
client.publishFeaturedCluster(
PublishFeaturedClusterRequest.Builder()
.setFeaturedCluster(
FeaturedCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build())
جاوا
client.publishFeaturedCluster(
new PublishFeaturedClustersRequest.Builder()
.addFeaturedCluster(
new FeaturedCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build());
When the service receives the request, the following actions take place within one transaction:
- Existing
FeaturedClusterdata from the developer partner is removed. - Data from the request is parsed and stored in the updated Featured Cluster.
In case of an error, the entire request is rejected and the existing state is maintained.
publishContinuationCluster
This API is used to publish a ContinuationCluster object.
کاتلین
client.publishContinuationCluster(
PublishContinuationClusterRequest.Builder()
.setContinuationCluster(
ContinuationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build())
جاوا
client.publishContinuationCluster(
new PublishContinuationClusterRequest.Builder()
.setContinuationCluster(
new ContinuationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build());
When the service receives the request, the following actions take place within one transaction:
- Existing
ContinuationClusterdata from the developer partner is removed. - Data from the request is parsed and stored in the updated Continuation Cluster.
In case of an error, the entire request is rejected and the existing state is maintained.
publishUserAccountManagementRequest
This API is used to publish a Sign In card . The signin action directs users to the app's sign in page so that the app can publish content (or provide more personalized content)
The following metadata is part of the Sign In Card -
| ویژگی | مورد نیاز | توضیحات |
|---|---|---|
| Action Uri | مورد نیاز | Deeplink to Action (ie navigates to app sign in page) |
| تصویر | Optional - If not provided, Title must be provided | Image Shown on the Card 16x9 aspect ratio images with a resolution of 1264x712 |
| عنوان | Optional - If not provided, Image must be provided | Title on the Card |
| Action Text | اختیاری | Text Shown on the CTA (ie Sign in) |
| زیرنویس | اختیاری | Optional Subtitle on the Card |
کاتلین
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());
When the service receives the request, the following actions take place within one transaction:
- Existing
UserAccountManagementClusterdata from the developer partner is removed. - Data from the request is parsed and stored in the updated UserAccountManagementCluster Cluster.
In case of an error, the entire request is rejected and the existing state is maintained.
updatePublishStatus
If for any internal business reason, none of the clusters is published, we strongly recommend updating the publish status using the updatePublishStatus API. This is important because :
- Providing the status in all scenarios, even when the content is published (STATUS == PUBLISHED), is critical to populate dashboards that use this explicit status to convey the health and other metrics of your integration.
- If no content is published but the integration status isn't broken (STATUS == NOT_PUBLISHED), Google can avoid triggering alerts in the app health dashboards. It confirms that content is not published due to an expected situation from the provider's standpoint.
- It helps developers provide insights into when the data is published versus not.
- Google may use the status codes to nudge the user to do certain actions in the app so they can see the app content or overcome it.
The list of eligible publish status codes are :
// 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
If the content is not published due to a user not logged in, Google would recommend publishing the Sign In Card. If for any reason providers are not able to publish the Sign In Card then we recommend calling the updatePublishStatus API with the status code NOT_PUBLISHED_REQUIRES_SIGN_IN
کاتلین
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
This API is used to delete the content of Recommendation Clusters.
کاتلین
client.deleteRecommendationClusters()
جاوا
client.deleteRecommendationClusters();
When the service receives the request, it removes the existing data from the Recommendation Clusters. In case of an error, the entire request is rejected and the existing state is maintained.
deleteFeaturedCluster
This API is used to delete the content of Featured Cluster.
کاتلین
client.deleteFeaturedCluster()
جاوا
client.deleteFeaturedCluster();
When the service receives the request, it removes the existing data from the Featured Cluster. In case of an error, the entire request is rejected and the existing state is maintained.
deleteContinuationCluster
This API is used to delete the content of Continuation Cluster.
کاتلین
client.deleteContinuationCluster()
جاوا
client.deleteContinuationCluster();
When the service receives the request, it removes the existing data from the Continuation Cluster. In case of an error, the entire request is rejected and the existing state is maintained.
deleteUserManagementCluster
This API is used to delete the content of UserAccountManagement Cluster.
کاتلین
client.deleteUserManagementCluster()
جاوا
client.deleteUserManagementCluster();
When the service receives the request, it removes the existing data from the UserAccountManagement Cluster. In case of an error, the entire request is rejected and the existing state is maintained.
deleteClusters
This API is used to delete the content of a given cluster type.
کاتلین
client.deleteClusters(
DeleteClustersRequest.Builder()
.addClusterType(ClusterType.TYPE_CONTINUATION)
.addClusterType(ClusterType.TYPE_FEATURED)
.addClusterType(ClusterType.TYPE_RECOMMENDATION)
.build())
جاوا
client.deleteClusters(
new DeleteClustersRequest.Builder()
.addClusterType(ClusterType.TYPE_CONTINUATION)
.addClusterType(ClusterType.TYPE_FEATURED)
.addClusterType(ClusterType.TYPE_RECOMMENDATION)
.build());
When the service receives the request, it removes the existing data from all clusters matching the specified cluster types. Clients can choose to pass one or many cluster types. In case of an error, the entire request is rejected and the existing state is maintained.
مدیریت خطا
It is highly recommended to listen to the task result from the publish APIs such that a follow-up action can be taken to recover and resubmit an successful task.
کاتلین
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
}
}
}
});
The error is returned as an AppEngageException with the cause included as an error code.
| کد خطا | Error name | توجه داشته باشید |
|---|---|---|
1 | SERVICE_NOT_FOUND | The service is not available on the given device. |
2 | SERVICE_NOT_AVAILABLE | The service is available on the given device, but it is not available at the time of the call (for example, it is explicitly disabled). |
3 | SERVICE_CALL_EXECUTION_FAILURE | The task execution failed due to threading issues. In this case, it can be retried. |
4 | SERVICE_CALL_PERMISSION_DENIED | The caller is not allowed to make the service call. |
5 | SERVICE_CALL_INVALID_ARGUMENT | The request contains invalid data (for example, more than the allowed number of clusters). |
6 | SERVICE_CALL_INTERNAL | There is an error on the service side. |
7 | SERVICE_CALL_RESOURCE_EXHAUSTED | The service call is made too frequently. |
Step 3: Handle broadcast intents
In addition to making publish content API calls through a job, it is also required to set up a BroadcastReceiver to receive the request for a content publish.
The goal of broadcast intents is mainly for app reactivation and forcing data sync. Broadcast intents are not designed to be sent very frequently. It is only triggered when the Engage Service determines the content might be stale (for example, a week old). That way, there is more confidence that the user can have a fresh content experience, even if the application has not been executed for a long period of time.
The BroadcastReceiver must be set up in the following two ways:
Dynamically register an instance of the
BroadcastReceiverclass usingContext.registerReceiver(). This enables communication from applications that are still live in memory.
کاتلین
class AppEngageBroadcastReceiver : BroadcastReceiver(){
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received
// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
// Trigger continuation cluster publish when PUBLISH_CONTINUATION 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),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null)
// Register Featured Cluster Publish Intent
context.registerReceiver(AppEngageBroadcastReceiver(),
IntentFilter(Intents.ACTION_PUBLISH_FEATURED),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null)
// Register Continuation Cluster Publish Intent
context.registerReceiver(AppEngageBroadcastReceiver(),
IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null)
}
جاوا
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 continuation cluster publish when PUBLISH_CONTINUATION 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),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null);
// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null);
// Register Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null);
}
Statically declare an implementation with the
<receiver>tag in yourAndroidManifest.xmlfile. This allows the application to receive broadcast intents when it is not running, and also allows the application to publish the content.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:permission="com.google.android.engage.REQUEST_ENGAGE_DATA"
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.PUBLISH_CONTINUATION" />
</intent-filter>
</receiver>
</application>
The following intents is sent by the service:
-
com.google.android.engage.action.PUBLISH_RECOMMENDATIONIt is recommended to start apublishRecommendationClusterscall when receiving this intent. -
com.google.android.engage.action.PUBLISH_FEATUREDIt is recommended to start apublishFeaturedClustercall when receiving this intent. -
com.google.android.engage.action.PUBLISH_CONTINUATIONIt is recommended to start apublishContinuationClustercall when receiving this intent.
گردش کار یکپارچهسازی
For a step-by-step guide on verifying your integration after it is complete, see Engage developer integration workflow .
سوالات متداول
See Engage SDK Frequently Asked Questions for FAQs.
تماس
Contact engage-developers@google.com if there are any questions during the integration process.
مراحل بعدی
After completing this integration, your next steps are as follows:
- Send an email to
engage-developers@google.comand attach your integrated APK that is ready for testing by Google. - Google performs a verification and reviews internally to make sure the integration works as expected. If changes are needed, Google contacts you with any necessary details.
- When testing is complete and no changes are needed, Google contacts you to notify you that you can start publishing the updated and integrated APK to the Play Store.
- After Google has confirmed that your updated APK has been published to the Play Store, your Recommendation , Featured , and Continuation clusters may be published and visible to users.