نمای کلی

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

پیشنهادات

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

نمونه‌هایی از پیشنهادها:

  • پیش‌غذاهای نیمه‌تعطیل در روزهای چهارشنبه و پنجشنبه در ماه دسامبر از ساعت ۱۲ ظهر تا ۵ عصر
  • با خرید یک عدد، یک دسر رایگان برای شام روز مادر از ساعت ۶ عصر تا ۱۰ شب دریافت کنید.
  • ۵ دلار تخفیف برای غذای اصلی صبحانه هر یکشنبه از ساعت ۱۰ صبح تا ۲ بعد از ظهر
  • ۱۰٪ تخفیف برای خرید حضوری، قابل ترکیب با ۵٪ تخفیف برای مشترکین ویژه و ۵٪ تخفیف در صورتی که کاربر از طریق اپلیکیشن شما پرداخت کند.

برای اینکه یک پیشنهاد در ادغام گنجانده شود، باید در مدل داده‌های فنی جای بگیرد و همچنین الزامات واجد شرایط بودن ما را برآورده کند. حتماً سیاست‌های پیشنهادات ما را بررسی کنید تا مطمئن شوید که ادغام شما مطابق با آن است و دستورالعمل‌هایی در مورد نحوه برخورد با پیشنهادهایی که با الزامات فنی مطابقت ندارند، دریافت کنید.

اجرا را پیشنهاد می‌دهد

ادغام پیشنهادات شامل دو فید است که روزانه یا با فرکانسی بارگذاری می‌شوند که دقت بالایی را تضمین می‌کند (به این معنی که ماندگاری را کاهش می‌دهد):

پیشنهاد ویژه

نام فیلد نوع مورد نیاز توضیحات
data آرایه ای از اشیاء
(Offer)

پیشنهاد

نام فیلد نوع مورد نیاز توضیحات
offer_id رشته

مورد نیاز

شناسه منحصر به فرد پیشنهاد. الزامی.
entity_ids آرایه‌ای از رشته

لیست فروشگاه‌هایی که در این طرح شرکت می‌کنند.
add_on_offer_applicable_to_all_entities بولی

در صورت صحت، این پیشنهاد برای همه نهادهای تحت پوشش تجمیع‌کننده قابل اجرا است. فقط برای پیشنهادهای اضافی قابل اجرا است.
offer_source شمارشی
(OfferSource)

مورد نیاز

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

مورد نیاز

سرویسی که پیشنهاد را ارائه می‌دهد. یک offer_id می‌تواند فقط به یک action_type تعلق داشته باشد. اگر یک پیشنهاد بتواند بین چندین نوع سرویس به اشتراک گذاشته شود، انتظار می‌رود که برای هر نوع سرویس، پیشنهادهای تکراری با شناسه‌های منحصر به فرد ایجاد شود. الزامی است.
offer_modes آرایه شمارشی (enum)
(OfferMode)

مورد نیاز

روش‌های استفاده از این پیشنهاد - مراجعه حضوری، رزرو، آنلاین و غیره - الزامی است.
offer_category شمارشی
(OfferCategory)

مورد نیاز

دسته بندی پیشنهاد. الزامی.
source_assigned_priority شماره

عدد صحیح غیرمنفی ([1-100]، که در آن 1 نشان دهنده بالاترین اولویت است) که نشان دهنده سطح اولویت پیشنهاد اختصاص داده شده توسط منبع است. هنگامی که چندین پیشنهاد برای یک فروشنده در دسترس باشد، این یک سیگنال برای رتبه بندی پیشنهادات خواهد بود. 0 نشان دهنده عدم تعیین اولویت است.
offer_details شیء
(OfferDetails)

مورد نیاز

جزئیات پیشنهاد مانند تخفیف، هزینه رزرو و غیره الزامی است.
offer_restrictions شیء
(OfferRestrictions)

مورد نیاز

شرح می‌دهد که این پیشنهاد چگونه محدود شده است، مثلاً اینکه آیا به ابزار اشتراک/پرداخت نیاز است، آیا این پیشنهاد را می‌توان با سایر پیشنهادها (و چه نوع‌هایی) ترکیب کرد و غیره. الزامی است.
coupon شیء
(Coupon)

جزئیات کوپن. برای دسته بندی پیشنهاد الزامی است: OFFER_CATEGORY_ADD_ON_COUPON_OFFER.
payment_instrument شیء
(PaymentInstrument)

