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

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

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

اصطلاحات

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

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

    • یک خوشه Recommendation می تواند از لیست های ArticleEntity ، EventEntity ، LodgingEntity ، PointOfInterestEntity یا StoreEntity ساخته شود، اما ترکیبی از انواع موجودیت های مختلف نباشد.

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

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

    • Entity: یک شی که یک آیتم را در یک خوشه نشان می دهد. این ادغام برخی از موجودیت هایی را ارائه می دهد که با استفاده از خوشه توصیه ظاهر می شوند:

      • ArticleEntity : ArticleEntity یک توصیه برای محتوای متنی مرتبط با سفر و رویدادها است. می توان از آن برای مقالات، پست های وبلاگ، محتوای بازاریابی، قطعات خبری و غیره استفاده کرد.

        شکل 1: UI که یک ArticleEntity را در کلاستر Recommendations نشان می دهد.
      • EventEntity : EventEntity نشان دهنده رویدادی است که در آینده اتفاق می افتد. زمان شروع رویداد یک بخش مهم از اطلاعات است که باید به کاربران منتقل شود.

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

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

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

        شکل 5: رابط کاربری که یک PointOfInterestEntity را در کلاستر Recommendations نشان می دهد.
  • خوشه رزرو ، محتوایی را نشان می‌دهد که اخیراً توسط کاربران چندین شریک توسعه‌دهنده در یک گروه UI واحد درگیر شده‌اند. هر شریک توسعه‌دهنده مجاز است حداکثر 10 موجودیت را در خوشه رزرو پخش کند.

    محتوای رزرو شما می تواند ساختار زیر را داشته باشد:

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

      شکل 6. رابط کاربری یک RestaurantReservationEntity را در یک کلاستر رزرو نشان می دهد.
    • EventReservationEntity : EventReservationEntity یک رزرو برای یک رویداد را نشان می دهد و به کاربران کمک می کند رزرو رویدادهای آینده یا در حال انجام را پیگیری کنند. رویدادها می توانند شامل موارد زیر باشند، اما نه محدود به آنها:

      • رویدادهای ورزشی مانند رزرو برای یک مسابقه فوتبال
      • رویدادهای بازی مانند رزرو برای ورزش های الکترونیکی
      • رویدادهای سرگرمی مانند رزرو فیلم در سینما، کنسرت، تئاتر، امضای کتاب
      • رزرو سفر یا نقاط مورد علاقه مانند تورهای راهنما، بلیط موزه
      • اجتماعی / سمینار / کنفرانس ها رزرو
      • آموزش / رزرو جلسات آموزشی
      شکل 7. رابط کاربری که یک EventReservationEntity را در یک کلاستر رزرو نشان می دهد.
    • LodgingReservationEntity : LodgingEntityReservation نشان دهنده رزرو اقامتگاه مسافرتی است و به کاربران کمک می کند رزروهای آتی یا جاری هتل یا تعطیلات را ردیابی کنند.

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

      شکل 9. UI که یک TransportationReservationEntity را در یک کلاستر رزرو نشان می دهد.
    • VehicleRentalReservationEntity : VehicleRentalReservationEntity نشان دهنده رزرو کرایه وسیله نقلیه است و به کاربران کمک می کند رزروهای اجاره خودروی آینده یا در حال انجام را پیگیری کنند.

      شکل 10. رابط کاربری که یک VehicleRentalReservationEntity را در یک کلاستر رزرو نشان می دهد.
  • خوشه ویژه مجموعه‌ای از موجودیت‌ها را از چندین شریک توسعه‌دهنده در یک گروه‌بندی UI به نمایش می‌گذارد. یک خوشه ویژه وجود خواهد داشت که در نزدیکی بالای رابط کاربری با اولویت بالاتر از همه خوشه‌های توصیه ظاهر می‌شود. هر شریک توسعه دهنده مجاز به پخش حداکثر 10 موجودیت در خوشه ویژه خواهد بود.

    • GenericFeaturedEntity : GenericFeaturedEntity با آیتم توصیه تفاوت دارد زیرا آیتم Featured باید برای یک محتوای برتر از توسعه دهندگان استفاده شود و باید مهمترین محتوایی را نشان دهد که برای کاربران جالب و مرتبط باشد.

      شکل 11: رابط کاربری که یک FeaturedCluster را با لیستی از GenericFeaturedEntity نشان می دهد.
  • خوشه Continue Search به کاربران کمک می‌کند تا با نمایش فهرستی از عبارت‌های جستجویی که کاربر اخیراً در تمام برنامه‌های سفر خود جستجو کرده است، سفر جستجوی سفر قبلی خود را از سر بگیرند. خوشه در موقعیت دوم، پس از رزرو و قبل از خوشه های ویژه و توصیه سنجاق می شود. هر شریک توسعه دهنده مجاز به پخش حداکثر 3 موجودیت در خوشه جستجوی ادامه دارد.

    • PointOfInterestEntity: PointOfInterestEntity نشان دهنده یک مکان دیدنی مانند، پمپ بنزین، محل برگزاری رویداد، پارک موضوعی، موزه، جاذبه توریستی، مسیر پیاده روی و غیره است. محتوایی را که کاربر قبلاً جستجو کرده است را برجسته می کند.

قبل از کار

حداقل سطح 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'
}

خلاصه

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

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

نوع خوشه محدودیت های خوشه ای حداقل محدودیت موجودیت در یک خوشه حداکثر محدودیت موجودیت در یک خوشه
خوشه(های) توصیه حداکثر 7 حداقل 1 حداکثر 50 ( ArticleEntity ، EventEntity ، LodgingEntity ، StoreEntity ، یا PointOfInterestEntity )
خوشه رزرو حداکثر 1 حداقل 1 حداکثر 20 ( RestaurantReservationEntity , EventReservationEntity , LodgingReservationEntity , TransportationReservationEntity یا VehicleRentalReservationEntity )
خوشه ویژه حداکثر 1 حداقل 1 حداکثر 20 ( GenericFeaturedEntity )
خوشه جستجو را ادامه دهید حداکثر 1 حداقل 1 حداکثر 3 ( PointOfInterestEntity )

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

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

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. EventEntity
  4. LodgingEntity
  5. StoreEntity
  6. PointOfInterestEntity
  7. RestaurantReservationEntity
  8. EventReservationEntity
  9. LodgingReservationEntity
  10. TransportationReservationEntity
  11. VehicleRentalReservationEntity

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

GenericFeaturedEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
تصاویر پوستر مورد نیاز

هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است

توجه: در صورت ارائه نشان، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید.

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

متن رایگان

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

توضیحات اختیاری

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

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

متن رایگان

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

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

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

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

متن رایگان

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

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

هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است.

درمان ویژه UX در بالای تصویر/فیلم، به عنوان مثال، به عنوان پوشش نشان روی تصویر

  • "به روز رسانی زنده"
  • مدت زمان خواندن مقاله
نشان - متن اختیاری

عنوان برای نشان

توجه: متن یا تصویر برای نشان مورد نیاز است

متن رایگان

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

نشان - تصویر اختیاری

تصویر کوچک

درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو.

توجه: متن یا تصویر برای نشان مورد نیاز است

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

فهرست Enums

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

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

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

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

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

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

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

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

ArticleEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان نهاد.

متن رایگان

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

تصاویر پوستر اختیاری

هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است

توجه: تصویر به شدت توصیه می شود. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید

برای راهنمایی به مشخصات تصویر مراجعه کنید.
منبع - عنوان اختیاری نام نویسنده، سازمان یا گزارشگر

متن رایگان

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

منبع - تصویر اختیاری تصویری از منبع مانند نویسنده، سازمان، گزارشگر برای راهنمایی به مشخصات تصویر مراجعه کنید.
توضیحات اختیاری

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

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

متن رایگان

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

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

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

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

متن رایگان

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

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

هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است.

درمان ویژه UX در بالای تصویر/فیلم، به عنوان مثال، به عنوان همپوشانی نشان روی تصویر

  • "به روز رسانی زنده"
  • مدت زمان خواندن مقاله
نشان - متن اختیاری

عنوان برای نشان

توجه: متن یا تصویر برای نشان مورد نیاز است

متن رایگان

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

نشان - تصویر اختیاری

تصویر کوچک

درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو.

توجه: متن یا تصویر برای نشان مورد نیاز است

برای راهنمایی به مشخصات تصویر مراجعه کنید.
زمان انتشار محتوا اختیاری این مهر زمانی در میلی ثانیه در زمانی است که محتوا در برنامه منتشر شد/به‌روزرسانی شد. مهر زمانی دوره در میلی ثانیه
آخرین زمان نامزدی مشروط مورد نیاز است

مهر زمانی دوره در میلی ثانیه زمانی که کاربر آخرین بار با این موجودیت تعامل داشت.

توجه: اگر این موجودیت بخشی از خوشه رزرو باشد، این فیلد ضروری است.

مهر زمانی دوره در میلی ثانیه
درصد پیشرفت مشروط مورد نیاز است

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

توجه: اگر این موجودیت بخشی از خوشه رزرو باشد، این فیلد ضروری است.

مقدار int بین 0 تا 100 شامل.
دسته بندی های محتوا اختیاری دسته بندی محتوا را در موجودیت توضیح دهید.

فهرست Enums

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

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

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

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

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

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

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

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

EventEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان نهاد.

رشته

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

زمان شروع محلی - مهر زمانی مورد نیاز

مهر زمانی دورانی که انتظار می رود رویداد شروع شود.

Joda-Time Instant
زمان شروع محلی - منطقه زمانی مورد نیاز

منطقه زمانی که انتظار می رود رویداد در آن شروع شود.

Joda-Time DateTimeZone
حالت رویداد مورد نیاز

فیلدی برای نشان دادن اینکه آیا رویداد مجازی، حضوری یا هر دو خواهد بود.

تعداد: VIRTUAL، IN_PERSON، یا HYBRID
تصاویر پوستر مورد نیاز

هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است

توجه: تصویر به شدت توصیه می شود. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید

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

کشوری که رویداد در آن رخ می دهد.

توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است

متن رایگان

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

مکان - شهر مشروط مورد نیاز است

شهری که رویداد در آن اتفاق می افتد.

توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است

متن رایگان

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

مکان - نشانی نمایش مشروط مورد نیاز است

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

توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است

متن رایگان

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

مکان - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) مکانی که رویداد در آن میزبانی می شود.

متن رایگان

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

مکان - ایالت اختیاری ایالت یا استان (در صورت وجود) که رویداد در آن میزبانی می شود.

متن رایگان

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

مکان - کد پستی اختیاری کد پستی (در صورت وجود) مکانی که رویداد در آن میزبانی می شود.

متن رایگان

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

محل - محله اختیاری محله ای (در صورت وجود) که رویداد در آن برگزار می شود.

متن رایگان

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

زمان پایان اختیاری

مهر زمانی دوره ای که انتظار می رود رویداد به پایان برسد.

توجه: این در میلی ثانیه نمایش داده می شود.

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

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

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

متن رایگان

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

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

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

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

متن رایگان

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

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

هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است.

نشان - متن اختیاری

عنوان برای نشان

توجه: متن یا تصویر برای نشان مورد نیاز است

متن رایگان

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

نشان - تصویر اختیاری

تصویر کوچک

درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو.

توجه: متن یا تصویر برای نشان مورد نیاز است

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

قیمت فعلی بلیط/گذرنامه برای رویداد.

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی بلیط/گذرنامه برای رویداد. متن رایگان
فراخوان قیمت اختیاری اعلام قیمت برای نمایش تبلیغات، رویداد، تخفیف عضو، در صورت وجود.

متن رایگان

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

دسته بندی های محتوا اختیاری دسته بندی محتوا را در موجودیت توضیح دهید.

فهرست فهرست های واجد شرایط

  • TYPE_MOVIES_AND_TV_SHOWS (مثال - سینما)
  • TYPE_DIGITAL_GAMES (مثال - ورزشهای الکترونیکی)
  • TYPE_MUSIC (مثال - کنسرت)
  • TYPE_TRAVEL_AND_LOCAL (مثال - تور، جشنواره)
  • TYPE_HEALTH_AND_FITENESS (مثال - کلاس یوگا)
  • TYPE_EDUCATION (مثال - کلاس)
  • TYPE_SPORTS (مثال - بازی فوتبال)
  • TYPE_DATING (مثال - ملاقات)

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

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

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

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

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

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

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

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

LodgingEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان نهاد.

رشته

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

تصاویر پوستر مورد نیاز

هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است

توجه: در صورت ارائه نشان، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید.

برای راهنمایی به مشخصات تصویر مراجعه کنید.
مکان - کشور مورد نیاز کشوری که اقامت در آن اتفاق می افتد.

متن رایگان

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

مکان - شهر مورد نیاز شهری که در آن اقامتگاه اتفاق می افتد.

متن رایگان

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

مکان - نشانی نمایش مورد نیاز آدرسی که به کاربر نمایش داده می شود. توصیه می کنیم نام شهر و احتمالاً ایالت یا کشور را برای بیشتر موارد استفاده درج کنید. فقط در صورتی آدرس خیابان یا محله را درج کنید که کاربر در نزدیکی مکان باشد، کاربر با مکان آشنا باشد یا شهر در عنوان خوشه گنجانده شده باشد. اگر آدرس خیابان را وارد می‌کنید، با استفاده از اختصارات در صورت امکان، یک آدرس مختصر ارائه دهید (به عنوان مثال، "St" برای "خیابان"، "Ave" برای "Avenue").

متن رایگان

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

مکان - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) محل اقامت.

متن رایگان

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

مکان - ایالت اختیاری ایالت یا استان (در صورت وجود) که اقامتگاه در آن واقع شده است.

متن رایگان

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

مکان - کد پستی اختیاری کد پستی (در صورت وجود) اقامتگاه.

متن رایگان

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

محل - محله اختیاری محله (در صورت وجود) محل اقامت.

متن رایگان

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

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

هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است.

نشان - متن اختیاری

عنوان برای نشان

توجه: متن یا تصویر برای نشان مورد نیاز است

متن رایگان

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

نشان - تصویر اختیاری

تصویر کوچک

درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو.

توجه: متن یا تصویر برای نشان مورد نیاز است

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

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

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

متن رایگان

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

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

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

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

متن رایگان

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

