الزامات و نمونه‌های پیشنهاد

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

شرایط لازم و سیاست‌ها

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

پیشنهادهای شخصی‌سازی‌شده و یکبارمصرف را حذف کنید

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

پیشنهادات با کد تخفیف

برخی از پیشنهادات نیاز به وارد کردن کد تخفیف توسط کاربر دارند، مانند "با اعمال کد تخفیف SAVE20، 20٪ تخفیف روی کل صورتحساب دریافت کنید". توجه به این نکته ضروری است که گوگل کدهای تخفیف را از تعریف کوپن نمایش نمی‌دهد. شرکا ممکن است این اطلاعات را در OfferDetails.offer_display_text برای نمایش به کاربران قرار دهند. پیشنهادات مبتنی بر کوپن معمولاً به دو دسته تقسیم می‌شوند:

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

محتوا و ساختار پیشنهاد

این بخش الزامات مربوط به محتوا و ساختار پیشنهادات ارائه شده در فید، از جمله نمونه‌هایی از فراداده‌های ساختاریافته را شرح می‌دهد.

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

OfferDetails.offer_display_text یک فیلد اجباری است که به عنوان تیتر مختصر برای نمایش فوری در بخش پیشنهادات در جستجوی گوگل عمل می‌کند، مانند "10 دلار تخفیف" یا "15٪ تخفیف".

فیلد OfferDetails.offer_specification یک فیلد «یکی از» اجباری در OfferDetails است. این بدان معناست که دقیقاً یکی از سه فیلد زیر باید برای مشخص کردن معامله ارائه شود:

  • discount_value
  • discount_percentage
  • other_offer_details_text

فیلد OfferDetails.other_offer_details_text یک فیلد متنی آزاد است که برای تکمیل offer_display_text استفاده می‌شود، زمانی که پیشنهاد را نمی‌توان به صورت یک مقدار یا درصد تخفیف ثابت بیان کرد. اگر offer_display_text از قبل برای انتقال تمام اطلاعات لازم در مورد پیشنهاد کافی باشد، فیلد other_offer_details_text باید با همان متن offer_display_text پر شود. با این حال، برای معاملات پیچیده، این فیلد باید شرح خاصی از پاداش را ارائه دهد.

فیلدهای فراداده‌ای ساختاریافته

برای بهبود وضوح پیشنهاد و امکان رتبه‌بندی و فیلتر بهتر، شرکا باید فراداده پیشنهاد را در فیلدهای ساختاریافته مربوطه ارائه دهند. فیلد terms.terms_and_conditions الزامی است. مقدار آن باید شامل شرایطی در مورد نحوه استفاده از پیشنهاد باشد. به عنوان مثال، می‌توانید این فیلد را با شرایط دقیقی که در صفحه فرود پیشنهاد به کاربران نمایش داده می‌شود، پر کنید.

ارائه نمونه‌های JSON

20 دلار تخفیف ثابت

مثال: تخفیف ثابت ۲۰ دلاری در روزهای سه‌شنبه با حداقل خرید ۱۵ دلار

{
  "offer_id": "offer-example-1-takeout",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "$20 off on Tuesdays",
    "discount_value": {
      "currency_code": "USD",
      "units": 20
    },
    "min_spend_value": {
      "currency_code": "USD",
      "units": 15
    }
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 9 },
            "close_time": { "hours": 20, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["TUESDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": false
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders with $15 minimum spend. Single use per order. Offer may not be combined with any other offers, discounts, or promotions. Valid only on Tuesdays."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_1"
}

پیشنهاد یکی بخر، یکی رایگان

مثال: با خرید یک پیش‌غذا، یک پیشنهاد رایگان دریافت کنید، از دوشنبه تا پنجشنبه معتبر است

{
  "offer_id": "offer-example-2-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "Buy one appetizer, get one free",
    "other_offer_detail_text": "Buy one appetizer, get one free"
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 10 },
            "close_time": { "hours": 23, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "inclusions": [
      {
        "description": "appetizers"
      }
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Valid on all menu appetizers. Offer may be combined with any other offers, discounts, or promotions. Valid Monday through Thursday."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_4"
}

پیشنهاد تخفیف درصدی

مثال: ۲۵٪ تخفیف روی ساندویچ‌ها

{
  "offer_id": "offer-example-3-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "25% off on Sandwitches",
    "discount_percent": 25.0
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      }
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Applies to specific items only. Single use per order. May be combined with any other offers, discounts, or promotions."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_2"
}

پیشنهاد ارسال رایگان

مثال: ارسال رایگان برای سفارش‌های بالای ۳۰ دلار. در غیر این صورت هزینه ارسال ۷ دلار است.

{
  "offer_id": "offer-example-4-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "Free delivery on orders over $30",
    "discount_value": {
      "currency_code": "USD",
      "units": 7
    },
    "min_spend_value": {
      "currency_code": "USD",
      "units": 30
    }
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      }
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery orders with $30 minimum spend. Delivery is $7.00 otherwise. Single use per order. May be combined with any other offers, discounts, or promotions."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_3"
}