جزئیات یک ابزار پرداخت. مورد نیاز برای دسته بندی پیشنهاد: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
subscription شیء
(Subscription)

جزئیات اشتراک. برای دسته بندی پیشنهاد الزامی است: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER.
terms شیء
(Terms)

مورد نیاز

شرایط و ضوابط پیشنهاد. الزامی.
validity_periods آرایه ای از اشیاء
(ValidityPeriod)

مورد نیاز

مدت اعتبار پیشنهاد. مدت زمانی که پیشنهاد معتبر است را شرح می‌دهد، از جمله زمان شروع و پایان، روزهای هفته و غیره. الزامی است.
offer_url رشته

آدرس اینترنتی (URL) صفحه پیشنهاد فروشنده. برای دسته بندی پیشنهاد، OFFER_CATEGORY_BASE_OFFER الزامی است.
image_url رشته

نشانی اینترنتی (URL) تصویر پیشنهاد فروشنده.
tags آرایه شمارشی (enum)
(OfferTag)

برچسب‌های ویژه مرتبط با پیشنهاد. این مورد برای شناسایی پیشنهادهای ویژه مانند «جشن»، «پرامتیازترین»، «پررزروترین» و غیره استفاده می‌شود.

جزئیات پیشنهاد

نام فیلد نوع مورد نیاز توضیحات
offer_display_text رشته

مورد نیاز

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

مورد نیاز

فقط یکی از فیلدهای این oneOf قابل تنظیم است.
max_discount_value شیء
(Money)

حداکثر تخفیفی که می‌توان از آن استفاده کرد. به عنوان مثال، 10٪ تخفیف تا سقف 100 دلار.
min_spend_value شیء
(Money)

حداقل مبلغ قابل پرداخت برای استفاده از تخفیف. به عنوان مثال، 10٪ تخفیف وقتی قیمت کل 100 دلار یا بیشتر باشد.
booking_cost شیء
(Money)

هزینه رزرو این پیشنهاد. به عنوان مثال، ۱۰۰ دلار تخفیف از صورتحساب نهایی در صورت رزرو میز با هزینه ۱۵ دلار.
booking_cost_unit شمارشی
(FeeUnit)

واحد هزینه رزرو. به عنوان مثال، به ازای هر نفر، به ازای هر تراکنش.
convenience_fee شیء
(Fee)

booking_cost_adjustable بولی

آیا هزینه رزرو قابل تنظیم است، یعنی هزینه رزرو از صورتحساب نهایی کسر می‌شود؟ برای مثال: 30٪ تخفیف شام با رزرو. هزینه رزرو 15 دلار است و در صورتحساب نهایی اعمال می‌شود. بنابراین صورتحساب نهایی: کل هزینه - 30٪ - 15 دلار
additional_fees آرایه ای از اشیاء
(AdditionalFee)

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

پول

نشان دهنده مقدار پول به همراه نوع ارز آن است.

نام فیلد نوع مورد نیاز توضیحات
currency_code رشته

کد ارزی سه حرفی که در استاندارد ISO 4217 تعریف شده است.
units رشته

کل واحدهای مبلغ. برای مثال اگر currencyCode برابر با "USD" باشد، هر واحد برابر با یک دلار آمریکا است.
nanos شماره

تعداد نانو (10^-9) واحد از مبلغ. مقدار باید بین -999,999,999 و +999,999,999 باشد. اگر units مثبت باشد، nanos باید مثبت یا صفر باشد. اگر units صفر باشد، nanos می‌تواند مثبت، صفر یا منفی باشد. اگر units منفی باشد، nanos باید منفی یا صفر باشد. به عنوان مثال، -1.75 دلار به صورت units = -1 و nanos = -750,000,000 نمایش داده می‌شود.

هزینه

نام فیلد نوع مورد نیاز توضیحات
unit شمارشی
(FeeUnit)

type شمارشی
(FeeType)

یکی از
(cost)

فقط یکی از فیلدهای این oneOf قابل تنظیم است.

مانی رنج

نام فیلد نوع مورد نیاز توضیحات
min_amount شیء
(Money)

max_amount شیء
(Money)

هزینه اضافی

نام فیلد نوع مورد نیاز توضیحات
name رشته

مورد نیاز

نام هزینه اضافی. مثال‌ها: هزینه رفاهی، هزینه جابجایی و غیره. الزامی است.
fee شیء
(Fee)

محدودیت‌های پیشنهاد

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