AvailabilityTimeWindow - زمان شروع محلی - مهر زمانی اختیاری مهر زمانی زمانی که انتظار می رود اقامتگاه باز/در دسترس باشد. Joda-Time Instant
AvailabilityTimeWindow - زمان شروع محلی - منطقه زمانی اختیاری منطقه زمانی که انتظار می رود اقامتگاه در آن باز/در دسترس باشد. Joda-Time DateTimeZone
AvailabilityTimeWindow - زمان پایان محلی شده - مهر زمانی اختیاری مهر زمانی دوره ای که انتظار می رود اقامتگاه تا آن زمان باز/در دسترس باشد. Joda-Time Instant
AvailabilityTimeWindow - زمان پایان موضعی - منطقه زمانی اختیاری منطقه زمانی که انتظار می رود اقامتگاه در آن باز/در دسترس باشد. Joda-Time DateTimeZone
رتبه - حداکثر مقدار اختیاری

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

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

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

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

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

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

شمارش رتبه بندی برای اقامتگاه.

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

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

شمارش رتبه بندی برای اقامتگاه.

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

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

قیمت فعلی اقامتگاه

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی اقامتگاه، که در UI مشخص شده است. متن رایگان
فراخوان قیمت اختیاری اعلام قیمت برای نمایش تبلیغات، رویداد، تخفیف عضو، در صورت وجود.

متن رایگان

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

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

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

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

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

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

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

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

StoreEntity

شی StoreEntity نشان‌دهنده فروشگاهی است که شرکای توسعه‌دهنده می‌خواهند آن را منتشر کنند، مانند یک غذاخوری یا غذاخوری محبوب که به تجربه سفر فرد مرتبط است.

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان اختیاری نام فروشگاه.

متن رایگان

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

مکان اختیاری موقعیت فروشگاه.

متن رایگان

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

فراخوانی اختیاری فراخوانی برای ارائه تبلیغات، رویداد یا به‌روزرسانی برای فروشگاه، در صورت وجود.

متن رایگان

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

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

متن رایگان

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

توضیحات اختیاری توضیحات فروشگاه

متن رایگان

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

دسته بندی اختیاری

طبقه بندی یک فروشگاه، در زمینه مکان های غذاخوری، می تواند غذاهایی مانند "فرانسوی"، "آمریکایی جدید"، "رامن"، "ناهارخوری خوب" باشد.

متن رایگان

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

رتبه - حداکثر مقدار اختیاری

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

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

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

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

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

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

شمارش رتبه بندی برای اقامتگاه.

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

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

شمارش رتبه بندی برای اقامتگاه.

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

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

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

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

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

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

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

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

PointOfInterestEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان نهاد.

رشته

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

تصاویر پوستر مشروط مورد نیاز است

هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است

توجه: اگر موجودیت بخشی از خوشه توصیه باشد، تصویر مورد نیاز است. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید

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

مهر زمانی زمانی که کاربر آخرین بار با این موجودیت تعامل داشته است.

توجه: اگر موجودیت بخشی از خوشه جستجوی ادامه باشد، این فیلد ضروری است.

Joda-Time Instant
مکان - کشور مشروط مورد نیاز است

کشوری که نقطه مورد علاقه در آن اتفاق می افتد.

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

متن رایگان

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

مکان - شهر مشروط مورد نیاز است

شهری که نقطه دیدنی در آن اتفاق می افتد.

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

متن رایگان

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

مکان - نشانی نمایش مشروط مورد نیاز است

آدرسی که به کاربر نمایش داده می شود. در صورت امکان از اختصارات استفاده کنید (به عنوان مثال، "St" برای "Street"، "Ave" برای "Avenue") یک آدرس مختصر ارائه دهید. این رشته ممکن است بسته به دستگاه و تنظیمات کاربر کوتاه شود. نام شهر را برای شناسایی واضح درج کنید.

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

متن رایگان

اندازه متن توصیه شده: حداکثر ~ 35 کاراکتر

مکان - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) نقطه مورد علاقه.

متن رایگان

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

مکان - ایالت اختیاری ایالت یا استان (در صورت وجود) که نقطه مورد نظر در آن واقع شده است.

متن رایگان

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

مکان - کد پستی اختیاری کد پستی (در صورت وجود) نقطه مورد علاقه.

متن رایگان

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

محل - محله اختیاری محله (در صورت وجود) نقطه مورد علاقه.

متن رایگان

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

AvailabilityTimeWindow - زمان شروع محلی - مهر زمانی اختیاری مهر زمانی دوره ای که انتظار می رود نقطه مورد علاقه باز/در دسترس باشد. Joda-Time Instant
AvailabilityTimeWindow - زمان شروع محلی - منطقه زمانی اختیاری منطقه زمانی که انتظار می رود نقطه مورد علاقه در آن باز/در دسترس باشد. Joda-Time DateTimeZone
AvailabilityTimeWindow - زمان پایان محلی شده - مهر زمانی اختیاری مهر زمانی دوره ای که انتظار می رود نقطه مورد علاقه تا آن زمان باز/در دسترس باشد. Joda-Time Instant
AvailabilityTimeWindow - زمان پایان موضعی - منطقه زمانی اختیاری منطقه زمانی که انتظار می رود نقطه مورد علاقه در آن باز/در دسترس باشد. Joda-Time DateTimeZone
نشان ها اختیاری

هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است.

نشان - متن اختیاری

عنوان برای نشان

توجه: متن یا تصویر برای نشان مورد نیاز است

متن رایگان

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

نشان - تصویر اختیاری

تصویر کوچک

درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو.

توجه: متن یا تصویر برای نشان مورد نیاز است

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

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

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

متن رایگان

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

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

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

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

متن رایگان

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

رتبه - حداکثر مقدار اختیاری

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

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

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

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

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

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

شمارش رتبه بندی برای نقطه مورد علاقه.

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

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

شمارش رتبه بندی برای نقطه مورد علاقه.

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

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

قیمت فعلی بلیت / مجوز ورود برای نقطه مورد علاقه.

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی بلیط / مجوز ورود برای نقطه مورد علاقه. متن رایگان
فراخوان قیمت اختیاری اعلام قیمت برای نمایش تبلیغات، رویداد، تخفیف عضو، در صورت وجود.

متن رایگان

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

دسته بندی های محتوا اختیاری دسته بندی محتوا را در موجودیت توضیح دهید.

فهرست فهرست های واجد شرایط

  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_MOVIES_AND_TV_SHOWS (مثال - تئاتر)
  • TYPE_MEDICAL (مثال - بیمارستان)
  • TYPE_EDUCATION (مثال - مدرسه)
  • TYPE_SPORTS (مثال - استادیوم)

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

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

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

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

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

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

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

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

RestaurantReservationEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان نهاد.

رشته

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

زمان شروع رزرو محلی - مهر زمانی مورد نیاز مهر زمانی زمانی که انتظار می رود رزرو شروع شود. Joda-Time Instant
زمان شروع رزرو محلی - منطقه زمانی مورد نیاز منطقه زمانی که انتظار می رود رزرو در آن شروع شود. Joda-Time DateTimeZone
مکان - کشور مورد نیاز کشوری که رستوران در آن اتفاق می افتد.

متن رایگان

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

مکان - شهر مورد نیاز شهری که رستوران در آن اتفاق می افتد.

متن رایگان

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

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

متن رایگان

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

مکان - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) رستوران.

متن رایگان

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

مکان - ایالت اختیاری ایالت یا استان (در صورت وجود) که رستوران در آن واقع شده است.

متن رایگان

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

مکان - کد پستی اختیاری کد پستی (در صورت وجود) رستوران.

متن رایگان

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

محل - محله اختیاری محله (در صورت وجود) رستوران.

متن رایگان

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

تصاویر پوستر اختیاری هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است برای راهنمایی به مشخصات تصویر مراجعه کنید.
توضیحات اختیاری

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

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

متن رایگان

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

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

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

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

متن رایگان

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

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

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

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

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

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

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

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

EventReservationEntity

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

پیوند عمیق به نهاد موجود در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان نهاد.

رشته

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

زمان شروع محلی - مهر زمانی مورد نیاز

مهر زمانی دورانی که انتظار می رود رویداد شروع شود.

Joda-Time Instant
زمان شروع محلی - منطقه زمانی مورد نیاز

منطقه زمانی که انتظار می رود رویداد در آن شروع شود.

Joda-Time DateTimeZone
حالت رویداد مورد نیاز

فیلدی برای نشان دادن اینکه آیا رویداد مجازی، حضوری یا هر دو خواهد بود.

تعداد: VIRTUAL، IN_PERSON، یا HYBRID
مکان - کشور به طور مشروط مورد نیاز است

کشوری که این رویداد در آن اتفاق می افتد.

توجه: این مورد برای رویدادهایی که در in_person یا هیبرید هستند لازم است

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - شهر به طور مشروط مورد نیاز است

شهری که این رویداد در آن اتفاق می افتد.

توجه: این مورد برای رویدادهایی که در in_person یا هیبرید هستند لازم است

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

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

آدرس یا نام مکان که در آن رویداد برگزار می شود که باید به کاربر نمایش داده شود.

توجه: این مورد برای رویدادهایی که در in_person یا هیبرید هستند لازم است

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) از مکانی که در آن رویداد برگزار می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - ایالت اختیاری ایالت یا استان (در صورت وجود) که در آن رویداد برگزار می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - کد پستی اختیاری کد پستی (در صورت وجود) از مکانی که در آن رویداد برگزار می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - محله اختیاری محله (در صورت وجود) که در آن رویداد برگزار می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

تصاویر پوستر اختیاری

ما فقط در هنگام ارائه چندین تصویر فقط 1 تصویر را نشان خواهیم داد. نسبت ابعاد توصیه شده 16: 9 است

توجه: تصویر بسیار توصیه می شود. اگر نشان ارائه شده است ، از فضای امن 24 dps در هر دو قسمت بالا و پایین تصویر اطمینان حاصل کنید

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

زمانی که انتظار می رود این رویداد به پایان برسد.

جودا-وقت فوری
زمان پایان بومی شده - منطقه زمانی اختیاری

منطقه زمانی که انتظار می رود این رویداد به پایان برسد.

joda-time datetimezone
ارائه دهنده خدمات - نام اختیاری

نام ارائه دهنده خدمات.

توجه: برای ارائه دهنده خدمات یا متن یا تصویر لازم است.

متن رایگان. به عنوان مثال ، نام سازمان دهنده/تور رویداد
ارائه دهنده خدمات - تصویر اختیاری

آرم/تصویر ارائه دهنده خدمات.

توجه: برای ارائه دهنده خدمات یا متن یا تصویر لازم است.

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

یک پاراگراف واحد برای توصیف موجودیت.

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

متن رایگان

اندازه متن توصیه شده: 180 بار

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

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

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

متن رایگان

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

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

هر نشان یا متن رایگان (حداکثر 15 کاراکتر) یا تصویر کوچک است.

نشان - متن اختیاری

عنوان برای نشان

توجه: برای نشان یا متن یا تصویر لازم است

متن رایگان

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

نشان - تصویر اختیاری

تصویر کوچک

درمان ویژه UX ، به عنوان مثال به عنوان پوشش نشان در تصویر کوچک تصویر/فیلم.

توجه: برای نشان یا متن یا تصویر لازم است

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

قیمت فعلی بلیط/پاس برای این رویداد.

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی بلیط/پاس برای این رویداد. متن رایگان
فراخوان قیمت اختیاری در صورت وجود ، فراخوان قیمت برای ارائه یک تبلیغ ، رویداد ، تخفیف عضو.

متن رایگان

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

رتبه بندی - مقدار حداکثر اختیاری

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

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

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

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

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

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

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

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

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

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

توجه: اگر نمی خواهید منطق اختصاری نمایشگر را اداره کنید ، این قسمت را ارائه دهید. اگر هر دو مقدار شمارش و شمارش وجود داشته باشد ، ما از Count برای نمایش به کاربران استفاده خواهیم کرد

طولانی
دسته بندی های محتوا اختیاری دسته مطالب موجود در موجودیت را شرح دهید.

لیست عناصر واجد شرایط

  • type_movies_and_tv_shows (مثال - سینما)
  • type_digital_games (مثال - eSports)
  • type_music (مثال - کنسرت)
  • type_travel_and_local (مثال - تور ، جشنواره)
  • type_health_and_fiteness (مثال - کلاس یوگا)
  • type_education (مثال - کلاس)
  • type_sports (مثال - بازی فوتبال)
  • type_dating (مثال - ملاقات)

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

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

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

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

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

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

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

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

LodgingReservationEntity

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

پیوند عمیق به نهاد در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان موجودیت.

متن رایگان. به عنوان مثال ، "اقامت شما از 12 دسامبر"

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

زمان چک موضعی - Timestamp مورد نیاز جدول زمانی دوره ای که نشان دهنده چک در زمان رزرو است. جودا-وقت فوری
زمان چک موضعی - منطقه زمانی مورد نیاز منطقه زمانی که در آن زمان چک برای رزرو وجود دارد. جودا-وقت فوری
زمان چک موضعی - Timestamp مورد نیاز زمان سنجی که نشان دهنده زمان چک برای رزرو است. جودا-وقت فوری
زمان چک موضعی - منطقه زمانی مورد نیاز منطقه زمانی که در آن زمان چک برای رزرو وجود دارد. joda-time datetimezone
مکان - کشور مورد نیاز کشوری که اقامتگاه در آن قرار دارد.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - شهر مورد نیاز شهری که اقامتگاه در آن قرار دارد.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - آدرس نمایش مورد نیاز آدرس که به کاربر نمایش داده می شود. یک آدرس موجز ارائه دهید ، با استفاده از اختصارات در صورت امکان (به عنوان مثال ، "خیابان" برای "خیابان" ، "خیابان" برای "خیابان"). این رشته بسته به دستگاه و تنظیمات کاربر ممکن است کوتاه شود. نام شهر را برای شناسایی واضح درج کنید.

متن رایگان

اندازه متن توصیه شده: حداکثر 35 chars

مکان - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) از اقامتگاه.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - ایالت اختیاری ایالت یا استان (در صورت وجود) که در آن اقامتگاه قرار دارد.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - کد پستی اختیاری کد پستی (در صورت کاربرد) اقامتگاه.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان - محله اختیاری محله (در صورت کاربرد) اقامتگاه.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

