Requisiti ed esempi di offerte

Questa guida evidenzia i requisiti e gli esempi delle offerte per l'ordinazione di cibo.

Idoneità e norme

Questa sezione evidenzia i criteri di idoneità importanti che i partner devono rispettare quando forniscono offerte. È importante testare tutti i tipi di offerte che prevedi di lanciare durante il test del feed sandbox. Se non sai se un'offerta è idonea, rivolgiti al tuo POC di Google.

Escludere offerte personalizzate e monouso

Per garantire un'esperienza utente coerente e di alta qualità, i partner non devono includere offerte limitate a sottoinsiemi specifici di utenti. Le offerte personalizzate create solo per utenti specifici non sono idonee. Le offerte a livello di piattaforma idonee per tutti gli utenti, ad esempio per i nuovi utenti o per il primo ordine in un determinato ristorante sono consentite a condizione che l'offerta venga visualizzata nella pagina di destinazione dell'offerta per tutti gli utenti. Le condizioni dell'offerta devono essere indicate chiaramente nel titolo dell'offerta e nella pagina di destinazione dell'URL dell'offerta. Le offerte devono essere visibili nella pagina di destinazione dell'offerta per tutti gli utenti quando non hanno eseguito l'accesso o hanno eseguito l'accesso al tuo sito o app.

Offerte con codici coupon

Alcune offerte richiedono l'inserimento di un codice coupon da parte dell'utente, ad esempio "Applica il codice SCONTO20 per ottenere il 20% di sconto sul totale della fattura". È importante notare che Google non mostra i codici coupon dalla definizione di coupon. I partner possono includere queste informazioni all'interno di OfferDetails.offer_display_text da mostrare agli utenti. Le offerte basate su coupon rientrano generalmente in due categorie:

  • Offerte in cui il coupon viene presentato automaticamente al momento del pagamento a qualsiasi utente che arriva da Google. Questi sono consentiti.
  • Le offerte che richiedono all'utente di inserire il codice coupon al momento del pagamento, ma non forniscono istruzioni su come applicare il codice coupon nella pagina di destinazione dell'URL dell'offerta o non applicano automaticamente il coupon quando si segue l'URL dell'offerta, non sono consentite.

Contenuti e struttura dell'offerta

Questa sezione descrive in dettaglio i requisiti per i contenuti e la struttura delle offerte fornite nel feed, inclusi esempi di metadati strutturati.

Testo visualizzato dell'offerta e specifica dell'offerta

OfferDetails.offer_display_text è un campo obbligatorio che funge da titolo conciso per una visibilità immediata nella sezione delle offerte della Ricerca Google, ad esempio "10 € di sconto" o "Risparmia il 15%".

OfferDetails.offer_specification è un campo obbligatorio "uno di" all'interno di OfferDetails. Ciò significa che per specificare l'offerta deve essere fornito esattamente uno dei tre campi seguenti:

  • discount_value
  • discount_percentage
  • other_offer_details_text

Il campo OfferDetails.other_offer_details_text è un campo di testo in formato libero utilizzato per integrare offer_display_text quando l'offerta non può essere espressa come valore o percentuale di sconto fisso. Se il offer_display_text è già sufficiente a trasmettere tutte le informazioni necessarie sull'offerta, il campo other_offer_details_text deve essere compilato con lo stesso testo del campo offer_display_text. Tuttavia, per gli accordi complessi, questo campo deve fornire una descrizione specifica del premio.

Campi dei metadati strutturati

Per migliorare la chiarezza delle offerte e consentire un migliore ranking e filtraggio, i partner devono fornire i metadati delle offerte nei rispettivi campi strutturati. Il campo terms.terms_and_conditions è obbligatorio. Il valore deve includere le condizioni per riscattare l'offerta. Ad esempio, puoi compilare questo campo con i termini dettagliati visualizzati dagli utenti nella pagina di destinazione dell'offerta.

Esempi di JSON dell'offerta

Sconto fisso di 20 $

Esempio: sconto fisso di 20 € il martedì con una spesa minima di 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"
}

Offerta Prendi due e paghi uno

Esempio: offerta "prendi 2 e paghi 1" per un antipasto, valida dal lunedì al giovedì

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

Offerta con percentuale di sconto

Esempio: 25% di sconto sui panini

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

Offerta di consegna gratuita

Esempio: consegna gratuita per ordini superiori a 30 $. In caso contrario, la consegna costa 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"
}

Esempio di offerta base con offerta componente aggiuntivo

Esempio: un ristorante offre il 10% di sconto solo per il pranzo nei giorni feriali e il 5% di sconto in qualsiasi momento se paghi con una carta di credito specifica.

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

Fulfillment e vincoli

Questa sezione descrive in dettaglio i requisiti e le best practice relativi alle specifiche e ai vincoli di evasione delle offerte.

Modalità di evasione (consegna e ritiro)

Se una singola offerta si applica sia alla consegna che al ritiro, deve avere due offerte nel feed. Ogni voce deve avere un ActionType dedicato:

  • ACTION_TYPE_FOOD_DELIVERY
  • ACTION_TYPE_FOOD_TAKEOUT

In questo modo, gli utenti che arrivano sul sito del partner visualizzano il contesto di evasione corretto.

Finestre temporali

Le offerte devono essere visualizzate nella pagina di destinazione dell'offerta per tutti gli utenti quando hanno eseguito l'accesso o non hanno eseguito l'accesso al tuo sito o alla tua app. Se l'offerta è valida durante un periodo di tempo specifico, devi includere il campo validity_periods.valid_period per specificare il periodo di validità. In questo modo, l'offerta non viene visualizzata al di fuori del periodo di tempo. La finestra temporale deve essere impostata anche se l'offerta viene visualizzata nell'URL dell'offerta in determinate ore del giorno. Ad esempio, se la pagina di destinazione non mostra le offerte quando il ristorante è chiuso, devi includere gli orari di apertura e chiusura di TimeOfDayWindow.

Gestire periodi di tempo che superano la mezzanotte

Le offerte che si estendono oltre la mezzanotte (ad es. valide dalle 22:00 di martedì alle 02:00 di mercoledì) devono essere segmentate per essere elaborate correttamente dalla pipeline di importazione. Requisito: utilizza il campo TimeOfDayWindow per dividere la finestra in due segmenti distinti:

  • Segmento 1: dalle 22:00 alle 23:59:59 del giorno di inizio (ad es. martedì).
  • Segmento 2: dalle 00:00 alle 02:00 del giorno successivo (ad es. mercoledì).

In questo modo, la validità dell'offerta viene riflessa con precisione per tutto il periodo.

Specifiche delle commissioni

Le commissioni per la consegna e il servizio d'asporto possono essere specificate utilizzando il campo OfferDetails.additional_fees. Una commissione di convenienza deve essere specificata utilizzando OfferDetails.convenience_fee. Utilizza un intervallo di commissioni per le commissioni variabili, ad esempio se le spese di spedizione cambiano in base alla posizione dell'utente.