شرکایی که در ادغام پیشنهادات شرکت میکنند، باید قبل از شروع، تنظیمات حساب کاربری را برای یک مرحله ادغام مبتنی بر فروشنده یا نهاد (آزمایشی) تکمیل کنند. پیادهسازی، آزمایش و راهاندازی ادغام پیشنهادات در این راهنما به تفصیل شرح داده خواهد شد. قبل از طی مراحل ادغام، این مرور کلی و سیاستهای پیشنهادات را مطالعه کنید.
پیشنهادات
ادغام پیشنهادات به شما امکان میدهد اطلاعات ساختاریافتهای در مورد تبلیغات و تخفیفهای فروشندگان که برای خدمات خاص در زمانهای خاص اعمال میشوند، ارائه دهید. پیشنهادات از پیشنهاد واقعی (درصد تخفیف، تخفیف دلاری ...)، بازههای زمانی اعتبار (زمانهای خاص، روزهای هفته ...) و کاربردهای قابل اجرا (این پیشنهاد فقط میتواند در خدمات خاصی استفاده شود) و همچنین ترکیبات پیچیدهای از محدودیتها تشکیل شدهاند.
نمونههایی از پیشنهادها:
- پیشغذاهای نیمهتعطیل در روزهای چهارشنبه و پنجشنبه در ماه دسامبر از ساعت ۱۲ ظهر تا ۵ عصر
- با خرید یک عدد، یک دسر رایگان برای شام روز مادر از ساعت ۶ عصر تا ۱۰ شب دریافت کنید.
- ۵ دلار تخفیف برای غذای اصلی صبحانه هر یکشنبه از ساعت ۱۰ صبح تا ۲ بعد از ظهر
- ۱۰٪ تخفیف برای خرید حضوری، قابل ترکیب با ۵٪ تخفیف برای مشترکین ویژه و ۵٪ تخفیف در صورتی که کاربر از طریق اپلیکیشن شما پرداخت کند.
برای اینکه یک پیشنهاد در ادغام گنجانده شود، باید در مدل دادههای فنی جای بگیرد و همچنین الزامات واجد شرایط بودن ما را برآورده کند. حتماً سیاستهای پیشنهادات ما را بررسی کنید تا مطمئن شوید که ادغام شما مطابق با آن است و دستورالعملهایی در مورد نحوه برخورد با پیشنهادهایی که با الزامات فنی مطابقت ندارند، دریافت کنید.
اجرا را پیشنهاد میدهد
ادغام پیشنهادات شامل دو فید است که روزانه یا با فرکانسی بارگذاری میشوند که دقت بالایی را تضمین میکند (به این معنی که ماندگاری را کاهش میدهد):
پیشنهاد ویژه
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
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 | شماره | منحصر به فرد با | درصدی از صورتحساب که تخفیف میگیرد. [0، 100] برای پیشنهادهای تخفیف 1+1 یا 50% که برای کل غذا اعمال میشوند (مثلاً 1+1 بوفه، 1+1 روی کل صورتحساب، 1+1 روی منوی انتخابی)، این مقدار را میتوان روی 50 تنظیم کرد. |
discount_value | شیء(Money) | منحصر به فرد با | مقدار ثابت تخفیف. |
other_offer_detail_text | رشته | منحصر به فرد بودن متقابل با | متن آزاد برای توصیف تخفیف. برای پیشنهادات خاص ۱+۱ (مثلاً ۱+۱ نوشیدنی، ۱+۱ غذای اصلی، ۱+۱ مورد از منوی انتخابی)، این جزئیات باید در اینجا شرح داده شوند. |
هزینه
| نام فیلد | نوع | مورد نیاز | توضیحات |
|---|---|---|---|
amount | شیء(Money) | منحصر به فرد بودن متقابل با | |
amount_range | شیء(MoneyRange) | متقابلاً منحصر به فرد با |
آپلود فید
فید پیشنهادات باید در سرور 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 را مطالعه کنید.