تصاویر پوستر اختیاری

ما فقط در هنگام ارائه چندین تصویر فقط 1 تصویر را نشان خواهیم داد. نسبت ابعاد توصیه شده 16: 9 است

توجه: اگر نشان ارائه شده است ، از فضای امن 24 dps در هر دو قسمت بالا و پایین تصویر اطمینان حاصل کنید

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

یک پاراگراف واحد برای توصیف موجودیت.

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

متن رایگان

اندازه متن توصیه شده: 180 بار

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

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

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

متن رایگان

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

شناسه رزرو اختیاری شناسه رزرو برای رزرو اقامتگاه. متن رایگان
رتبه بندی - مقدار حداکثر اختیاری

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

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

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

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

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

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

تعداد رتبه بندی برای اقامتگاه.

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

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

تعداد رتبه بندی برای اقامتگاه.

توجه: اگر نمی خواهید منطق اختصاری نمایشگر را اداره کنید ، این قسمت را ارائه دهید. اگر هر دو مقدار شمارش و شمارش وجود داشته باشد ، ما از Count برای نمایش به کاربران استفاده خواهیم کرد

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

قیمت فعلی اقامتگاه.

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی اقامتگاه ، که در UI مورد ضرب و شتم قرار می گیرد. متن رایگان
فراخوان قیمت اختیاری در صورت وجود ، فراخوان قیمت برای ارائه یک تبلیغ ، رویداد ، تخفیف عضو.

متن رایگان

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

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

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

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

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

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

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

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

TransportationReservationEntity

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

پیوند عمیق به نهاد در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان موجودیت.

متن رایگان. به عنوان مثال ، "SFO به SAN"

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

نوع حمل و نقل مورد نیاز حالت/نوع حمل و نقل برای رزرو. enum: پرواز ، قطار ، اتوبوس یا کشتی
زمان عزیمت موضعی - Timestamp مورد نیاز زمان سنجی که نشان دهنده زمان عزیمت است. جودا-وقت فوری
زمان عزیمت موضعی - منطقه زمانی مورد نیاز منطقه زمانی زمان عزیمت. joda-time datetimezone
زمان ورود موضعی - Timestamp مورد نیاز زمان سنجی که نشان دهنده زمان ورود است. جودا-وقت فوری
زمان ورود موضعی - منطقه زمانی مورد نیاز منطقه زمانی زمان ورود. joda-time datetimezone
شماره حمل و نقل مورد نیاز شماره پرواز ، شماره اتوبوس ، شماره قطار یا شماره کشتی/کروز. متن رایگان
زمان شبانه روزی موضعی - Timestamp مورد نیاز Timestamp Epoch که نشان دهنده زمان شبانه روزی برای رزرو است (در صورت کاربرد) جودا-وقت فوری
زمان شبانه روزی موضعی - منطقه زمانی مورد نیاز منطقه زمانی شبانه روزی برای رزرو (در صورت کاربرد) joda-time datetimezone
مکان عزیمت - کشور اختیاری کشور عزیمت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان عزیمت - شهر اختیاری شهر عزیمت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

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

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

محل عزیمت - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) محل عزیمت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

محل عزیمت - ایالت اختیاری ایالت یا استان (در صورت لزوم) محل عزیمت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

محل عزیمت - کد پستی اختیاری کد پستی (در صورت وجود) محل عزیمت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

محل عزیمت - محله اختیاری محله (در صورت وجود) محل عزیمت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - کشور اختیاری کشور ورود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - شهر اختیاری شهر ورود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - آدرس نمایش اختیاری محل ورود که به کاربر نمایش داده می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) از محل ورود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - ایالت اختیاری ایالت یا استان (در صورت وجود) از محل ورود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - کد پستی اختیاری کد پستی (در صورت وجود) از محل ورود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

مکان ورود - محله اختیاری محله (در صورت وجود) از محل ورود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

ارائه دهنده خدمات - نام اختیاری

نام ارائه دهنده خدمات.

توجه: برای ارائه دهنده خدمات یا متن یا تصویر لازم است.

متن رایگان. به عنوان مثال ، نام هواپیمایی
ارائه دهنده خدمات - تصویر اختیاری

آرم/تصویر ارائه دهنده خدمات.

توجه: برای ارائه دهنده خدمات یا متن یا تصویر لازم است.

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

ما فقط در هنگام ارائه چندین تصویر فقط 1 تصویر را نشان خواهیم داد. نسبت ابعاد توصیه شده 16: 9 است

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

یک پاراگراف واحد برای توصیف موجودیت.

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

متن رایگان

اندازه متن توصیه شده: 180 بار

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

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

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

متن رایگان

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

شناسه رزرو اختیاری شناسه رزرو برای رزرو حمل و نقل. متن رایگان
قیمت - نسخه فعلی به طور مشروط مورد نیاز است

قیمت فعلی رزرو.

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی رزرو ، که در UI از بین می رود. متن رایگان
فراخوان قیمت اختیاری در صورت وجود ، فراخوان قیمت برای ارائه یک تبلیغ ، رویداد ، تخفیف عضو.

متن رایگان

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

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

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

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

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

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

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

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

VehicleRentalReservationEntity

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

پیوند عمیق به نهاد در برنامه ارائه دهنده.

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

اوری
عنوان مورد نیاز عنوان موجودیت.

متن رایگان. به عنوان مثال ، "Avis Union Square SF"

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

زمان وانت بومی شده - Timestamp مورد نیاز زمان سنجی که نشان دهنده زمان انتخاب برای رزرو است. جودا-وقت فوری
زمان وانت موضعی - منطقه زمانی مورد نیاز منطقه زمانی انتخاب زمان برای رزرو. joda-time datetimezone
زمان بازگشت بومی شده - Timestamp اختیاری زمان سنجی که نشان دهنده زمان چک برای رزرو است. جودا-وقت فوری
زمان بازگشت بومی شده - منطقه زمانی اختیاری منطقه زمانی زمان چک برای رزرو. joda-time datetimezone
آدرس وانت - کشور اختیاری کشور محل وانت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس وانت - شهر اختیاری شهر وانت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس وانت - آدرس نمایش اختیاری مکان وانت که به کاربر نمایش داده می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس وانت - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) از محل وانت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس وانت - حالت اختیاری ایالت یا استان (در صورت وجود) از محل وانت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس وانت - کد پستی اختیاری کد پستی (در صورت وجود) محل وانت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس وانت - محله اختیاری محله (در صورت وجود) از محل وانت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - کشور اختیاری محل بازگشت کشور.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - شهر اختیاری شهر بازگشت شهر.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - آدرس نمایش اختیاری مکان برگشتی که به کاربر نمایش داده می شود.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - آدرس خیابان اختیاری آدرس خیابان (در صورت وجود) از محل بازگشت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - ایالت اختیاری ایالت یا استان (در صورت وجود) از محل بازگشت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - کد پستی اختیاری کد پستی (در صورت وجود) از محل بازگشت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

آدرس بازگشت - محله اختیاری محله (در صورت وجود) از محل بازگشت.

متن رایگان

اندازه متن توصیه شده: حداکثر 20 chars

ارائه دهنده خدمات - نام اختیاری

نام ارائه دهنده خدمات.

توجه: برای ارائه دهنده خدمات یا متن یا تصویر لازم است.

متن رایگان. به عنوان مثال ، "اجاره ماشین Avis"
ارائه دهنده خدمات - تصویر اختیاری

آرم/تصویر ارائه دهنده خدمات.

توجه: برای ارائه دهنده خدمات یا متن یا تصویر لازم است.

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

ما فقط در هنگام ارائه چندین تصویر فقط 1 تصویر را نشان خواهیم داد. نسبت ابعاد توصیه شده 16: 9 است

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

یک پاراگراف واحد برای توصیف موجودیت.

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

متن رایگان

اندازه متن توصیه شده: 180 بار

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

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

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

متن رایگان

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

شناسه تأیید اختیاری شناسه تأیید برای رزرو اجاره وسیله نقلیه. متن رایگان
قیمت - نسخه فعلی به طور مشروط مورد نیاز است

قیمت فعلی رزرو.

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

متن رایگان
قیمت - StrikethroughPrice اختیاری قیمت اصلی رزرو ، که در UI از بین می رود. متن رایگان
فراخوان قیمت اختیاری در صورت وجود ، فراخوان قیمت برای ارائه یک تبلیغ ، رویداد ، تخفیف عضو.

متن رایگان

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

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

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

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

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

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

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

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

مشخصات تصویر

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

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

مربع (1x1)

ترجیح داده شده است

300x300 1200x1200
چشم انداز (1.91x1) 600x314 1200x628
پرتره (4x5) 480x600 960x1200

تصاویر لازم است در CDN های عمومی میزبانی شوند تا Google بتواند به آنها دسترسی پیدا کند.

فرمت های فایل

PNG ، JPG ، GIF استاتیک ، وب

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

5120 کیلوبایت

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

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

دسته بندی محتوا

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

  • 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

تصاویر لازم است در CDN های عمومی میزبانی شوند تا Google بتواند به آنها دسترسی پیدا کند.

دستورالعمل های استفاده از دسته بندی های محتوا

  1. برخی از نهادها مانند مقاله و GenericFeatureDentity واجد شرایط استفاده از هر یک از دسته های محتوا هستند. برای سایر موجودات مانند EventEntity ، EventReservationEntity ، PointOfindestEntity ، فقط زیر مجموعه ای از این دسته ها واجد شرایط هستند. قبل از جمع آوری لیست ، لیست دسته های واجد شرایط برای یک نوع موجودیت را بررسی کنید.
  2. از نوع موجودیت خاص برای برخی از دسته های محتوا در ترکیبی از اشخاص عمومی و ContentCategration استفاده کنید:

  3. اگر محتوا متعلق به هیچ یک از دسته های ذکر شده در ابتدا نباشد ، قسمت ContentCategory اختیاری است و باید خالی باقی بماند.

  4. در صورت ارائه مقوله های متعدد محتوای ، آنها را به ترتیب مرتبط با محتوا با مهمترین دسته محتوا که در ابتدا در لیست قرار می گیرد ، ارائه دهید.

مرحله 2: داده های خوشه ای را ارائه دهید

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

AppEngageTravelClient مسئول انتشار خوشه ها است.

API های زیر برای انتشار خوشه ها در مشتری وجود دارد:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishReservationCluster
  • publishContinueSearchCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteReservationCluster
  • deleteContinueSearchCluster
  • 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 استفاده می شود.

کاتلین

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());

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

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

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

publishFeaturedCluster

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

کاتلین

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());

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

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

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

publishReservationCluster

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

کاتلین

client.publishReservationCluster(
    PublishReservationClusterRequest.Builder()
      .setReservationCluster(
        ReservationCluster.Builder()
          .addLodgingReservationEntity(lodgingReservationEntity)
          .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
          .addTransportationReservationEntity(transportationReservationEntity)
          .addEventReservationEntity(eventReservationEntity)
          .addRestaurantReservationEntity(restaurantReservationEntity)
          .build())
      .build())

جاوا

client.publishReservationCluster(
            new PublishReservationClusterRequest.Builder()
                .setReservationCluster(
                    new ReservationCluster.Builder()
                        .addLodgingReservationEntity(lodgingReservationEntity)
                        .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
                        .addTransportationReservationEntity(transportationReservationEntity)
                        .addEventReservationEntity(eventReservationEntity)
                        .addRestaurantReservationEntity(restaurantReservationEntity)
                        .build())
                .build());

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

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

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

publishContinueSearchCluster

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

کاتلین

client.publishContinueSearchCluster(
    PublishContinueSearchClusterRequest.Builder()
      .setContinueSearchCluster(
        ContinueSearchCluster.Builder()
          .addPointOfInterestEntity(entity1)
          .addPointOfInterestEntity(entity2)
          .build())
      .build())

جاوا

client.publishContinueSearchCluster(
            new PublishContinueSearchClusterRequest.Builder()
                .setContinueSearchCluster(
                    new ContinueSearchCluster.Builder()
                        .addPointOfInterestEntity(entity1)
                        .addPointOfInterestEntity(entity2)
                        .build())
                .build());

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

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

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

publishUserAccountManagementRequest

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

ابرداده زیر بخشی از علامت در کارت است -

صفت مورد نیاز توضیحات
عمل مورد نیاز Deeplink to 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

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

  • ارائه وضعیت در تمام سناریوها ، حتی در صورت انتشار محتوا (وضعیت == منتشر شده) ، برای جمع آوری داشبورد که از این وضعیت صریح برای انتقال سلامت و سایر معیارهای ادغام شما استفاده می کنند ، بسیار مهم است.
  • اگر هیچ محتوا منتشر نشده باشد اما وضعیت ادغام شکسته نشده است (وضعیت == 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 توصیه می کند که علامت کارت را منتشر کند. اگر به هر دلیلی ارائه دهندگان قادر به انتشار علامت در کارت نیستند ، توصیه می کنیم با کد وضعیت به روزرسانی updatepublishstatus با کد وضعیت 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

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

کاتلین

client.deleteRecommendationClusters()

جاوا

client.deleteRecommendationClusters();

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

deleteFeaturedCluster

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

کاتلین

client.deleteFeaturedCluster()

جاوا

client.deleteFeaturedCluster();

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

deleteReservationCluster

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

کاتلین

client.deleteReservationCluster()

جاوا

client.deleteReservationCluster();

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

deleteUserManagementCluster

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

کاتلین

client.deleteUserManagementCluster()

جاوا

client.deleteUserManagementCluster();

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

deleteContinueSearchCluster

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

کاتلین

client.deleteContinueSearchCluster()

جاوا

client.deleteContinueSearchCluster();

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

deleteClusters

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

کاتلین

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

جاوا

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_RESERVATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
                .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 با علت موجود به عنوان کد خطا بازگردانده می شود.

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

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

علاوه بر ایجاد تماس های API Publish Content از طریق یک کار ، همچنین لازم است که برای دریافت درخواست انتشار محتوا ، یک 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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
  // broadcast is received
  // Trigger reservation cluster publish when PUBLISH_RESERVATION broadcast is
  // received
}

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

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

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

// Register Continue Search Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH))

// Register Reservation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_RESERVATION))
}

جاوا

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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
// broadcast is received

