Requisitos y ejemplos de ofertas

En esta guía, se destacan los requisitos y ejemplos de las ofertas de pedidos de comida.

Elegibilidad y políticas

En esta sección, se destacan los criterios de elegibilidad importantes que los socios deben cumplir cuando proporcionan ofertas. Es importante probar todos los tipos de ofertas que planeas lanzar durante las pruebas del feed de sandbox. Si no estás seguro de si una oferta es apta, comunícate con tu punto de contacto de Google.

Excluye las ofertas personalizadas y de un solo uso

Para garantizar una experiencia del usuario coherente y de alta calidad, los socios no deben incluir ofertas que estén restringidas a subconjuntos específicos de usuarios. Las ofertas personalizadas creadas solo para usuarios específicos no son aptas. Las ofertas en toda la plataforma aptas para todos los usuarios, como los usuarios nuevos o los que realizan un pedido por primera vez en un restaurante en particular, se permiten siempre que la oferta se muestre en la página de destino de la oferta para todos los usuarios. Las condiciones de la oferta deben indicarse claramente en el título de la oferta y en la página de destino de la URL de la oferta. Las ofertas deben ser visibles en la página de destino de la oferta para todos los usuarios cuando se cierra o se inicia sesión en tu sitio o aplicación.

Ofertas con códigos de cupón

Algunas ofertas requieren que el usuario ingrese un código de cupón, como "Aplica el código SAVE20 para obtener un 20% de descuento en la factura total". Es importante tener en cuenta que Google no muestra códigos de cupón de la definición del cupón. Los socios pueden incluir esta información en el OfferDetails.offer_display_text para que se muestre a los usuarios. Por lo general, las ofertas basadas en cupones se dividen en dos categorías:

  • Ofertas en las que el cupón se presenta automáticamente en la confirmación de la compra a cualquier usuario que llegue desde Google. Estas se permiten.
  • No se permiten las ofertas que requieren que el usuario ingrese el código de cupón en la confirmación de la compra, pero no proporcionan instrucciones sobre cómo aplicar el código de cupón en la página de destino de la URL de la oferta ni aplican automáticamente el cupón cuando se sigue la URL de la oferta.

Contenido y estructura de la oferta

En esta sección, se detallan los requisitos para el contenido y la estructura de las ofertas que se proporcionan en el feed, incluidos ejemplos de los metadatos estructurados.

Texto de visualización de la oferta y especificación de la oferta

El OfferDetails.offer_display_text es un campo obligatorio que sirve como título conciso para la visibilidad inmediata en la sección de ofertas de la Búsqueda de Google, como "USD 10 de descuento" o "Ahorra un 15%".

El OfferDetails.offer_specification es un campo obligatorio "one of" dentro de OfferDetails. Esto significa que se debe proporcionar exactamente uno de los siguientes tres campos para especificar la oferta:

  • discount_value
  • discount_percentage
  • other_offer_details_text

El campo OfferDetails.other_offer_details_text es un campo de texto de formato libre que se usa para complementar offer_display_text cuando la oferta no se puede expresar como un valor o porcentaje de descuento fijo. Si offer_display_text ya es suficiente para transmitir toda la información necesaria sobre la oferta, el campo other_offer_details_text debe completarse con el mismo texto que offer_display_text. Sin embargo, para las ofertas complejas, este campo debe proporcionar una descripción específica de la recompensa.

Campos de metadatos estructurados

Para mejorar la claridad de la oferta y permitir una mejor clasificación y filtrado, los socios deben proporcionar metadatos de la oferta en los campos estructurados respectivos. El terms.terms_and_conditions es obligatorio. El valor debe incluir las condiciones para canjear la oferta. Por ejemplo, puedes completar este campo con las condiciones detalladas que se muestran a los usuarios en la página de destino de la oferta.

Ejemplos de JSON de ofertas

USD 20 de descuento fijo

Ejemplo: USD 20 de descuento fijo los martes con una compra mínima de USD 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"
}

Oferta de compre uno y obtenga otro gratis

Ejemplo: Oferta de compre un aperitivo y obtenga otro gratis, válida de lunes a jueves

{
  "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"
}

Oferta de descuento porcentual

Ejemplo: 25% de descuento en sándwiches

{
  "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"
}

Oferta de envío gratis

Ejemplo: Envío gratis en pedidos superiores a USD 30. De lo contrario, el envío cuesta USD 7.00.

{
  "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"
}

Ejemplo de oferta base con oferta complementaria

Ejemplo: Un restaurante ofrece un 10% de descuento solo para el almuerzo los días de semana y un 5% de descuento en cualquier momento cuando se paga con una tarjeta de crédito específica.

[
  {
    "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"
  }
]

Cumplimiento y restricciones

En esta sección, se detallan los requisitos y las prácticas recomendadas relacionados con la especificación de cumplimiento de la oferta y las restricciones asociadas a ella.

Modo de cumplimiento (entrega y comida para llevar)

Si una sola oferta se aplica a la entrega y a la comida para llevar, debe tener dos ofertas en el feed. Cada entrada debe tener un ActionType dedicado:

  • ACTION_TYPE_FOOD_DELIVERY
  • ACTION_TYPE_FOOD_TAKEOUT

Esto garantiza que los usuarios que lleguen al sitio del socio vean el contexto de cumplimiento correcto.

Períodos

Se espera que las ofertas se muestren en la página de destino de la oferta para todos los usuarios cuando se cierra o se inicia sesión en tu sitio o aplicación. Si la oferta es válida durante un período específico, debes incluir el validity_periods.valid_period para especificar el período válido. Esto evita que la oferta se muestre fuera del período. También se debe establecer el período si la oferta se muestra en la URL de la oferta durante ciertas horas del día. Por ejemplo, si la página de destino no muestra ofertas cuando el restaurante está cerrado, debes incluir los horarios de apertura y cierre de TimeOfDayWindow.

Cómo administrar los períodos que cruzan la medianoche

Las ofertas que abarcan la medianoche (p. ej., válidas desde las 10:00 p.m. del martes hasta las 2:00 a.m. del miércoles) deben segmentarse para que la canalización de ingesta las procese correctamente. Requisito: Usa el campo TimeOfDayWindow para dividir el período en dos segmentos distintos:

  • Segmento 1: De 10:00 p.m. a 11:59:59 p.m. del día de inicio (p. ej., martes)
  • Segmento 2: De 12:00 a.m. a 2:00 a.m. del día siguiente (p. ej., miércoles)

Esto garantiza que la validez de la oferta se refleje con precisión durante todo el período.

Especificaciones de tarifas

Las tarifas de entrega y comida para llevar se pueden especificar con el OfferDetails.additional_fees. Se debe especificar una tarifa de conveniencia con el OfferDetails.convenience_fee. Usa un valor de rango de tarifas para las tarifas variables, por ejemplo, si las tarifas de entrega cambian según la ubicación del usuario.