آیا این پیشنهاد می‌تواند با سایر پیشنهادها ترکیب شود؟ وقتی مقدار آن درست باشد، شرکا می‌توانند مشخص کنند که این پیشنهاد با چه پیشنهادهایی قابل ترکیب است. اگر هر دو combinable_offer_categories و combinable_offer_ids تنظیم شوند، هر پیشنهادی که با یکی از شرایط بالا مطابقت داشته باشد، قابل ترکیب خواهد بود.
combinable_offer_categories آرایه شمارشی (enum)
(OfferCategory)

فهرست انواع پیشنهادهایی که این پیشنهاد می‌تواند با آنها ترکیب شود. برای مثال، این پیشنهاد ممکن است با کوپن‌های دیگر قابل ترکیب باشد. اگر combinable_with_other_offers مقدار true داشته باشد و این فیلد تنظیم نشده باشد، همه انواع قابل ترکیب خواهند بود.
combinable_offer_ids آرایه‌ای از رشته

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

فهرست شرایطی که باید برای معتبر بودن پیشنهاد رعایت شوند (مثلاً نوشیدنی‌های غیرالکلی، غذا).
exclusions آرایه ای از اشیاء
(OfferCondition)

فهرست شرایطی که پیشنهاد را باطل می‌کند (مثلاً بوفه، پیشنهادهای ترکیبی و کوکتل).
min_guest شماره

حداقل تعداد نفرات مورد نیاز برای استفاده از پیشنهاد.
food_offer_restrictions شیء
(FoodOfferRestrictions)

محدودیت‌های خاص مربوط به پیشنهادات غذایی.

پیشنهادشرایط

نام فیلد نوع مورد نیاز توضیحات
description رشته

محدودیت‌های پیشنهاد غذا

نام فیلد نوع مورد نیاز توضیحات
meal_types آرایه شمارشی (enum)
(MealType)

انواع وعده‌های غذایی که این پیشنهاد می‌تواند برای آنها اعمال شود، مانند ناهار یا شام. در صورت عدم تنظیم، این پیشنهاد می‌تواند برای همه انواع وعده‌های غذایی اعمال شود.
restricted_to_certain_courses بولی

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

کوپن

نام فیلد نوع مورد نیاز توضیحات
text رشته

متن کوپنی که ارائه‌دهنده پیشنهاد می‌خواهد به کاربران نمایش دهد.
code رشته

مورد نیاز

برای استفاده از پیشنهاد، کد تخفیف الزامی است. الزامی.

ابزار پرداخت

نام فیلد نوع مورد نیاز توضیحات
items آرایه ای از اشیاء
(PaymentInstrumentItem)

مورد نیاز

فهرست ابزارهای پرداختی که می‌توان برای استفاده از این پیشنهاد استفاده کرد. الزامی.
provider_name رشته

مورد نیاز

نام ارائه‌دهنده ابزار پرداخت. می‌تواند یک شریک بانکی، نام بانک و غیره باشد. برای مثال: American Express، HDFC، ICICI. الزامی است.

ابزار پرداخت

نام فیلد نوع مورد نیاز توضیحات
type شمارشی
(PaymentInstrumentType)

مورد نیاز

نوع ابزار پرداخت. الزامی.
name رشته

مورد نیاز

نام ابزار پرداخت مانند نام کارت اعتباری. برای مثال: HDFC Infinia، American Express Platinum. الزامی است.

اشتراک

نام فیلد نوع مورد نیاز توضیحات
name رشته

مورد نیاز

نام اشتراک. الزامی.
subscription_auto_added بولی

اینکه آیا اشتراک هنگام استفاده کاربر از این پیشنهاد به طور خودکار اضافه می‌شود یا خیر
cost شیء
(Money)

مورد نیاز

هزینه اشتراک. الزامی.
subscription_duration شیء
(Duration)

مورد نیاز

مدت زمان اعتبار اشتراک با نرخ اشتراک. الزامی.
terms_and_conditions_url رشته

نشانی اینترنتی (URL) مربوط به شرایط و ضوابط شریک مربوط به این اشتراک.

مدت زمان

نام فیلد نوع مورد نیاز توضیحات
seconds رشته

ثانیه‌های علامت‌دار از بازه زمانی. باید از -۳۱۵,۵۷۶,۰۰۰,۰۰۰ تا +۳۱۵,۵۷۶,۰۰۰,۰۰۰ باشد. توجه: این محدوده‌ها از فرمول زیر محاسبه می‌شوند: ۶۰ ثانیه بر دقیقه * ۶۰ دقیقه بر ساعت * ۲۴ ساعت بر روز * ۳۶۵.۲۵ روز بر سال * ۱۰۰۰۰ سال
nanos شماره