// Trigger reservation cluster publish when PUBLISH_RESERVATION 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 Continue Search Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH));

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

}
  • به صورت آماری با برچسب <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.travel.PUBLISH_CONTINUE_SEARCH" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.travel.PUBLISH_RESERVATION" />
      </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.travel.PUBLISH_CONTINUE_SEARCH توصیه می شود هنگام دریافت این هدف ، یک تماس تلفنی publishContinueSearchCluster کنید.
  • com.google.android.engage.action.travel.PUBLISH_RESERVATION توصیه می شود هنگام دریافت این هدف ، یک تماس publishReservationCluster شروع کنید.

گردش کار ادغام

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

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

به Engage SDK که اغلب برای سؤالات متداول پرسیده می شود ، مراجعه کنید.

تماس بگیرید

در صورت وجود هرگونه سؤال در طی فرآیند ادغام ، با ingage-developers@google.com تماس بگیرید.

مراحل بعدی

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

  • Send an email to engage-developers@google.com and 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 , Reservation , and Continue Search clusters may be published and visible to users.
،

Google is building an on-device surface that organizes users' apps by verticals and enables a new immersive experience for personalized app content consumption and discovery. This fullscreen experience provides developer partners with an opportunity to showcase their best rich content in a dedicated channel outside of their app. This guide contains instructions for developer partners to integrate their travel & events content, using the Engage SDK to populate this new surface area.

Integration detail

اصطلاحات

This integration includes the following cluster types: Recommendation , Featured , Reservation and Continue Search .

  • Recommendation clusters show personalized travel & event suggestions from an individual developer partner. These recommendations can be personalized to the user or generalized (for example, trending items). Use these to surface articles, events, lodging, or places of interest recommendations.

    • A Recommendation cluster can be made of ArticleEntity , EventEntity , LodgingEntity , PointOfInterestEntity , or StoreEntity listings, but not a mix of different entity types.

    Your recommendations take the following structure:

    • Recommendation Cluster: A UI view that contains a group of recommendations from the same developer partner.

    • Entity: An object representing a single item in a cluster. This integration offers some entities that would be surfaced using the Recommendation Cluster:

      • ArticleEntity : ArticleEntity represents a recommendation for text-based content related to travel & events. It can be used for articles, blogposts, marketing content, news snippets, etc.

        Figure 1: UI showing a single ArticleEntity within Recommendations cluster.
      • EventEntity : EventEntity represents an event happening in the future. Event start time is a critical piece of information that needs to be conveyed to the users.

        Figure 2: UI showing a single EventEntity within Recommendations cluster.
      • LodgingEntity : LodgingEntity represents an accommodation, such as a hotel, apartment, vacation home for short term and long term rental.

        Figure 3: UI showing a single LodgingEntity within Recommendations cluster.
      • StoreEntity : StoreEntity represents a store, restaurant, cafe etc. It highlights content where a dining venue or store is the critical piece of information that needs to be conveyed to the users.

        Figure 4: UI showing a single StoreEntity within Recommendations cluster.
      • PointOfInterestEntity : PointOfInterestEntity represents a place of interest like, a gas station, event venue, theme park, museum, tourist attraction, hiking trail etc. It highlights content where location is a critical piece of information that needs to be conveyed to the users. It shouldn't be used for lodging, a store or a dining venue.

        Figure 5: UI showing a single PointOfInterestEntity within Recommendations cluster.
  • The Reservation cluster shows content recently engaged by users from multiple developer partners in a single UI grouping. Each developer partner will be allowed to broadcast a maximum of 10 entities in the Reservation cluster.

    Your reservation content can take the following structure:

    • RestaurantReservationEntity : RestaurantReservationEntity represents a reservation for a restaurant or cafe and helps users track upcoming or ongoing restaurant reservations.

      Figure 6. UI showing a single RestaurantReservationEntity within a Reservation cluster.
    • EventReservationEntity : EventReservationEntity represents a reservation for an event and helps users track upcoming or ongoing events reservations. Events could include, but not limited to the following:

      • Sports events like reservation for a football match
      • Gaming events like reservation for eSports
      • Entertainment events like reservation for movies in a cinema, concert, theater, book signing
      • Travel or point of interest reservations like guided tours, museum tickets
      • Social / Seminar / Conferences reservations
      • Education / Training sessions reservations
      Figure 7. UI showing a single EventReservationEntity within a Reservation cluster.
    • LodgingReservationEntity : LodgingEntityReservation represents a reservation for travel lodging and helps users track upcoming or ongoing hotel or vacation rental reservations.

      Figure 8. UI showing a single LodgingReservationEntity within a Reservation cluster.
    • TransportationReservationEntity : TransportationReservationEntity represents reservation for transportation by any mode and helps users track reservations for upcoming or ongoing flight, ferry, train, bus, ride-hailing, or cruise.

      Figure 9. UI showing a single TransportationReservationEntity within a Reservation cluster.
    • VehicleRentalReservationEntity : VehicleRentalReservationEntity represents vehicle rental reservation and helps users track upcoming or ongoing vehicle rental reservations.

      Figure 10. UI showing a single VehicleRentalReservationEntity within a Reservation cluster.
  • The Featured cluster showcases a selection of entities from multiple developer partners in one UI grouping. There will be a single Featured cluster, which is surfaced near the top of the UI with a priority placement above all Recommendation clusters. Each developer partner will be allowed to broadcast up to 10 entities in the Featured cluster.

    • GenericFeaturedEntity : GenericFeaturedEntity differs from Recommendation item in that Featured item should be used for a single top content from developers and should represent the single most important content that will be interesting and relevant to users.

      Figure 11: UI showing a FeaturedCluster with a list of GenericFeaturedEntity
  • The Continue Search cluster helps users resume their previous travel search journey by showcasing a list of search queries that the user has recently searched for across all their travel apps. The cluster will be pinned in second position, after reservations and before featured and recommendation clusters. Each developer partner will be allowed to broadcast up to 3 entities in the Continue Search cluster.

    • PointOfInterestEntity: PointOfInterestEntity represents a place of interest like, a gas station, event venue, theme park, museum, tourist attraction, hiking trail etc. It highlights content the user has previously searched for.

قبل از کار

Minimum API level: 19

Add the com.google.android.engage:engage-core library to your app:

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'
}

خلاصه

The design is based on an implementation of a bound service .

The data a client can publish is subject to the following limits for different cluster types:

نوع خوشه محدودیت های خوشه ای Minimum entity limits in a cluster Maximum entity limits in a cluster
Recommendation Cluster(s) At most 7 حداقل 1 At most 50 ( ArticleEntity , EventEntity , LodgingEntity , StoreEntity , or PointOfInterestEntity )
Reservation Cluster At most 1 حداقل 1 At most 20 ( RestaurantReservationEntity , EventReservationEntity , LodgingReservationEntity , TransportationReservationEntity , or VehicleRentalReservationEntity )
Featured Cluster At most 1 حداقل 1 At most 20 ( GenericFeaturedEntity )
Continue Search Cluster At most 1 حداقل 1 At most 3 ( PointOfInterestEntity )

Step 1: Provide entity data

The SDK has defined different entities to represent each item type. We support the following entities for the Travel & Events category:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. EventEntity
  4. LodgingEntity
  5. StoreEntity
  6. PointOfInterestEntity
  7. RestaurantReservationEntity
  8. EventReservationEntity
  9. LodgingReservationEntity
  10. TransportationReservationEntity
  11. VehicleRentalReservationEntity

The charts below outline available attributes and requirements for each type.

GenericFeaturedEntity

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

Deep Link to the entity in the provider app.

Note: You can use deep links for attribution. Refer to this FAQ

اوری
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.
عنوان اختیاری Title of the entity.

متن رایگان

Recommended text size: 50 chars

توضیحات اختیاری

A single paragraph of text to describe the entity.

Note: Either description or subtitle list will be displayed to the user, not both.

متن رایگان

Recommended text size: 180 chars

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

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.

متن رایگان

Recommended text size for each subtitle: max 50 chars

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

Each badge is either free text (max 15 chars) or small image.

Special UX treatment on top of image/video, For example, as badge overlay on the image

  • "Live update"
  • Article read duration
Badge - Text اختیاری

Title for the badge

Note: Either text or image is required for the badge

متن رایگان

Recommended text size: max 15 chars

Badge - 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.
دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Enums

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

ArticleEntity

صفت مورد نیاز توضیحات قالب
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.

متن رایگان

Recommended text size: Max 50 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.
Source - Title اختیاری The name of the author, organization, or reporter

متن رایگان

Recommended text size: Under 25 chars

Source - Image اختیاری An image of the source like the author, the organization, reporter 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.

متن رایگان

Recommended text size: 180 chars

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

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.

متن رایگان

Recommended text size for each subtitle: max 50 chars

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

Each badge is either free text (max 15 chars) or small image.

Special UX treatment on top of image/video, for example, as badge overlay on the image

  • "Live update"
  • Article read duration
Badge - Text اختیاری

Title for the badge

Note: Either text or image is required for the badge

متن رایگان

Recommended text size: max 15 chars

Badge - 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.
Content Publish Time اختیاری This is the epoch timestamp in milliseconds on when the content was published / updated in the app. Epoch timestamp in milliseconds
Last Engagement Time Conditionally required

The epoch timestamp in milliseconds when the user interacted with this entity last time.

Note: This field is required if this entity is part of the reservation cluster.

Epoch timestamp in milliseconds
Progress Percentage Conditionally required

The percentage of the full content consumed by the user to date.

Note: This field is required if this entity is part of the reservation cluster.

An int value between 0~100 inclusive.
دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Enums

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

EventEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Start time - Timestamp مورد نیاز

The epoch timestamp when the event is expected to start.

Joda-Time Instant
Localized Start time - Timezone مورد نیاز

The timezone in which the event is expected to start.

Joda-Time DateTimeZone
Event mode مورد نیاز

A field to indicate whether the event will be virtual, in-person or both.

Enum: VIRTUAL, IN_PERSON, or HYBRID
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.
Location - Country Conditionally required

The country in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

متن رایگان

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

متن رایگان

Recommended text size: max ~20 chars

Location - Display Address 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

متن رایگان

Recommended text size: max ~20 chars

Location - Street Address اختیاری The street address (if applicable) of the location at which event is being hosted.

متن رایگان

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the event is being hosted.

متن رایگان

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the location in which the event is being hosted.

متن رایگان

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) in which the event is being hosted.

متن رایگان

Recommended text size: max ~20 chars

زمان پایان اختیاری

The epoch timestamp when the event is expected to end.

Note: This will be represented in milliseconds.

Epoch timestamp in milliseconds
توضیحات اختیاری

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

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

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.

متن رایگان

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 اختیاری

تصویر کوچک

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

دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Eligible Enums

  • TYPE_MOVIES_AND_TV_SHOWS (Example - Cinema)
  • TYPE_DIGITAL_GAMES (Example - eSports)
  • TYPE_MUSIC (Example - Concert)
  • TYPE_TRAVEL_AND_LOCAL (Example - Tour, festival)
  • TYPE_HEALTH_AND_FITENESS (Example - Yoga class)
  • TYPE_EDUCATION (Example - Class)
  • TYPE_SPORTS (Example - Football game)
  • TYPE_DATING (Example - meetup)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

LodgingEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 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.
Location - Country مورد نیاز The country in which the lodging is happening.

Free text

Recommended text size: max ~20 chars

Location - City مورد نیاز The city in which the lodging is happening.

متن رایگان

Recommended text size: max ~20 chars

Location - Display Address مورد نیاز The address that will be displayed to the user. We recommend including the city name and possibly state or country for most use cases. Only include the street address or neighborhood if the user is near the location, the user is familiar with the location, or the city is included in the cluster title. If you include the street address, provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue").

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

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

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 اختیاری

تصویر کوچک

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.
توضیحات اختیاری

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

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

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

AvailabilityTimeWindow - Localized Start Time - Timestamp اختیاری The epoch timestamp when the lodging is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone اختیاری The timezone in which the lodging is expected to be open/available. Joda-Time DateTimeZone
AvailabilityTimeWindow - Localized End Time - Timestamp اختیاری The epoch timestamp until which the lodging is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone اختیاری The timezone in which the lodging is expected to be open/available. Joda-Time DateTimeZone
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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

StoreEntity

The StoreEntity object represents an individual store that developer partners want to publish, such as a popular dining place or eatery that are relevant to one's travel experience.

صفت مورد نیاز توضیحات قالب
Poster images مورد نیاز At least one image must be provided. See Image Specifications for guidance.
Action Uri مورد نیاز

Deep Link to the entity in the provider app.

Note: You can use deep links for attribution. Refer to this FAQ

اوری
عنوان اختیاری The name of the store.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

مکان اختیاری The location of the store.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

فراخوانی اختیاری Callout to feature a promo, event, or update for the store, if available.

متن رایگان

Recommended text size: under 45 chars (Text that is too long may show ellipses)

Callout fine print اختیاری Fine print text for the callout.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

توضیحات اختیاری A description of the store.

Free text

Recommended text size: under 90 chars (Text that is too long may show ellipses)

دسته بندی اختیاری

Category of a store, in the context of dining places, it can be cuisine like "french", "new american", "ramen", "fine dining".

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

طولانی
DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

PointOfInterestEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Poster images Conditionally required

We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9

Note: Image is required if the entity is part of recommendation cluster. 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.
Last Engagement Time Conditionally required

The epoch timestamp when the user last interacted with this entity.

Note: This field is required if the entity is part of continue search cluster.

Joda-Time Instant
Location - Country Conditionally required

The country in which the point of interest is happening.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the point of interest is happening.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~20 chars

Location - Display Address Conditionally required

The address that will be displayed to the user. Provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue"). This string may be truncated depending on the user's device and settings. Include the city name for clear identification.

Note: This field is required if the entity is part of recommendation cluster.

متن رایگان

Recommended text size: max ~35 chars