مثال پیشنهاد پایه با پیشنهاد افزونه

مثال: یک رستوران فقط برای ناهار در روزهای هفته ۱۰٪ تخفیف می‌دهد و در صورت پرداخت با کارت اعتباری خاص، هر زمان ۵٪ تخفیف ارائه می‌دهد.

[
  {
    "offer_id": "offerId1",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_BASE_OFFER",
    "offer_details": {
      "offer_display_text": "10% off",
      "discount_percent": 10.0
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        },
        "time_of_day": [
          {
            "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
          }
        ]
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true,
      "combinable_offer_categories": ["OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER"]
    },
    "terms": {
      "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/base_offer_5"
  },
  {
    "offer_id": "offerId2",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER",
    "offer_details": {
      "offer_display_text": "5% off",
      "discount_percent": 5.0
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        },
        "time_of_day": [
          {
            "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
          }
        ]
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true,
      "combinable_offer_ids": ["offerId1"]
    },
    "payment_instrument": {
      "items": [
        { "type": "PAYMENT_INSTRUMENT_CREDIT_CARD", "name": "Participating Credit Card" }
      ],
      "provider_name": "Card Provider"
    },
    "terms": {
      "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/addon_offer_1"
  }
]

تحقق و محدودیت‌ها

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

حالت انجام سفارش (تحویل و بیرون‌بر)

اگر یک پیشنهاد واحد هم برای تحویل و هم برای بیرون‌بر اعمال شود، باید دو پیشنهاد در فید داشته باشد. هر ورودی باید یک ActionType اختصاصی داشته باشد:

  • ACTION_TYPE_FOOD_DELIVERY
  • ACTION_TYPE_FOOD_TAKEOUT

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

پنجره‌های زمانی

انتظار می‌رود پیشنهادات در صفحه فرود پیشنهاد برای همه کاربران هنگام خروج یا ورود به سایت یا برنامه شما نمایش داده شود. اگر پیشنهاد در یک بازه زمانی خاص معتبر است، باید فیلد validation_periods.valid_period را برای مشخص کردن دوره معتبر وارد کنید. این کار از نمایش پیشنهاد در خارج از بازه زمانی جلوگیری می‌کند. اگر پیشنهاد در ساعات خاصی از روز در آدرس اینترنتی پیشنهاد نمایش داده می‌شود، باید پنجره زمانی نیز تنظیم شود. به عنوان مثال، اگر صفحه فرود هنگام بسته بودن رستوران پیشنهادات را نمایش نمی‌دهد، باید زمان باز و بسته شدن TimeOfDayWindow را وارد کنید.

مدیریت بازه‌های زمانی عبور از نیمه‌شب

پیشنهادهایی که در طول نیمه‌شب (مثلاً از ساعت ۱۰:۰۰ شب سه‌شنبه تا ۲:۰۰ بامداد چهارشنبه) معتبر هستند، باید برای پردازش صحیح توسط خط لوله مصرف، بخش‌بندی شوند. الزام: از فیلد TimeOfDayWindow برای تقسیم پنجره به دو بخش مجزا استفاده کنید:

  • بخش ۱: از ساعت ۲۲:۰۰ تا ۲۳:۵۹:۵۹ در روز شروع (مثلاً سه‌شنبه).
  • بخش دوم: از ساعت ۱۲:۰۰ بامداد تا ۲:۰۰ بامداد روز بعد (مثلاً چهارشنبه).

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

مشخصات هزینه

هزینه‌های تحویل و بیرون‌بر را می‌توان با استفاده از فیلد OfferDetails.additional_fees مشخص کرد. هزینه‌ی تسهیلات باید با استفاده از OfferDetails.convenience_fee مشخص شود. برای هزینه‌های متغیر، مثلاً اگر هزینه‌های تحویل بر اساس موقعیت مکانی کاربر تغییر می‌کند، از یک مقدار محدوده‌ی هزینه استفاده کنید.