کسرهای علامت‌دار از ثانیه با وضوح نانوثانیه از بازه زمانی. مدت زمان‌های کمتر از یک ثانیه با یک فیلد 0 seconds و یک فیلد nanos مثبت یا منفی نمایش داده می‌شوند. برای مدت زمان‌های یک ثانیه یا بیشتر، مقدار غیر صفر برای فیلد nanos باید با علامت فیلد seconds یکسان باشد. باید از -999,999,999 تا +999,999,999 باشد.

شرایط

نام فیلد نوع مورد نیاز توضیحات
url رشته

نشانی اینترنتی (URL) شرایط و ضوابط شریک.
restricted_to_certain_users بولی

اینکه آیا این پیشنهاد محدود به کاربران خاصی است یا خیر.
terms_and_conditions رشته

متن شرایط و ضوابط اولیه ارائه شده توسط شریک.
additional_terms_and_conditions آرایه‌ای از رشته

شرایط و ضوابط علاوه بر شرایط و ضوابط اولیه از طرف شریک.

دوره اعتبار

نام فیلد نوع مورد نیاز توضیحات
valid_period شیء
(ValidityRange)

مهر زمانی شروع و پایان که پیشنهاد برای آن معتبر است. این زمان‌ها باید نشان‌دهنده روزهای مجزا باشند، یعنی زمان شروع باید ۰۰:۰۰ (ابتدای روز) و زمان پایان باید ۰۰:۰۰ (به طور انحصاری) در روزی باشد که دوره اعتبار به پایان می‌رسد.
time_of_day آرایه ای از اشیاء
(TimeOfDayWindow)

فاصله زمانی معتبر در یک روز مشخص و روزهایی که برای پیشنهاد در دسترس هستند را مشخص می‌کند. برای مثال: دوشنبه: ۱۰ صبح تا ۵ بعد از ظهر سه‌شنبه: ۱۰ صبح تا ۲ بعد از ظهر سه‌شنبه: ۵ بعد از ظهر تا ۷ بعد از ظهر چهارشنبه، پنجشنبه، جمعه، شنبه، یکشنبه: ۳ بعد از ظهر تا ۷ بعد از ظهر اگر هیچ کدام تنظیم نشده باشد، به این معنی است که پیشنهاد برای همیشه در valid_period در دسترس است.
time_exceptions آرایه ای از اشیاء
(ValidTimeException)

استثنائات مربوط به valid_period و valid_time_of_week فوق را مشخص می‌کند.
date_exceptions آرایه ای از اشیاء
(Date)

استثنائات را بر حسب روز برای valid_period و time_of_day فوق مشخص می‌کند.

محدوده اعتبار

یک محدوده‌ی زمانی بسته-باز.

نام فیلد نوع مورد نیاز توضیحات
valid_from_time شیء
(Timestamp)

مورد نیاز

زمان شروع محدوده (شامل). الزامی.
valid_through_time شیء
(Timestamp)

زمان پایان محدوده (اختصاصی). اگر تنظیم نشود، به این معنی است که این دوره هرگز پایان نمی‌یابد. اختیاری.

مهر زمانی

نام فیلد نوع مورد نیاز توضیحات
seconds رشته

ثانیه‌های زمان UTC را از زمان یونیکس ۱۹۷۰-۰۱-۰۱T۰۰:۰۰:۰۰Z نشان می‌دهد. باید بین -۶۲۱۳۵۵۹۶۸۰۰ و ۲۵۳۴۰۲۳۰۰۷۹۹ باشد (که معادل ۰۰۰۱-۰۱-۰۱T۰۰:۰۰:۰۰Z تا ۹۹۹۹-۱۲-۳۱T۲۳:۵۹:۵۹Z است).
nanos شماره

کسرهای غیرمنفی ثانیه با وضوح نانوثانیه. این فیلد بخش نانوثانیه از مدت زمان است، نه جایگزینی برای ثانیه. مقادیر منفی ثانیه با کسرها باید همچنان دارای مقادیر نانوثانیه غیرمنفی باشند که در زمان به جلو شمارش می‌شوند. باید بین ۰ تا ۹۹۹۹۹۹۹۹۹۹ باشد.

پنجره زمان روز