Location - Street Address اختیاری The street address (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the point of interest is located.

Free text

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

AvailabilityTimeWindow - Localized Start Time - Timestamp اختیاری The epoch timestamp when the point of interest is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone اختیاری The timezone in which the point of interest is expected to be open/available. Joda-Time DateTimeZone
AvailabilityTimeWindow - Localized End Time - Timestamp اختیاری The epoch timestamp until which the point of interest is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone اختیاری The timezone in which the point of interest is expected to be open/available. Joda-Time DateTimeZone
نشان ها اختیاری

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 اختیاری

تصویر کوچک

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.
توضیحات اختیاری

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

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

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.

متن رایگان

Recommended text size for each subtitle: max 50 chars

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 point of interest.

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 point of interest.

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 tickets/entry pass for the point of interest.

Must be provided if strikethrough price is provided.

Free text
Price - StrikethroughPrice اختیاری The original price of the tickets/entry pass for the point of interest. Free text
Price Callout اختیاری Price callout to feature a promo, event, member discount, if available.

متن رایگان

Recommended text size: under 45 chars (Text that is too long may show ellipses)

دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Eligible Enums

  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_MOVIES_AND_TV_SHOWS (Example - theater)
  • TYPE_MEDICAL (Example - hospital)
  • TYPE_EDUCATION (Example - school)
  • TYPE_SPORTS (Example - stadium)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

RestaurantReservationEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Reservation Start Time - Timestamp مورد نیاز The epoch timestamp when the reservation is expected to start. Joda-Time Instant
Localized Reservation Start Time - Timezone مورد نیاز The timezone in which the reservation is expected to start. Joda-Time DateTimeZone
Location - Country مورد نیاز The country in which the restaurant is happening.

Free text

Recommended text size: max ~20 chars

Location - City مورد نیاز The city in which the restaurant is happening.

Free text

Recommended text size: max ~20 chars

Location - Display Address مورد نیاز The address of the prestaurant 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 restaurant.

Free text

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the restaurant is located.

Free text

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the restaurant.

Free text

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) of the restaurant.

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 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.

متن رایگان

Recommended text size: 180 chars

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

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

اندازه جدول اختیاری The number of people in the reservation group Integer > 0
DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

EventReservationEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Start time - Timestamp مورد نیاز

The epoch timestamp when the event is expected to start.

Joda-Time Instant
Localized Start time - Timezone مورد نیاز

The timezone in which the event is expected to start.

Joda-Time DateTimeZone
Event mode مورد نیاز

A field to indicate whether the event will be virtual, in-person or both.

Enum: VIRTUAL, IN_PERSON, or HYBRID
Location - Country Conditionally required

The country in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - Display Address 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.

متن رایگان

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.
Localized End time - Timestamp اختیاری

The epoch timestamp when the event is expected to end.

Joda-Time Instant
Localized End time - Timezone اختیاری

The timezone in which the event is expected to end.

Joda-Time DateTimeZone
Service Provider - Name اختیاری

The name of the service provider.

Note: Either text or image is required for the service provider.

متن رایگان. 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

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

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 اختیاری

تصویر کوچک

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. متن رایگان
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

  • TYPE_MOVIES_AND_TV_SHOWS (Example - Cinema)
  • TYPE_DIGITAL_GAMES (Example - eSports)
  • TYPE_MUSIC (Example - Concert)
  • TYPE_TRAVEL_AND_LOCAL (Example - Tour, festival)
  • TYPE_HEALTH_AND_FITENESS (Example - Yoga class)
  • TYPE_EDUCATION (Example - Class)
  • TYPE_SPORTS (Example - Football game)
  • TYPE_DATING (Example - meetup)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

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.

متن رایگان. For example, "Your Stay from Dec 12th"

Recommended text size: Max 50 chars

Localized Check-in Time - Timestamp مورد نیاز The epoch timestamp that represents the check in time for the reservation. Joda-Time Instant
Localized Check-in Time - Timezone مورد نیاز The timezone in which the check in time exists for the reservation. Joda-Time Instant
Localized Check-out Time - Timestamp مورد نیاز The epoch timestamp that represents the check out time for the reservation. Joda-Time Instant
Localized Check-out Time - Timezone مورد نیاز The timezone in which the check out time exists for the reservation. Joda-Time DateTimeZone
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 that will be displayed to the user. Provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue"). This string may be truncated depending on the user's device and settings. Include the city name for clear identification.

Free text

Recommended text size: max ~35 chars

Location - Street Address اختیاری The street address (if applicable) of the lodging.

متن رایگان

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

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

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. متن رایگان
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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

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.

متن رایگان. For example, "SFO to SAN"

Recommended text size: Max 50 chars

نوع حمل و نقل مورد نیاز The mode/type of transportation for the reservation. Enum: FLIGHT, TRAIN, BUS, or FERRY
Localized Departure Time - Timestamp مورد نیاز The epoch timestamp that represents the departure time. Joda-Time Instant
Localized Departure Time - Timezone مورد نیاز The timezone of the departure time. Joda-Time DateTimeZone
Localized Arrival Time - Timestamp مورد نیاز The epoch timestamp that represents the arrival time. Joda-Time Instant
Localized Arrival Time - Timezone مورد نیاز The timezone of the arrival time. Joda-Time DateTimeZone
Transportation Number مورد نیاز The flight number, bus number, train number, or ferry/cruise number. Free text
Localized Boarding Time - Timestamp مورد نیاز The epoch timestamp that represents the boarding time for the reservation (if applicable) Joda-Time Instant
Localized Boarding Time - Timezone مورد نیاز The timezone of the boarding time for the reservation (if applicable) Joda-Time DateTimeZone
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.

متن رایگان

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.

متن رایگان. 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

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

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.

متن رایگان
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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

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.

متن رایگان. For example, "Avis Union Square SF"

Recommended text size: Max 50 chars

Localized Pickup Time - Timestamp مورد نیاز The epoch timestamp that represents the pick up time for the reservation. Joda-Time Instant
Localized Pickup Time - Timezone مورد نیاز The timezone of the pick up time for the reservation. Joda-Time DateTimeZone
Localized Return Time - Timestamp اختیاری The epoch timestamp that represents the check out time for the reservation. Joda-Time Instant
Localized Return Time - Timezone اختیاری The timezone of the check out time for the reservation. Joda-Time DateTimeZone
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.

متن رایگان

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.

متن رایگان

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.

متن رایگان. 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

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

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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

مشخصات تصویر

Required specifications for image assets are listed in this table:

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

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

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

5120 کیلوبایت

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

  • 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.

دسته بندی محتوا

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

  1. 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.
  2. 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.
  3. The ContentCategory field is optional and should be left blank if the content doesn't belong to any of the categories mentioned earlier.

  4. 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).

AppEngageTravelClient is responsible for publishing clusters.

There are following APIs to publish clusters in the client:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishReservationCluster
  • publishContinueSearchCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteReservationCluster
  • deleteContinueSearchCluster
  • 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 RecommendationCluster data 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 FeaturedCluster data 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.

publishReservationCluster

This API is used to publish a ReservationCluster object.

کاتلین

client.publishReservationCluster(
    PublishReservationClusterRequest.Builder()
      .setReservationCluster(
        ReservationCluster.Builder()
          .addLodgingReservationEntity(lodgingReservationEntity)
          .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
          .addTransportationReservationEntity(transportationReservationEntity)
          .addEventReservationEntity(eventReservationEntity)
          .addRestaurantReservationEntity(restaurantReservationEntity)
          .build())
      .build())

جاوا

client.publishReservationCluster(
            new PublishReservationClusterRequest.Builder()
                .setReservationCluster(
                    new ReservationCluster.Builder()
                        .addLodgingReservationEntity(lodgingReservationEntity)
                        .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
                        .addTransportationReservationEntity(transportationReservationEntity)
                        .addEventReservationEntity(eventReservationEntity)
                        .addRestaurantReservationEntity(restaurantReservationEntity)
                        .build())
                .build());

When the service receives the request, the following actions take place within one transaction:

  • Existing ReservationCluster data from the developer partner is removed.
  • Data from the request is parsed and stored in the updated Reservation Cluster.

In case of an error, the entire request is rejected and the existing state is maintained.

publishContinueSearchCluster

This API is used to publish a list of ContinueSearchCluster objects.

کاتلین

client.publishContinueSearchCluster(
    PublishContinueSearchClusterRequest.Builder()
      .setContinueSearchCluster(
        ContinueSearchCluster.Builder()
          .addPointOfInterestEntity(entity1)
          .addPointOfInterestEntity(entity2)
          .build())
      .build())

جاوا

client.publishContinueSearchCluster(
            new PublishContinueSearchClusterRequest.Builder()
                .setContinueSearchCluster(
                    new ContinueSearchCluster.Builder()
                        .addPointOfInterestEntity(entity1)
                        .addPointOfInterestEntity(entity2)
                        .build())
                .build());

When the service receives the request, the following actions take place within one transaction:

  • Existing ContinueSearchCluster data from the developer partner is removed.
  • Data from the request is parsed and stored in the updated Continue Search 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
متن اقدام اختیاری 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 UserAccountManagementCluster data 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.

deleteReservationCluster

This API is used to delete the content of Reservation Cluster.

کاتلین

client.deleteReservationCluster()

جاوا

client.deleteReservationCluster();

When the service receives the request, it removes the existing data from the Reservation 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.

deleteContinueSearchCluster

This API is used to delete the content of Continue Search Cluster.

کاتلین

client.deleteContinueSearchCluster()

جاوا

client.deleteContinueSearchCluster();

When the service receives the request, it removes the existing data from the Continue Search 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_RESERVATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
      .build())

جاوا

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_RESERVATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
                .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.

کد خطا نام خطا توجه داشته باشید
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 BroadcastReceiver class using Context.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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
  // broadcast is received
  // Trigger reservation cluster publish when PUBLISH_RESERVATION broadcast is
  // received
}

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

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

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

// Register Continue Search Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH))

// Register Reservation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_RESERVATION))
}

جاوا

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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
// broadcast is received

// Trigger reservation cluster publish when PUBLISH_RESERVATION 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 Continue Search Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH));

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

}
  • Statically declare an implementation with the <receiver> tag in your AndroidManifest.xml file. 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: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.travel.PUBLISH_CONTINUE_SEARCH" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.travel.PUBLISH_RESERVATION" />
      </intent-filter>
   </receiver>
</application>

The following intents is sent by the service:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION It is recommended to start a publishRecommendationClusters call when receiving this intent.
  • com.google.android.engage.action.PUBLISH_FEATURED It is recommended to start a publishFeaturedCluster call when receiving this intent.
  • com.google.android.engage.action.travel.PUBLISH_CONTINUE_SEARCH It is recommended to start a publishContinueSearchCluster call when receiving this intent.
  • com.google.android.engage.action.travel.PUBLISH_RESERVATION It is recommended to start a publishReservationCluster call when receiving this intent.

Integration workflow

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.com and 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 , Reservation , and Continue Search clusters may be published and visible to users.
،

Google is building an on-device surface that organizes users' apps by verticals and enables a new immersive experience for personalized app content consumption and discovery. This fullscreen experience provides developer partners with an opportunity to showcase their best rich content in a dedicated channel outside of their app. This guide contains instructions for developer partners to integrate their travel & events content, using the Engage SDK to populate this new surface area.

Integration detail

اصطلاحات

This integration includes the following cluster types: Recommendation , Featured , Reservation and Continue Search .

  • Recommendation clusters show personalized travel & event suggestions from an individual developer partner. These recommendations can be personalized to the user or generalized (for example, trending items). Use these to surface articles, events, lodging, or places of interest recommendations.

    • A Recommendation cluster can be made of ArticleEntity , EventEntity , LodgingEntity , PointOfInterestEntity , or StoreEntity listings, but not a mix of different entity types.

    Your recommendations take the following structure:

    • Recommendation Cluster: A UI view that contains a group of recommendations from the same developer partner.

    • Entity: An object representing a single item in a cluster. This integration offers some entities that would be surfaced using the Recommendation Cluster:

      • ArticleEntity : ArticleEntity represents a recommendation for text-based content related to travel & events. It can be used for articles, blogposts, marketing content, news snippets, etc.

        Figure 1: UI showing a single ArticleEntity within Recommendations cluster.
      • EventEntity : EventEntity represents an event happening in the future. Event start time is a critical piece of information that needs to be conveyed to the users.

        Figure 2: UI showing a single EventEntity within Recommendations cluster.
      • LodgingEntity : LodgingEntity represents an accommodation, such as a hotel, apartment, vacation home for short term and long term rental.

        Figure 3: UI showing a single LodgingEntity within Recommendations cluster.
      • StoreEntity : StoreEntity represents a store, restaurant, cafe etc. It highlights content where a dining venue or store is the critical piece of information that needs to be conveyed to the users.

        Figure 4: UI showing a single StoreEntity within Recommendations cluster.
      • PointOfInterestEntity : PointOfInterestEntity represents a place of interest like, a gas station, event venue, theme park, museum, tourist attraction, hiking trail etc. It highlights content where location is a critical piece of information that needs to be conveyed to the users. It shouldn't be used for lodging, a store or a dining venue.

        Figure 5: UI showing a single PointOfInterestEntity within Recommendations cluster.
  • The Reservation cluster shows content recently engaged by users from multiple developer partners in a single UI grouping. Each developer partner will be allowed to broadcast a maximum of 10 entities in the Reservation cluster.

    Your reservation content can take the following structure:

    • RestaurantReservationEntity : RestaurantReservationEntity represents a reservation for a restaurant or cafe and helps users track upcoming or ongoing restaurant reservations.

      Figure 6. UI showing a single RestaurantReservationEntity within a Reservation cluster.
    • EventReservationEntity : EventReservationEntity represents a reservation for an event and helps users track upcoming or ongoing events reservations. Events could include, but not limited to the following:

      • Sports events like reservation for a football match
      • Gaming events like reservation for eSports
      • Entertainment events like reservation for movies in a cinema, concert, theater, book signing
      • Travel or point of interest reservations like guided tours, museum tickets
      • Social / Seminar / Conferences reservations
      • Education / Training sessions reservations
      Figure 7. UI showing a single EventReservationEntity within a Reservation cluster.
    • LodgingReservationEntity : LodgingEntityReservation represents a reservation for travel lodging and helps users track upcoming or ongoing hotel or vacation rental reservations.

      Figure 8. UI showing a single LodgingReservationEntity within a Reservation cluster.
    • TransportationReservationEntity : TransportationReservationEntity represents reservation for transportation by any mode and helps users track reservations for upcoming or ongoing flight, ferry, train, bus, ride-hailing, or cruise.

      Figure 9. UI showing a single TransportationReservationEntity within a Reservation cluster.
    • VehicleRentalReservationEntity : VehicleRentalReservationEntity represents vehicle rental reservation and helps users track upcoming or ongoing vehicle rental reservations.

      Figure 10. UI showing a single VehicleRentalReservationEntity within a Reservation cluster.
  • The Featured cluster showcases a selection of entities from multiple developer partners in one UI grouping. There will be a single Featured cluster, which is surfaced near the top of the UI with a priority placement above all Recommendation clusters. Each developer partner will be allowed to broadcast up to 10 entities in the Featured cluster.

    • GenericFeaturedEntity : GenericFeaturedEntity differs from Recommendation item in that Featured item should be used for a single top content from developers and should represent the single most important content that will be interesting and relevant to users.

      Figure 11: UI showing a FeaturedCluster with a list of GenericFeaturedEntity
  • The Continue Search cluster helps users resume their previous travel search journey by showcasing a list of search queries that the user has recently searched for across all their travel apps. The cluster will be pinned in second position, after reservations and before featured and recommendation clusters. Each developer partner will be allowed to broadcast up to 3 entities in the Continue Search cluster.

    • PointOfInterestEntity: PointOfInterestEntity represents a place of interest like, a gas station, event venue, theme park, museum, tourist attraction, hiking trail etc. It highlights content the user has previously searched for.

