В этом руководстве изложены требования и приведены примеры предложений по заказу еды.
Критерии отбора и правила
В этом разделе освещены важные критерии соответствия, которым партнеры должны следовать при предоставлении предложений. Важно протестировать все типы предложений, которые вы планируете запустить, в ходе тестирования в тестовой среде. Если вы не уверены в соответствии предложения требованиям, обратитесь к своему контактному лицу в Google.
Исключить персонализированные и одноразовые предложения.
Для обеспечения высокого качества и единообразия пользовательского опыта партнеры не должны включать предложения, предназначенные только для определенных групп пользователей. Персонализированные предложения, созданные только для конкретных пользователей, не допускаются. Допускаются предложения, доступные для всех пользователей платформы, например, для новых пользователей или для тех, кто впервые заказывает еду в определенном ресторане , при условии, что предложение отображается на целевой странице предложения для всех пользователей. Условия предложения должны быть четко указаны в заголовке предложения и на целевой странице URL предложения. Предложения должны быть видны на целевой странице предложения для всех пользователей, независимо от того, авторизованы они или нет на вашем сайте или в приложении.
Предложения с промокодами
Для некоторых предложений требуется ввод промокода пользователем, например: «Примените код SAVE20, чтобы получить скидку 20% на общую сумму». Важно отметить, что Google не отображает промокоды из описания купона . Партнеры могут включать эту информацию в OfferDetails.offer_display_text для отображения пользователям. Предложения на основе купонов обычно делятся на две категории:
- Разрешены предложения, в рамках которых купон автоматически отображается при оформлении заказа любому пользователю, перешедшему с сайта Google.
- Запрещены предложения, требующие от пользователя ввода промокода при оформлении заказа, но не содержащие инструкций по его применению на целевой странице, или предложения, которые не применяют купон автоматически при переходе по ссылке.
Предлагаемое содержание и структуру
В этом разделе подробно изложены требования к содержанию и структуре предложений, предоставляемых в фиде, включая примеры структурированных метаданных.
Текст предложения и спецификация предложения.
Поле OfferDetails.offer_display_text является обязательным и служит кратким заголовком для мгновенной видимости в разделе предложений в поиске Google, например, «скидка 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 долларов
Пример: фиксированная скидка 20 долларов по вторникам при минимальной сумме покупки 15 долларов.
{ "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" }
Предложение процентной скидки
Пример: скидка 25% на сэндвичи.
{ "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" }
Бесплатная доставка
Пример: Бесплатная доставка при заказе на сумму свыше 30 долларов. В остальных случаях стоимость доставки составляет 7 долларов.
{ "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" }
Пример базового предложения с дополнительным предложением
Пример: Ресторан предлагает скидку 10% только на обед в будние дни и 5% в любое другое время при оплате определенной кредитной картой.
[ { "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
Это гарантирует, что пользователям, попавшим на сайт партнера, будет показана правильная информация о выполнении заказа.
Временные окна
Предполагается, что предложения будут отображаться на целевой странице предложения для всех пользователей, независимо от того, авторизованы они или нет на вашем сайте или в приложении. Если предложение действительно в течение определенного периода времени, необходимо указать поле validity_periods.valid_period , чтобы обозначить этот период. Это предотвратит отображение предложения вне указанного периода. Также необходимо указать временной интервал, если предложение отображается по URL-адресу предложения в определенные часы дня. Например, если целевая страница не отображает предложения, когда ресторан закрыт, необходимо указать время открытия и закрытия TimeOfDayWindow .
Обработка временных интервалов, превышающих полночь.
Предложения, действующие в течение полуночи (например, с 22:00 вторника до 2:00 среды), должны быть сегментированы для корректной обработки конвейером обработки данных. Требование: используйте поле TimeOfDayWindow , чтобы разбить временной интервал на два отдельных сегмента:
- Первый сегмент: с 22:00 до 23:59:59 в день начала (например, во вторник).
- Второй сегмент: с 00:00 до 02:00 следующего дня (например, среды).
Это гарантирует точное отражение действительности предложения на протяжении всего периода.
Условия оплаты
Стоимость доставки и самовывоза можно указать с помощью поля OfferDetails.additional_fees . Плату за удобство следует указать с помощью поля OfferDetails.convenience_fee . Для переменных платежей используйте диапазон значений, например, если стоимость доставки меняется в зависимости от местоположения пользователя.