شیء TimeWindow یک موجودیت مرکب است که فهرستی از پنجره‌هایی را توصیف می‌کند که سفارش کاربر می‌تواند در آنها قرار داده شود یا انجام شود.

نام فیلد نوع مورد نیاز توضیحات
time_windows شیء
(TimeOfDayRange)

مورد نیاز

بازه زمانی که سفارش می‌تواند ثبت/تحویل داده شود. الزامی.
day_of_week آرایه شمارشی (enum)
(DayOfWeek)

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

محدوده زمانی روز

یک بازه زمانی بسته-باز.

نام فیلد نوع مورد نیاز توضیحات
open_time شیء
(TimeOfDay)

زمانی که زمان شروع روز محدوده (شامل) را نشان می‌دهد. اگر تنظیم نشده باشد، به معنی ۰۰:۰۰:۰۰ است. اختیاری.
close_time شیء
(TimeOfDay)

زمانی که زمان پایان روز محدوده را نشان می‌دهد (به صورت انحصاری). اگر تنظیم نشده باشد، به معنی ۲۳:۵۹:۵۹ است. اختیاری.

زمان روز

نام فیلد نوع مورد نیاز توضیحات
hours شماره

ساعات یک روز در قالب ۲۴ ساعته. باید بزرگتر یا مساوی ۰ و معمولاً کوچکتر یا مساوی ۲۳ باشد. یک API ممکن است برای سناریوهایی مانند زمان تعطیلی کسب و کار، مقدار "۲۴:۰۰:۰۰" را مجاز بداند.
minutes شماره

دقیقه‌های یک ساعت. باید بزرگتر یا مساوی ۰ و کوچکتر یا مساوی ۵۹ باشد.
seconds شماره

ثانیه‌های یک دقیقه. باید بزرگتر یا مساوی ۰ و معمولاً کوچکتر یا مساوی ۵۹ باشد. یک API در صورت امکان ثانیه کبیسه، ممکن است مقدار ۶۰ را نیز مجاز بداند.
nanos شماره

کسری از ثانیه، بر حسب نانوثانیه. باید بزرگتر یا مساوی ۰ و کوچکتر یا مساوی ۹۹۹,۹۹۹,۹۹۹ باشد.

خطای ValidTimeException

نام فیلد نوع مورد نیاز توضیحات
exceptional_period شیء
(ValidityRange)

مهر زمانی شروع و پایانی که پیشنهاد برای آن معتبر نیست. این زمان‌ها باید نشان‌دهنده روزهای مشخصی باشند، یعنی زمان شروع باید ۰۰:۰۰ (ابتدای روز) و زمان پایان باید ۰۰:۰۰ (به طور انحصاری) در روزی باشد که دوره استثنا پایان می‌یابد.

تاریخ

یک تاریخ تقویم کامل یا جزئی، مانند تاریخ تولد را نشان می‌دهد. زمان روز و منطقه زمانی یا در جای دیگری مشخص شده‌اند یا بی‌اهمیت هستند. این تاریخ نسبت به تقویم میلادی است. این می‌تواند یکی از موارد زیر را نشان دهد: * یک تاریخ کامل، با مقادیر سال، ماه و روز غیر صفر. * یک ماه و روز، با سال صفر (به عنوان مثال، یک سالگرد). * یک سال به تنهایی، با یک ماه صفر و یک روز صفر. * یک سال و ماه، با یک روز صفر (به عنوان مثال، تاریخ انقضای کارت اعتباری). انواع مرتبط: * [google.type.TimeOfDay][] * [google.type.DateTime][] * [google.protobuf.Timestamp][]

نام فیلد نوع مورد نیاز توضیحات
year شماره

سال تاریخ. باید از ۱ تا ۹۹۹۹ باشد، یا برای مشخص کردن تاریخ بدون سال، ۰ باشد.
month شماره

ماه سال. باید از ۱ تا ۱۲ باشد، یا برای مشخص کردن سال بدون ماه و روز، ۰ باشد.
day شماره

روز ماه. باید از ۱ تا ۳۱ باشد و برای سال و ماه معتبر باشد، یا ۰ برای مشخص کردن یک سال به تنهایی یا یک سال و ماه که روز در آن مهم نیست.

منبع پیشنهاد

نام توضیحات
OFFER_SOURCE_UNSPECIFIED
OFFER_SOURCE_AGGREGATOR

نوع اقدام

نام توضیحات
ACTION_TYPE_UNSPECIFIED
ACTION_TYPE_DINING

حالت پیشنهاد