قبل از کار

Minimum API level: 19

Add the com.google.android.engage:engage-core library to your app:

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'
}

خلاصه

The design is based on an implementation of a bound service .

The data a client can publish is subject to the following limits for different cluster types:

نوع خوشه محدودیت های خوشه ای Minimum entity limits in a cluster Maximum entity limits in a cluster
Recommendation Cluster(s) At most 7 حداقل 1 At most 50 ( ArticleEntity , EventEntity , LodgingEntity , StoreEntity , or PointOfInterestEntity )
Reservation Cluster At most 1 حداقل 1 At most 20 ( RestaurantReservationEntity , EventReservationEntity , LodgingReservationEntity , TransportationReservationEntity , or VehicleRentalReservationEntity )
Featured Cluster At most 1 حداقل 1 At most 20 ( GenericFeaturedEntity )
Continue Search Cluster At most 1 حداقل 1 At most 3 ( PointOfInterestEntity )

Step 1: Provide entity data

The SDK has defined different entities to represent each item type. We support the following entities for the Travel & Events category:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. EventEntity
  4. LodgingEntity
  5. StoreEntity
  6. PointOfInterestEntity
  7. RestaurantReservationEntity
  8. EventReservationEntity
  9. LodgingReservationEntity
  10. TransportationReservationEntity
  11. VehicleRentalReservationEntity

The charts below outline available attributes and requirements for each type.

GenericFeaturedEntity

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

Deep Link to the entity in the provider app.

Note: You can use deep links for attribution. Refer to this FAQ

اوری
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.
عنوان اختیاری Title of the entity.

متن رایگان

Recommended text size: 50 chars

توضیحات اختیاری

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

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

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.

Special UX treatment on top of image/video, For example, as badge overlay on the image

  • "Live update"
  • Article read duration
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 اختیاری

تصویر کوچک

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.
دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Enums

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

ArticleEntity

صفت مورد نیاز توضیحات قالب
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

Recommended text size: Max 50 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.
Source - Title اختیاری The name of the author, organization, or reporter

Free text

Recommended text size: Under 25 chars

Source - Image اختیاری An image of the source like the author, the organization, reporter 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

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

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.

Special UX treatment on top of image/video, for example, as badge overlay on the image

  • "Live update"
  • Article read duration
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 اختیاری

تصویر کوچک

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.
Content Publish Time اختیاری This is the epoch timestamp in milliseconds on when the content was published / updated in the app. Epoch timestamp in milliseconds
Last Engagement Time Conditionally required

The epoch timestamp in milliseconds when the user interacted with this entity last time.

Note: This field is required if this entity is part of the reservation cluster.

Epoch timestamp in milliseconds
Progress Percentage Conditionally required

The percentage of the full content consumed by the user to date.

Note: This field is required if this entity is part of the reservation cluster.

An int value between 0~100 inclusive.
دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Enums

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

EventEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Start time - Timestamp مورد نیاز

The epoch timestamp when the event is expected to start.

Joda-Time Instant
Localized Start time - Timezone مورد نیاز

The timezone in which the event is expected to start.

Joda-Time DateTimeZone
Event mode مورد نیاز

A field to indicate whether the event will be virtual, in-person or both.

Enum: VIRTUAL, IN_PERSON, or HYBRID
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.
Location - Country Conditionally required

The country in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - Display Address 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

زمان پایان اختیاری

The epoch timestamp when the event is expected to end.

Note: This will be represented in milliseconds.

Epoch timestamp in milliseconds
توضیحات اختیاری

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

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

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 اختیاری

تصویر کوچک

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

دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Eligible Enums

  • TYPE_MOVIES_AND_TV_SHOWS (Example - Cinema)
  • TYPE_DIGITAL_GAMES (Example - eSports)
  • TYPE_MUSIC (Example - Concert)
  • TYPE_TRAVEL_AND_LOCAL (Example - Tour, festival)
  • TYPE_HEALTH_AND_FITENESS (Example - Yoga class)
  • TYPE_EDUCATION (Example - Class)
  • TYPE_SPORTS (Example - Football game)
  • TYPE_DATING (Example - meetup)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

LodgingEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 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.
Location - Country مورد نیاز The country in which the lodging is happening.

Free text

Recommended text size: max ~20 chars

Location - City مورد نیاز The city in which the lodging is happening.

Free text

Recommended text size: max ~20 chars

Location - Display Address مورد نیاز The address that will be displayed to the user. We recommend including the city name and possibly state or country for most use cases. Only include the street address or neighborhood if the user is near the location, the user is familiar with the location, or the city is included in the cluster title. If you include the street address, provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue").

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

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

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 اختیاری

تصویر کوچک

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.
توضیحات اختیاری

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

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

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

AvailabilityTimeWindow - Localized Start Time - Timestamp اختیاری The epoch timestamp when the lodging is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone اختیاری The timezone in which the lodging is expected to be open/available. Joda-Time DateTimeZone
AvailabilityTimeWindow - Localized End Time - Timestamp اختیاری The epoch timestamp until which the lodging is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone اختیاری The timezone in which the lodging is expected to be open/available. Joda-Time DateTimeZone
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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

StoreEntity

The StoreEntity object represents an individual store that developer partners want to publish, such as a popular dining place or eatery that are relevant to one's travel experience.

صفت مورد نیاز توضیحات قالب
Poster images مورد نیاز At least one image must be provided. See Image Specifications for guidance.
Action Uri مورد نیاز

Deep Link to the entity in the provider app.

Note: You can use deep links for attribution. Refer to this FAQ

اوری
عنوان اختیاری The name of the store.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

مکان اختیاری The location of the store.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

فراخوانی اختیاری Callout to feature a promo, event, or update for the store, if available.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

Callout fine print اختیاری Fine print text for the callout.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

توضیحات اختیاری A description of the store.

Free text

Recommended text size: under 90 chars (Text that is too long may show ellipses)

دسته بندی اختیاری

Category of a store, in the context of dining places, it can be cuisine like "french", "new american", "ramen", "fine dining".

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

طولانی
DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

PointOfInterestEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Poster images Conditionally required

We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9

Note: Image is required if the entity is part of recommendation cluster. 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.
Last Engagement Time Conditionally required

The epoch timestamp when the user last interacted with this entity.

Note: This field is required if the entity is part of continue search cluster.

Joda-Time Instant
Location - Country Conditionally required

The country in which the point of interest is happening.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the point of interest is happening.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~20 chars

Location - Display Address Conditionally required

The address that will be displayed to the user. Provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue"). This string may be truncated depending on the user's device and settings. Include the city name for clear identification.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~35 chars

Location - Street Address اختیاری The street address (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the point of interest is located.

Free text

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

AvailabilityTimeWindow - Localized Start Time - Timestamp اختیاری The epoch timestamp when the point of interest is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone اختیاری The timezone in which the point of interest is expected to be open/available. Joda-Time DateTimeZone
AvailabilityTimeWindow - Localized End Time - Timestamp اختیاری The epoch timestamp until which the point of interest is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone اختیاری The timezone in which the point of interest is expected to be open/available. Joda-Time DateTimeZone
نشان ها اختیاری

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 اختیاری

تصویر کوچک

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.
توضیحات اختیاری

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

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

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

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 point of interest.

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 point of interest.

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 tickets/entry pass for the point of interest.

Must be provided if strikethrough price is provided.

Free text
Price - StrikethroughPrice اختیاری The original price of the tickets/entry pass for the point of interest. 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)

دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Eligible Enums

  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_MOVIES_AND_TV_SHOWS (Example - theater)
  • TYPE_MEDICAL (Example - hospital)
  • TYPE_EDUCATION (Example - school)
  • TYPE_SPORTS (Example - stadium)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

RestaurantReservationEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Reservation Start Time - Timestamp مورد نیاز The epoch timestamp when the reservation is expected to start. Joda-Time Instant
Localized Reservation Start Time - Timezone مورد نیاز The timezone in which the reservation is expected to start. Joda-Time DateTimeZone
Location - Country مورد نیاز The country in which the restaurant is happening.

Free text

Recommended text size: max ~20 chars

Location - City مورد نیاز The city in which the restaurant is happening.

Free text

Recommended text size: max ~20 chars

Location - Display Address مورد نیاز The address of the prestaurant 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 restaurant.

Free text

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the restaurant is located.

Free text

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the restaurant.

Free text

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) of the restaurant.

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

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

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

اندازه جدول اختیاری The number of people in the reservation group Integer > 0
DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

EventReservationEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Start time - Timestamp مورد نیاز

The epoch timestamp when the event is expected to start.

Joda-Time Instant
Localized Start time - Timezone مورد نیاز

The timezone in which the event is expected to start.

Joda-Time DateTimeZone
Event mode مورد نیاز

A field to indicate whether the event will be virtual, in-person or both.

Enum: VIRTUAL, IN_PERSON, or HYBRID
Location - Country Conditionally required

The country in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

متن رایگان

Recommended text size: max ~20 chars

Location - Display Address 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.
Localized End time - Timestamp اختیاری

The epoch timestamp when the event is expected to end.

Joda-Time Instant
Localized End time - Timezone اختیاری

The timezone in which the event is expected to end.

Joda-Time DateTimeZone
Service Provider - Name اختیاری

The name of the service provider.

Note: Either text or image is required for the service provider.

متن رایگان. 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

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

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 اختیاری

تصویر کوچک

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

  • TYPE_MOVIES_AND_TV_SHOWS (Example - Cinema)
  • TYPE_DIGITAL_GAMES (Example - eSports)
  • TYPE_MUSIC (Example - Concert)
  • TYPE_TRAVEL_AND_LOCAL (Example - Tour, festival)
  • TYPE_HEALTH_AND_FITENESS (Example - Yoga class)
  • TYPE_EDUCATION (Example - Class)
  • TYPE_SPORTS (Example - Football game)
  • TYPE_DATING (Example - meetup)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

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.

متن رایگان. For example, "Your Stay from Dec 12th"

Recommended text size: Max 50 chars

Localized Check-in Time - Timestamp مورد نیاز The epoch timestamp that represents the check in time for the reservation. Joda-Time Instant
Localized Check-in Time - Timezone مورد نیاز The timezone in which the check in time exists for the reservation. Joda-Time Instant
Localized Check-out Time - Timestamp مورد نیاز The epoch timestamp that represents the check out time for the reservation. Joda-Time Instant
Localized Check-out Time - Timezone مورد نیاز The timezone in which the check out time exists for the reservation. Joda-Time DateTimeZone
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 that will be displayed to the user. Provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue"). This string may be truncated depending on the user's device and settings. Include the city name for clear identification.

Free text

Recommended text size: max ~35 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

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

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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

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.

متن رایگان. For example, "SFO to SAN"

Recommended text size: Max 50 chars

نوع حمل و نقل مورد نیاز The mode/type of transportation for the reservation. Enum: FLIGHT, TRAIN, BUS, or FERRY
Localized Departure Time - Timestamp مورد نیاز The epoch timestamp that represents the departure time. Joda-Time Instant
Localized Departure Time - Timezone مورد نیاز The timezone of the departure time. Joda-Time DateTimeZone
Localized Arrival Time - Timestamp مورد نیاز The epoch timestamp that represents the arrival time. Joda-Time Instant
Localized Arrival Time - Timezone مورد نیاز The timezone of the arrival time. Joda-Time DateTimeZone
Transportation Number مورد نیاز The flight number, bus number, train number, or ferry/cruise number. Free text
Localized Boarding Time - Timestamp مورد نیاز The epoch timestamp that represents the boarding time for the reservation (if applicable) Joda-Time Instant
Localized Boarding Time - Timezone مورد نیاز The timezone of the boarding time for the reservation (if applicable) Joda-Time DateTimeZone
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.

متن رایگان

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.

متن رایگان. 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.

متن رایگان

Recommended text size: 180 chars

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

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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

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.

متن رایگان. For example, "Avis Union Square SF"

Recommended text size: Max 50 chars

Localized Pickup Time - Timestamp مورد نیاز The epoch timestamp that represents the pick up time for the reservation. Joda-Time Instant
Localized Pickup Time - Timezone مورد نیاز The timezone of the pick up time for the reservation. Joda-Time DateTimeZone
Localized Return Time - Timestamp اختیاری The epoch timestamp that represents the check out time for the reservation. Joda-Time Instant
Localized Return Time - Timezone اختیاری The timezone of the check out time for the reservation. Joda-Time DateTimeZone
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.

متن رایگان

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.

متن رایگان. 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

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

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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

مشخصات تصویر

Required specifications for image assets are listed in this table:

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

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

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

5120 کیلوبایت

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

  • 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.

دسته بندی محتوا

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

  1. 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.
  2. 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.
  3. The ContentCategory field is optional and should be left blank if the content doesn't belong to any of the categories mentioned earlier.

  4. 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).

AppEngageTravelClient is responsible for publishing clusters.

There are following APIs to publish clusters in the client:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishReservationCluster
  • publishContinueSearchCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteReservationCluster
  • deleteContinueSearchCluster
  • 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 RecommendationCluster data 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 FeaturedCluster data 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.

publishReservationCluster

This API is used to publish a ReservationCluster object.

کاتلین

client.publishReservationCluster(
    PublishReservationClusterRequest.Builder()
      .setReservationCluster(
        ReservationCluster.Builder()
          .addLodgingReservationEntity(lodgingReservationEntity)
          .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
          .addTransportationReservationEntity(transportationReservationEntity)
          .addEventReservationEntity(eventReservationEntity)
          .addRestaurantReservationEntity(restaurantReservationEntity)
          .build())
      .build())

جاوا

client.publishReservationCluster(
            new PublishReservationClusterRequest.Builder()
                .setReservationCluster(
                    new ReservationCluster.Builder()
                        .addLodgingReservationEntity(lodgingReservationEntity)
                        .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
                        .addTransportationReservationEntity(transportationReservationEntity)
                        .addEventReservationEntity(eventReservationEntity)
                        .addRestaurantReservationEntity(restaurantReservationEntity)
                        .build())
                .build());

When the service receives the request, the following actions take place within one transaction:

  • Existing ReservationCluster data from the developer partner is removed.
  • Data from the request is parsed and stored in the updated Reservation Cluster.

In case of an error, the entire request is rejected and the existing state is maintained.

publishContinueSearchCluster

This API is used to publish a list of ContinueSearchCluster objects.

کاتلین

client.publishContinueSearchCluster(
    PublishContinueSearchClusterRequest.Builder()
      .setContinueSearchCluster(
        ContinueSearchCluster.Builder()
          .addPointOfInterestEntity(entity1)
          .addPointOfInterestEntity(entity2)
          .build())
      .build())

جاوا

client.publishContinueSearchCluster(
            new PublishContinueSearchClusterRequest.Builder()
                .setContinueSearchCluster(
                    new ContinueSearchCluster.Builder()
                        .addPointOfInterestEntity(entity1)
                        .addPointOfInterestEntity(entity2)
                        .build())
                .build());

When the service receives the request, the following actions take place within one transaction:

  • Existing ContinueSearchCluster data from the developer partner is removed.
  • Data from the request is parsed and stored in the updated Continue Search 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
متن اقدام اختیاری 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 UserAccountManagementCluster data 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.

deleteReservationCluster

This API is used to delete the content of Reservation Cluster.

کاتلین

client.deleteReservationCluster()

جاوا

client.deleteReservationCluster();

When the service receives the request, it removes the existing data from the Reservation 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.

deleteContinueSearchCluster

This API is used to delete the content of Continue Search Cluster.

کاتلین

client.deleteContinueSearchCluster()

جاوا

client.deleteContinueSearchCluster();

When the service receives the request, it removes the existing data from the Continue Search 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_RESERVATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
      .build())

جاوا

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_RESERVATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
                .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.

کد خطا نام خطا توجه داشته باشید
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 BroadcastReceiver class using Context.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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
  // broadcast is received
  // Trigger reservation cluster publish when PUBLISH_RESERVATION broadcast is
  // received
}

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

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

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

// Register Continue Search Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH))

// Register Reservation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_RESERVATION))
}

جاوا

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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
// broadcast is received

// Trigger reservation cluster publish when PUBLISH_RESERVATION 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 Continue Search Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH));

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

}
  • Statically declare an implementation with the <receiver> tag in your AndroidManifest.xml file. 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: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.travel.PUBLISH_CONTINUE_SEARCH" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.travel.PUBLISH_RESERVATION" />
      </intent-filter>
   </receiver>
</application>

The following intents is sent by the service:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION It is recommended to start a publishRecommendationClusters call when receiving this intent.
  • com.google.android.engage.action.PUBLISH_FEATURED It is recommended to start a publishFeaturedCluster call when receiving this intent.
  • com.google.android.engage.action.travel.PUBLISH_CONTINUE_SEARCH It is recommended to start a publishContinueSearchCluster call when receiving this intent.
  • com.google.android.engage.action.travel.PUBLISH_RESERVATION It is recommended to start a publishReservationCluster call when receiving this intent.

Integration workflow

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.com and 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 , Reservation , and Continue Search clusters may be published and visible to users.
،

Google is building an on-device surface that organizes users' apps by verticals and enables a new immersive experience for personalized app content consumption and discovery. This fullscreen experience provides developer partners with an opportunity to showcase their best rich content in a dedicated channel outside of their app. This guide contains instructions for developer partners to integrate their travel & events content, using the Engage SDK to populate this new surface area.

Integration detail

اصطلاحات

This integration includes the following cluster types: Recommendation , Featured , Reservation and Continue Search .

  • Recommendation clusters show personalized travel & event suggestions from an individual developer partner. These recommendations can be personalized to the user or generalized (for example, trending items). Use these to surface articles, events, lodging, or places of interest recommendations.

    • A Recommendation cluster can be made of ArticleEntity , EventEntity , LodgingEntity , PointOfInterestEntity , or StoreEntity listings, but not a mix of different entity types.

    Your recommendations take the following structure:

    • Recommendation Cluster: A UI view that contains a group of recommendations from the same developer partner.

    • Entity: An object representing a single item in a cluster. This integration offers some entities that would be surfaced using the Recommendation Cluster:

      • ArticleEntity : ArticleEntity represents a recommendation for text-based content related to travel & events. It can be used for articles, blogposts, marketing content, news snippets, etc.

        Figure 1: UI showing a single ArticleEntity within Recommendations cluster.
      • EventEntity : EventEntity represents an event happening in the future. Event start time is a critical piece of information that needs to be conveyed to the users.

        Figure 2: UI showing a single EventEntity within Recommendations cluster.
      • LodgingEntity : LodgingEntity represents an accommodation, such as a hotel, apartment, vacation home for short term and long term rental.

        Figure 3: UI showing a single LodgingEntity within Recommendations cluster.
      • StoreEntity : StoreEntity represents a store, restaurant, cafe etc. It highlights content where a dining venue or store is the critical piece of information that needs to be conveyed to the users.

        Figure 4: UI showing a single StoreEntity within Recommendations cluster.
      • PointOfInterestEntity : PointOfInterestEntity represents a place of interest like, a gas station, event venue, theme park, museum, tourist attraction, hiking trail etc. It highlights content where location is a critical piece of information that needs to be conveyed to the users. It shouldn't be used for lodging, a store or a dining venue.

        Figure 5: UI showing a single PointOfInterestEntity within Recommendations cluster.
  • The Reservation cluster shows content recently engaged by users from multiple developer partners in a single UI grouping. Each developer partner will be allowed to broadcast a maximum of 10 entities in the Reservation cluster.

    Your reservation content can take the following structure:

    • RestaurantReservationEntity : RestaurantReservationEntity represents a reservation for a restaurant or cafe and helps users track upcoming or ongoing restaurant reservations.

      Figure 6. UI showing a single RestaurantReservationEntity within a Reservation cluster.
    • EventReservationEntity : EventReservationEntity represents a reservation for an event and helps users track upcoming or ongoing events reservations. Events could include, but not limited to the following:

      • Sports events like reservation for a football match
      • Gaming events like reservation for eSports
      • Entertainment events like reservation for movies in a cinema, concert, theater, book signing
      • Travel or point of interest reservations like guided tours, museum tickets
      • Social / Seminar / Conferences reservations
      • Education / Training sessions reservations
      Figure 7. UI showing a single EventReservationEntity within a Reservation cluster.
    • LodgingReservationEntity : LodgingEntityReservation represents a reservation for travel lodging and helps users track upcoming or ongoing hotel or vacation rental reservations.

      Figure 8. UI showing a single LodgingReservationEntity within a Reservation cluster.
    • TransportationReservationEntity : TransportationReservationEntity represents reservation for transportation by any mode and helps users track reservations for upcoming or ongoing flight, ferry, train, bus, ride-hailing, or cruise.

      Figure 9. UI showing a single TransportationReservationEntity within a Reservation cluster.
    • VehicleRentalReservationEntity : VehicleRentalReservationEntity represents vehicle rental reservation and helps users track upcoming or ongoing vehicle rental reservations.

      Figure 10. UI showing a single VehicleRentalReservationEntity within a Reservation cluster.
  • The Featured cluster showcases a selection of entities from multiple developer partners in one UI grouping. There will be a single Featured cluster, which is surfaced near the top of the UI with a priority placement above all Recommendation clusters. Each developer partner will be allowed to broadcast up to 10 entities in the Featured cluster.

    • GenericFeaturedEntity : GenericFeaturedEntity differs from Recommendation item in that Featured item should be used for a single top content from developers and should represent the single most important content that will be interesting and relevant to users.

      Figure 11: UI showing a FeaturedCluster with a list of GenericFeaturedEntity
  • The Continue Search cluster helps users resume their previous travel search journey by showcasing a list of search queries that the user has recently searched for across all their travel apps. The cluster will be pinned in second position, after reservations and before featured and recommendation clusters. Each developer partner will be allowed to broadcast up to 3 entities in the Continue Search cluster.

    • PointOfInterestEntity: PointOfInterestEntity represents a place of interest like, a gas station, event venue, theme park, museum, tourist attraction, hiking trail etc. It highlights content the user has previously searched for.

قبل از کار

Minimum API level: 19

Add the com.google.android.engage:engage-core library to your app:

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'
}

خلاصه

The design is based on an implementation of a bound service .

The data a client can publish is subject to the following limits for different cluster types:

نوع خوشه محدودیت های خوشه ای Minimum entity limits in a cluster Maximum entity limits in a cluster
Recommendation Cluster(s) At most 7 حداقل 1 At most 50 ( ArticleEntity , EventEntity , LodgingEntity , StoreEntity , or PointOfInterestEntity )
Reservation Cluster At most 1 حداقل 1 At most 20 ( RestaurantReservationEntity , EventReservationEntity , LodgingReservationEntity , TransportationReservationEntity , or VehicleRentalReservationEntity )
Featured Cluster At most 1 حداقل 1 At most 20 ( GenericFeaturedEntity )
Continue Search Cluster At most 1 حداقل 1 At most 3 ( PointOfInterestEntity )

Step 1: Provide entity data

The SDK has defined different entities to represent each item type. We support the following entities for the Travel & Events category:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. EventEntity
  4. LodgingEntity
  5. StoreEntity
  6. PointOfInterestEntity
  7. RestaurantReservationEntity
  8. EventReservationEntity
  9. LodgingReservationEntity
  10. TransportationReservationEntity
  11. VehicleRentalReservationEntity

The charts below outline available attributes and requirements for each type.

GenericFeaturedEntity

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

Deep Link to the entity in the provider app.

Note: You can use deep links for attribution. Refer to this FAQ

اوری
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.
عنوان اختیاری Title of the entity.

متن رایگان

Recommended text size: 50 chars

توضیحات اختیاری

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

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

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.

Special UX treatment on top of image/video, For example, as badge overlay on the image

  • "Live update"
  • Article read duration
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 اختیاری

تصویر کوچک

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.
دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Enums

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

ArticleEntity

صفت مورد نیاز توضیحات قالب
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

Recommended text size: Max 50 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.
Source - Title اختیاری The name of the author, organization, or reporter

Free text

Recommended text size: Under 25 chars

Source - Image اختیاری An image of the source like the author, the organization, reporter 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

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

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.

Special UX treatment on top of image/video, for example, as badge overlay on the image

  • "Live update"
  • Article read duration
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 اختیاری

تصویر کوچک

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.
Content Publish Time اختیاری This is the epoch timestamp in milliseconds on when the content was published / updated in the app. Epoch timestamp in milliseconds
Last Engagement Time Conditionally required

The epoch timestamp in milliseconds when the user interacted with this entity last time.

Note: This field is required if this entity is part of the reservation cluster.

Epoch timestamp in milliseconds
Progress Percentage Conditionally required

The percentage of the full content consumed by the user to date.

Note: This field is required if this entity is part of the reservation cluster.

An int value between 0~100 inclusive.
دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Enums

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

EventEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Start time - Timestamp مورد نیاز

The epoch timestamp when the event is expected to start.

Joda-Time Instant
Localized Start time - Timezone مورد نیاز

The timezone in which the event is expected to start.

Joda-Time DateTimeZone
Event mode مورد نیاز

A field to indicate whether the event will be virtual, in-person or both.

Enum: VIRTUAL, IN_PERSON, or HYBRID
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.
Location - Country Conditionally required

The country in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - Display Address 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.

متن رایگان

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

زمان پایان اختیاری

The epoch timestamp when the event is expected to end.

Note: This will be represented in milliseconds.

Epoch timestamp in milliseconds
توضیحات اختیاری

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

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

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 اختیاری

تصویر کوچک

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

دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Eligible Enums

  • TYPE_MOVIES_AND_TV_SHOWS (Example - Cinema)
  • TYPE_DIGITAL_GAMES (Example - eSports)
  • TYPE_MUSIC (Example - Concert)
  • TYPE_TRAVEL_AND_LOCAL (Example - Tour, festival)
  • TYPE_HEALTH_AND_FITENESS (Example - Yoga class)
  • TYPE_EDUCATION (Example - Class)
  • TYPE_SPORTS (Example - Football game)
  • TYPE_DATING (Example - meetup)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

LodgingEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 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.
Location - Country مورد نیاز The country in which the lodging is happening.

Free text

Recommended text size: max ~20 chars

Location - City مورد نیاز The city in which the lodging is happening.

Free text

Recommended text size: max ~20 chars

Location - Display Address مورد نیاز The address that will be displayed to the user. We recommend including the city name and possibly state or country for most use cases. Only include the street address or neighborhood if the user is near the location, the user is familiar with the location, or the city is included in the cluster title. If you include the street address, provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue").

متن رایگان

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

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

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 اختیاری

تصویر کوچک

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.
توضیحات اختیاری

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

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

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

AvailabilityTimeWindow - Localized Start Time - Timestamp اختیاری The epoch timestamp when the lodging is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone اختیاری The timezone in which the lodging is expected to be open/available. Joda-Time DateTimeZone
AvailabilityTimeWindow - Localized End Time - Timestamp اختیاری The epoch timestamp until which the lodging is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone اختیاری The timezone in which the lodging is expected to be open/available. Joda-Time DateTimeZone
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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

StoreEntity

The StoreEntity object represents an individual store that developer partners want to publish, such as a popular dining place or eatery that are relevant to one's travel experience.