نام توضیحات
OFFER_MODE_OTHER
OFFER_MODE_WALK_IN
OFFER_MODE_FREE_RESERVATION
OFFER_MODE_PAID_RESERVATION
OFFER_MODE_ONLINE_ORDER

دسته بندی پیشنهاد

دسته بندی پیشنهاد. پیشنهاد پایه، یک پیشنهاد استاندارد است که برای همه مشتریان در دسترس است، مانند 10٪ تخفیف برای خرید بالای 100 دلار. یک پیشنهاد پایه که توسط یک کوپن یا ابزار پرداخت محدود شده است، فیلدهای مربوطه را تنظیم می‌کند. ما همچنین پیشنهادهای اضافه‌ای مانند ADD_ON_PAYMENT_OFFER داریم. چنین پیشنهادهایی را می‌توان به سایر پیشنهادها اضافه کرد تا تخفیف‌های بیشتری دریافت کرد.

نام توضیحات
OFFER_CATEGORY_UNSPECIFIED
OFFER_CATEGORY_BASE_OFFER
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER
OFFER_CATEGORY_ADD_ON_COUPON_OFFER
OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER

واحد هزینه

نام توضیحات
FEE_UNIT_UNSPECIFIED
FEE_UNIT_PER_GUEST
FEE_UNIT_PER_TRANSACTION

نوع هزینه

نام توضیحات
FEE_TYPE_UNSPECIFIED
FEE_TYPE_FIXED
FEE_TYPE_VARIABLE

نوع غذا

نام توضیحات
MEAL_TYPE_UNSPECIFIED
MEAL_TYPE_BREAKFAST
MEAL_TYPE_LUNCH
MEAL_TYPE_DINNER

نوع ابزار پرداخت

نام توضیحات
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED
PAYMENT_INSTRUMENT_CREDIT_CARD
PAYMENT_INSTRUMENT_DEBIT_CARD
PAYMENT_INSTRUMENT_BANK_ACCOUNT
PAYMENT_INSTRUMENT_UPI
PAYMENT_INSTRUMENT_ONLINE_WALLET

روز هفته

نشان دهنده یک روز از هفته است.

نام توضیحات
DAY_OF_WEEK_UNSPECIFIED روز هفته مشخص نشده است.
MONDAY دوشنبه
TUESDAY سه‌شنبه
WEDNESDAY چهارشنبه
THURSDAY پنجشنبه
FRIDAY جمعه
SATURDAY شنبه
SUNDAY یکشنبه

برچسب پیشنهاد

نام توضیحات
OFFER_TAG_NEW_YEAR_SPECIAL

مشخصات_پیشنهادی

تخفیف می‌تواند به صورت درصد یا مقدار ثابتی باشد که از کل مبلغ کسر می‌شود. برای مثال: ۱. ۱۰٪ تخفیف روی صورتحساب نهایی. ۲. ۱۵ دلار تخفیف روی یک سفارش. فروشندگان همچنین می‌توانند تخفیف‌های سفارشی مانند «یکی بخر، یکی رایگان» را از طریق فیلدهای مشخصات مربوطه ارائه دهند. الزامی است.

نام فیلد نوع مورد نیاز توضیحات
discount_percent شماره

منحصر به فرد با discount_value و other_offer_detail_text

درصدی از صورتحساب که تخفیف می‌گیرد. [0، 100] برای پیشنهادهای تخفیف 1+1 یا 50% که برای کل غذا اعمال می‌شوند (مثلاً 1+1 بوفه، 1+1 روی کل صورتحساب، 1+1 روی منوی انتخابی)، این مقدار را می‌توان روی 50 تنظیم کرد.
discount_value شیء
(Money)

منحصر به فرد با discount_percent و other_offer_detail_text

مقدار ثابت تخفیف.
other_offer_detail_text رشته

منحصر به فرد بودن متقابل با discount_percent و discount_value

متن آزاد برای توصیف تخفیف. برای پیشنهادات خاص ۱+۱ (مثلاً ۱+۱ نوشیدنی، ۱+۱ غذای اصلی، ۱+۱ مورد از منوی انتخابی)، این جزئیات باید در اینجا شرح داده شوند.

هزینه

نام فیلد نوع مورد نیاز توضیحات
amount شیء
(Money)

منحصر به فرد بودن متقابل با amount_range

amount_range شیء
(MoneyRange)

متقابلاً منحصر به فرد با amount

آپلود فید

فید پیشنهادات باید در سرور SFTP فید Generic بارگذاری شود. برای دستورالعمل‌ها، آموزش نحوه استفاده از سرور SFTP فید عمومی را دنبال کنید و از name که در فایل توصیفگر خود روی google.offer تنظیم کرده‌اید، استفاده کنید.

فرکانس بارگذاری

به طور کلی، گوگل انتظار دارد روزانه ۱ فید آپلود شود. این تعداد ممکن است بسته به تعداد دفعات به‌روزرسانی پیشنهادها از طرف شما افزایش یا کاهش یابد تا از دقت بالای همیشگی اطمینان حاصل شود. با POC گوگل خود مشورت کنید.

چند ساعت طول می‌کشد تا داده‌ها در گوگل نمایش داده شوند.

دسته‌بندی پیشنهادات

  • OFFER_CATEGORY_BASE_OFFER : پیشنهادهایی که می‌توان آن‌ها را به‌طور مستقل و بدون ترکیب با هیچ پیشنهاد دیگری مطالبه کرد. این شامل موارد زیر است:
    • تخفیف‌های ثابت روی کل صورتحساب (مثلاً ۲۰٪ تخفیف)
    • پیشنهادهای اشتراک (مثلاً دسر رایگان با عضویت)
    • پیشنهادهای پرداخت در مواردی که هیچ پیشنهاد پایه دیگری برای رستوران وجود ندارد
  • پیشنهادهای اضافی: پیشنهادهایی که برای درخواست، نیاز به یک پیشنهاد پایه دارند. این موارد عبارتند از:
    • OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER (مثلاً، ۱۰٪ تخفیف اضافی با کارت اعتباری خاص)
    • OFFER_CATEGORY_ADD_ON_COUPON_OFFER (مثلاً نوشیدنی رایگان با یک کد کوپن خاص)
    • OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER (مثلاً، ۱۰٪ تخفیف اضافی برای مشترکین)

ملاحظات دیگر:

  • وقتی رستورانی پیشنهاد پایه نداشته باشد، پیشنهادهای اضافی نمایش داده نمی‌شوند. اگر پیشنهاد پایه وجود نداشته باشد، هرگونه پیشنهاد پرداخت، اشتراک یا کوپن که بتوان بدون نیاز به اضافه شدن به پیشنهاد دیگری از آن استفاده کرد، باید با برچسب OFFER_CATEGORY_BASE_OFFER مشخص شود.
    • بسته به نوع، داده‌های مربوط به PaymentInstrument ، Subscription یا Coupon باید تنظیم شوند.
    • شرکا باید ۲ نسخه از هر یک از این پیشنهادها را ارائه دهند تا سناریوهایی را پوشش دهند که در آنها هم به عنوان پیشنهاد پایه و هم به عنوان پیشنهادهای اضافی عمل می‌کنند. نسخه پیشنهاد اضافی را می‌توان برای چندین رستوران با استفاده از entity_ids یا add_on_offer_applicable_to_all_entities تنظیم کرد.
  • وقتی یک رستوران چندین پیشنهاد پایه دارد که می‌توانند روی هم قرار گیرند، همه پیشنهادهای پایه باید با برچسب OFFER_CATEGORY_BASE_OFFER مشخص شوند و پیشنهادهای پایه که شامل پیشنهادهای پرداخت، اشتراک یا کوپن هستند، باید به عنوان پیشنهاد افزودنی مربوطه نیز ارسال شوند.
  • ValidityPeriod باید برای فعال کردن پیشنهادات اضافی به عنوان پیشنهادات پایه، تنها زمانی که هیچ پیشنهاد پایه فعالی وجود ندارد، استفاده شود.