صفت مورد نیاز توضیحات قالب
Poster images مورد نیاز At least one image must be provided. See Image Specifications for guidance.
Action Uri مورد نیاز

Deep Link to the entity in the provider app.

Note: You can use deep links for attribution. Refer to this FAQ

اوری
عنوان اختیاری The name of the store.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

مکان اختیاری The location of the store.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

فراخوانی اختیاری Callout to feature a promo, event, or update for the store, if available.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

Callout fine print اختیاری Fine print text for the callout.

Free text

Recommended text size: under 45 chars (Text that is too long may show ellipses)

توضیحات اختیاری A description of the store.

متن رایگان

Recommended text size: under 90 chars (Text that is too long may show ellipses)

دسته بندی اختیاری

Category of a store, in the context of dining places, it can be cuisine like "french", "new american", "ramen", "fine dining".

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

طولانی
DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

PointOfInterestEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Poster images Conditionally required

We will show only 1 image when multiple images are provided. Recommended aspect ratio is 16:9

Note: Image is required if the entity is part of recommendation cluster. 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.
Last Engagement Time Conditionally required

The epoch timestamp when the user last interacted with this entity.

Note: This field is required if the entity is part of continue search cluster.

Joda-Time Instant
Location - Country Conditionally required

The country in which the point of interest is happening.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the point of interest is happening.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~20 chars

Location - Display Address Conditionally required

The address that will be displayed to the user. Provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue"). This string may be truncated depending on the user's device and settings. Include the city name for clear identification.

Note: This field is required if the entity is part of recommendation cluster.

Free text

Recommended text size: max ~35 chars

Location - Street Address اختیاری The street address (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the point of interest is located.

Free text

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) of the point of interest.

Free text

Recommended text size: max ~20 chars

AvailabilityTimeWindow - Localized Start Time - Timestamp اختیاری The epoch timestamp when the point of interest is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized Start Time - Timezone اختیاری The timezone in which the point of interest is expected to be open/available. Joda-Time DateTimeZone
AvailabilityTimeWindow - Localized End Time - Timestamp اختیاری The epoch timestamp until which the point of interest is expected to be open/available. Joda-Time Instant
AvailabilityTimeWindow - Localized End Time - Timezone اختیاری The timezone in which the point of interest is expected to be open/available. Joda-Time DateTimeZone
نشان ها اختیاری

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

متن رایگان

Recommended text size: max 15 chars

Badge - 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.
توضیحات اختیاری

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

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

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

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 point of interest.

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 point of interest.

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 tickets/entry pass for the point of interest.

Must be provided if strikethrough price is provided.

Free text
Price - StrikethroughPrice اختیاری The original price of the tickets/entry pass for the point of interest. 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)

دسته بندی های محتوا اختیاری Describe the category of the content in the entity.

List of Eligible Enums

  • TYPE_TRAVEL_AND_LOCAL
  • TYPE_MOVIES_AND_TV_SHOWS (Example - theater)
  • TYPE_MEDICAL (Example - hospital)
  • TYPE_EDUCATION (Example - school)
  • TYPE_SPORTS (Example - stadium)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

RestaurantReservationEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Reservation Start Time - Timestamp مورد نیاز The epoch timestamp when the reservation is expected to start. Joda-Time Instant
Localized Reservation Start Time - Timezone مورد نیاز The timezone in which the reservation is expected to start. Joda-Time DateTimeZone
Location - Country مورد نیاز The country in which the restaurant is happening.

Free text

Recommended text size: max ~20 chars

Location - City مورد نیاز The city in which the restaurant is happening.

Free text

Recommended text size: max ~20 chars

Location - Display Address مورد نیاز The address of the prestaurant that will be displayed to the user.

متن رایگان

Recommended text size: max ~20 chars

Location - Street Address اختیاری The street address (if applicable) of the restaurant.

Free text

Recommended text size: max ~20 chars

Location - State اختیاری The state or province (if applicable) in which the restaurant is located.

Free text

Recommended text size: max ~20 chars

Location - Zip code اختیاری The zip code (if applicable) of the restaurant.

Free text

Recommended text size: max ~20 chars

Location - Neighborhood اختیاری The neighborhood (if applicable) of the restaurant.

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 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.

متن رایگان

Recommended text size: 180 chars

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

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

اندازه جدول اختیاری The number of people in the reservation group Integer > 0
DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

EventReservationEntity

صفت مورد نیاز توضیحات قالب
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.

رشته

Recommended text size: Max 50 chars

Localized Start time - Timestamp مورد نیاز

The epoch timestamp when the event is expected to start.

Joda-Time Instant
Localized Start time - Timezone مورد نیاز

The timezone in which the event is expected to start.

Joda-Time DateTimeZone
Event mode مورد نیاز

A field to indicate whether the event will be virtual, in-person or both.

Enum: VIRTUAL, IN_PERSON, or HYBRID
Location - Country Conditionally required

The country in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - City Conditionally required

The city in which the event is happening.

Note: This is required for events which are IN_PERSON or HYBRID

Free text

Recommended text size: max ~20 chars

Location - Display Address 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.
Localized End time - Timestamp اختیاری

The epoch timestamp when the event is expected to end.

Joda-Time Instant
Localized End time - Timezone اختیاری

The timezone in which the event is expected to end.

Joda-Time DateTimeZone
Service Provider - Name اختیاری

The name of the service provider.

Note: Either text or image is required for the service provider.

متن رایگان. 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.

متن رایگان

Recommended text size: 180 chars

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

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 اختیاری

تصویر کوچک

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

  • TYPE_MOVIES_AND_TV_SHOWS (Example - Cinema)
  • TYPE_DIGITAL_GAMES (Example - eSports)
  • TYPE_MUSIC (Example - Concert)
  • TYPE_TRAVEL_AND_LOCAL (Example - Tour, festival)
  • TYPE_HEALTH_AND_FITENESS (Example - Yoga class)
  • TYPE_EDUCATION (Example - Class)
  • TYPE_SPORTS (Example - Football game)
  • TYPE_DATING (Example - meetup)

See the Content Category section for guidance.

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

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.

متن رایگان. For example, "Your Stay from Dec 12th"

Recommended text size: Max 50 chars

Localized Check-in Time - Timestamp مورد نیاز The epoch timestamp that represents the check in time for the reservation. Joda-Time Instant
Localized Check-in Time - Timezone مورد نیاز The timezone in which the check in time exists for the reservation. Joda-Time Instant
Localized Check-out Time - Timestamp مورد نیاز The epoch timestamp that represents the check out time for the reservation. Joda-Time Instant
Localized Check-out Time - Timezone مورد نیاز The timezone in which the check out time exists for the reservation. Joda-Time DateTimeZone
Location - Country مورد نیاز The country in which the lodging is located.

متن رایگان

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 that will be displayed to the user. Provide a succinct address, using abbreviations where possible (for example, "St" for "Street", "Ave" for "Avenue"). This string may be truncated depending on the user's device and settings. Include the city name for clear identification.

Free text

Recommended text size: max ~35 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

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

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.

متن رایگان

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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

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.

متن رایگان. For example, "SFO to SAN"

Recommended text size: Max 50 chars

نوع حمل و نقل مورد نیاز The mode/type of transportation for the reservation. Enum: FLIGHT, TRAIN, BUS, or FERRY
Localized Departure Time - Timestamp مورد نیاز The epoch timestamp that represents the departure time. Joda-Time Instant
Localized Departure Time - Timezone مورد نیاز The timezone of the departure time. Joda-Time DateTimeZone
Localized Arrival Time - Timestamp مورد نیاز The epoch timestamp that represents the arrival time. Joda-Time Instant
Localized Arrival Time - Timezone مورد نیاز The timezone of the arrival time. Joda-Time DateTimeZone
Transportation Number مورد نیاز The flight number, bus number, train number, or ferry/cruise number. Free text
Localized Boarding Time - Timestamp مورد نیاز The epoch timestamp that represents the boarding time for the reservation (if applicable) Joda-Time Instant
Localized Boarding Time - Timezone مورد نیاز The timezone of the boarding time for the reservation (if applicable) Joda-Time DateTimeZone
Departure Location - Country اختیاری The country of departure.

Free text

Recommended text size: max ~20 chars

Departure Location - City اختیاری The city of departure.

متن رایگان

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.

متن رایگان

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.

متن رایگان. 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

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

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. متن رایگان
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)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

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.

متن رایگان. For example, "Avis Union Square SF"

Recommended text size: Max 50 chars

Localized Pickup Time - Timestamp مورد نیاز The epoch timestamp that represents the pick up time for the reservation. Joda-Time Instant
Localized Pickup Time - Timezone مورد نیاز The timezone of the pick up time for the reservation. Joda-Time DateTimeZone
Localized Return Time - Timestamp اختیاری The epoch timestamp that represents the check out time for the reservation. Joda-Time Instant
Localized Return Time - Timezone اختیاری The timezone of the check out time for the reservation. Joda-Time DateTimeZone
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.

متن رایگان

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.

متن رایگان

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.

متن رایگان. 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

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

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.

متن رایگان

Recommended text size: under 45 chars (Text that is too long may show ellipses)

DisplayTimeWindow (Optional) - Set a time window for a content to be shown on the surface
Start Timestamp اختیاری

The epoch timestamp after which the content should be shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds
End Timestamp اختیاری

The epoch timestamp after which the content is no longer shown on the surface.

If not set, content is eligible to be shown on the surface.

Epoch timestamp in milliseconds

مشخصات تصویر

Required specifications for image assets are listed in this table:

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

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

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

5120 کیلوبایت

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

  • 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.

دسته بندی محتوا

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

  1. 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.
  2. 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.
  3. The ContentCategory field is optional and should be left blank if the content doesn't belong to any of the categories mentioned earlier.

  4. 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).

AppEngageTravelClient is responsible for publishing clusters.

There are following APIs to publish clusters in the client:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishReservationCluster
  • publishContinueSearchCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteReservationCluster
  • deleteContinueSearchCluster
  • 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 RecommendationCluster data 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 FeaturedCluster data 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.

publishReservationCluster

This API is used to publish a ReservationCluster object.

کاتلین

client.publishReservationCluster(
    PublishReservationClusterRequest.Builder()
      .setReservationCluster(
        ReservationCluster.Builder()
          .addLodgingReservationEntity(lodgingReservationEntity)
          .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
          .addTransportationReservationEntity(transportationReservationEntity)
          .addEventReservationEntity(eventReservationEntity)
          .addRestaurantReservationEntity(restaurantReservationEntity)
          .build())
      .build())

جاوا

client.publishReservationCluster(
            new PublishReservationClusterRequest.Builder()
                .setReservationCluster(
                    new ReservationCluster.Builder()
                        .addLodgingReservationEntity(lodgingReservationEntity)
                        .addVehicleRentalReservationEntity(vehicleRentalReservationEntity)
                        .addTransportationReservationEntity(transportationReservationEntity)
                        .addEventReservationEntity(eventReservationEntity)
                        .addRestaurantReservationEntity(restaurantReservationEntity)
                        .build())
                .build());

When the service receives the request, the following actions take place within one transaction:

  • Existing ReservationCluster data from the developer partner is removed.
  • Data from the request is parsed and stored in the updated Reservation Cluster.

In case of an error, the entire request is rejected and the existing state is maintained.

publishContinueSearchCluster

This API is used to publish a list of ContinueSearchCluster objects.

کاتلین

client.publishContinueSearchCluster(
    PublishContinueSearchClusterRequest.Builder()
      .setContinueSearchCluster(
        ContinueSearchCluster.Builder()
          .addPointOfInterestEntity(entity1)
          .addPointOfInterestEntity(entity2)
          .build())
      .build())

جاوا

client.publishContinueSearchCluster(
            new PublishContinueSearchClusterRequest.Builder()
                .setContinueSearchCluster(
                    new ContinueSearchCluster.Builder()
                        .addPointOfInterestEntity(entity1)
                        .addPointOfInterestEntity(entity2)
                        .build())
                .build());

When the service receives the request, the following actions take place within one transaction:

  • Existing ContinueSearchCluster data from the developer partner is removed.
  • Data from the request is parsed and stored in the updated Continue Search 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
متن اقدام اختیاری 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 UserAccountManagementCluster data 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.

deleteReservationCluster

This API is used to delete the content of Reservation Cluster.

کاتلین

client.deleteReservationCluster()

جاوا

client.deleteReservationCluster();

When the service receives the request, it removes the existing data from the Reservation 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.

deleteContinueSearchCluster

This API is used to delete the content of Continue Search Cluster.

کاتلین

client.deleteContinueSearchCluster()

جاوا

client.deleteContinueSearchCluster();

When the service receives the request, it removes the existing data from the Continue Search 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_RESERVATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
      .build())

جاوا

client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_RESERVATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .addClusterType(ClusterType.TYPE_CONTINUE_SEARCH)
                .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.

کد خطا نام خطا توجه داشته باشید
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 BroadcastReceiver class using Context.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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
  // broadcast is received
  // Trigger reservation cluster publish when PUBLISH_RESERVATION broadcast is
  // received
}

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

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

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

// Register Continue Search Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH))

// Register Reservation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_RESERVATION))
}

جاوا

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 continue search cluster publish when PUBLISH_CONTINUE_SEARCH
// broadcast is received

// Trigger reservation cluster publish when PUBLISH_RESERVATION 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 Continue Search Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.travel.service.Intents.ACTION_PUBLISH_CONTINUE_SEARCH));

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

}
  • Statically declare an implementation with the <receiver> tag in your AndroidManifest.xml file. 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: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.travel.PUBLISH_CONTINUE_SEARCH" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.travel.PUBLISH_RESERVATION" />
      </intent-filter>
   </receiver>
</application>

The following intents is sent by the service:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION It is recommended to start a publishRecommendationClusters call when receiving this intent.
  • com.google.android.engage.action.PUBLISH_FEATURED It is recommended to start a publishFeaturedCluster call when receiving this intent.
  • com.google.android.engage.action.travel.PUBLISH_CONTINUE_SEARCH It is recommended to start a publishContinueSearchCluster call when receiving this intent.
  • com.google.android.engage.action.travel.PUBLISH_RESERVATION It is recommended to start a publishReservationCluster call when receiving this intent.

Integration workflow

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.com and 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 , Reservation , and Continue Search clusters may be published and visible to users.