سناریوهای مثال:

  • یک رستوران در صورت پرداخت با کارت اعتباری خاص، ۵٪ تخفیف و با یک کد کوپن خاص، یک نوشیدنی رایگان ارائه می‌دهد.

    • پیشنهاد تخفیف ۵٪ برای کارت اعتباری باید در ۲ نسخه ارسال شود، یکی با برچسب OFFER_CATEGORY_BASE_OFFER و دیگری با برچسب OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER که جزئیات PaymentInstrument نیز در آن گنجانده شده باشد.
    • نوشیدنی رایگان به همراه کد تخفیف باید به صورت OFFER_CATEGORY_ADD_ON_COUPON_OFFER و با ذکر جزئیات Coupon ارسال شود.
  • یک رستوران برای مشتریانی که بدون وقت قبلی غذا می‌خورند ۱۰٪ و برای پرداخت با کارت اعتباری خاص ۵٪ تخفیف ارائه می‌دهد که هر دو را می‌توان با هم ترکیب کرد.

    • پیشنهاد ۱۰٪ بدون پیش‌پرداخت باید با برچسب OFFER_CATEGORY_BASE_OFFER مشخص شود.
    • پیشنهاد تخفیف ۵٪ برای کارت اعتباری باید ۲ نسخه داشته باشد، یکی با برچسب OFFER_CATEGORY_BASE_OFFER و دیگری با برچسب OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER .
  • یک رستوران فقط برای ناهار در روزهای هفته ۱۰٪ تخفیف می‌دهد و در صورت پرداخت با کارت اعتباری خاص، هر زمان ۵٪ تخفیف ارائه می‌دهد.

    • پیشنهاد تخفیف ۱۰٪ باید دارای ValidityPeriod باشد تا فقط در ساعات ناهار رستوران در روزهای هفته نشان داده شود.
    • پیشنهاد تخفیف ۵٪ برای کارت اعتباری باید در ۲ نسخه ارسال شود.
      • یک نسخه باید با عنوان OFFER_CATEGORY_BASE_OFFER برچسب‌گذاری شود و جزئیات PaymentInstrument در آن گنجانده شود. مقدار ValidityPeriod باید طوری تنظیم شود که ساعات ناهار در روزهای هفته که پیشنهاد ۱۰٪ تخفیف ناهار فعال است، شامل نشود.
      • یک نسخه باید با عنوان OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER برچسب‌گذاری شود و جزئیات PaymentInstrument در آن گنجانده شود.
    • سایر پیشنهادهای پرداخت برای این رستوران باید با برچسب OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER مشخص شوند.

فرآیند توسعه و راه‌اندازی

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

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

نظارت

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

مطمئن شوید که صفحه با پیشنهادها کمتر از ۵ ثانیه طول می‌کشد تا به‌طور کامل بارگذاری شود، در غیر این صورت این به عنوان یک مشکل در نظر گرفته می‌شود و به عنوان Bad link علامت‌گذاری می‌شود.

بررسی‌های خودکار (خزنده‌ها)

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

تعداد پرس‌وجوها

برای مثال، اگر تصمیم بگیریم روزانه ۵۰۰۰ چک ارسال کنیم، یعنی ۵۰۰۰ بار در روز ( که به طور مساوی در طول روز توزیع شده است، یعنی تقریباً هر ۱۷ ثانیه یک چک )، خزنده ما تمام اقدامات زیر را که یک کاربر معمولی انجام می‌دهد، انجام می‌دهد:

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

تشخیص وب اسکرپر

برای اطمینان از اینکه وب اسکرپر مسدود نمی‌شود (که ممکن است منجر به این نتیجه شود که پیشنهادات در دسترس نیستند)، مطمئن شوید که سیستم شما به وب اسکرپر ما اجازه می‌دهد تا همیشه صفحه شما را جستجو کند. برای شناسایی وب اسکرپر ما:

  • ابزار وب اسکرپر User-Agent شامل رشته " Google-Offers " خواهد بود:
    • مثال: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML، مانند Gecko؛ Google-Offers ) Chrome/104.0.5112.101 Safari/537.36
  • همچنین می‌توانید با استفاده از DNS معکوس، همانطور که در بخش «تأیید Googlebot و سایر خزنده‌های گوگل» توصیه شده است، بررسی کنید که آیا تماس‌ها از گوگل می‌آیند یا خیر. در مورد خاص ما، وضوح DNS معکوس از این الگو پیروی می‌کند: google-proxy-***-***-***-***.google.com .

رفتار فنی

ذخیره سازی

به منظور کاهش بار روی وب‌سایت همکار، خزنده‌های ما عموماً طوری پیکربندی شده‌اند که به تمام هدرهای استاندارد ذخیره‌سازی HTTP موجود در پاسخ احترام بگذارند. این بدان معناست که برای وب‌سایت‌های پیکربندی‌شده‌ی صحیح، از واکشی مکرر محتوایی که به ندرت تغییر می‌کند (مانند کتابخانه‌های جاوا اسکریپت) خودداری می‌کنیم. برای جزئیات بیشتر در مورد نحوه‌ی پیاده‌سازی ذخیره‌سازی، این مستندات ذخیره‌سازی HTTP را مطالعه کنید.