Questa guida evidenzia i requisiti e gli esempi di 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 intendi 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 di alta qualità e coerente, 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 che hanno eseguito l'accesso o meno 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 sull'importo totale della fattura". È importante notare che Google non mostra i codici coupon dalla definizione di coupon. I partner possono includere queste informazioni in 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 la visibilità immediata nella sezione delle offerte sulla 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
deve essere fornito esattamente uno dei seguenti tre campi per specificare l'offerta:
discount_valuediscount_percentother_offer_detail_text
Il campo OfferDetails.other_offer_detail_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_detail_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 una migliore classificazione e un migliore filtraggio, i partner devono
fornire i metadati delle offerte nei rispettivi campi strutturati. La specifica dei
termini
è obbligatoria. Ti consigliamo di impostare il campo terms.terms_and_conditions
con i termini dettagliati visualizzati dagli utenti nella pagina di destinazione
dell'offerta.
Offerte totali specifiche per ordine e articolo
Le offerte specifiche per sottoinsiemi di articoli devono utilizzare i campi
offer_restrictions.inclusions
e
offer_restrictions.exclusions
per definire gli articoli idonei. Se l'offerta riguarda un articolo specifico,
il nome dell'articolo deve essere incluso in offer_display_text. Se il nome dell'articolo
è incluso in offer_display_text, l'impostazione di
offer_restrictions.inclusions non è obbligatoria.
Se offer_restrictions.inclusions non sono impostati o se il nome dell'articolo non è incluso in offer_display_text, l'offerta viene considerata applicabile all'importo totale dell'ordine.
Offerte sulle spese di spedizione
Le offerte con spese di consegna devono utilizzare offer_category
OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER. In questo modo, l'offerta può essere
visualizzata solo se combinata con un'altra offerta di base per la località. Un'offerta
di commissione di consegna non verrà visualizzata come offerta di base.
Esempi di JSON dell'offerta
Sconto fisso di 20 $
Esempio: sconto fisso di 20 € sull'ordine totale 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" }
-50% sul frullato di frutti di bosco
Esempio: offerta a livello di articolo con sconto del 50%.
{ "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": "50% off on Berry Smoothie", "discount_percent": 50.0 }, "validity_periods": [ { "valid_period": { "valid_from_time": { "seconds": 1768953600 }, "valid_through_time": { "seconds": 1795219200 } } } ], "offer_restrictions": { "combinable_with_other_offers": true, "inclusions": [ {"description":"Berry Smoothie"} ] }, "terms": { "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order." }, "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 gli antipasti, 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 di consegna gratuita
Esempio: consegna gratuita come componente aggiuntivo di un'offerta base. L'offerta con commissioni di consegna pari a 0 € verrà visualizzata insieme a qualsiasi offerta di base per la posizione.
[ { "offer_id": "offerId1", "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": "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_DELIVERY", "offer_modes": ["OFFER_MODE_ONLINE_ORDER"], "offer_category": "OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER", "offer_details": { "offer_display_text": "$0 Delivery Fee", "other_offer_detail_text": "Free dellivery" }, "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": "Delivery is free 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 di evasione delle offerte e ai vincoli associati.
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_DELIVERYACTION_TYPE_FOOD_TAKEOUT
In questo modo, agli utenti che arrivano sul sito del partner viene presentato 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 offerte quando il ristorante è chiuso, devi includere gli orari di apertura e chiusura di TimeOfDayWindow.
Gestire intervalli di tempo che superano la mezzanotte
Le offerte che si estendono oltre la mezzanotte (ad es. valide dalle 22:00 di martedì alle 2:00 di mercoledì) devono essere segmentate per essere elaborate correttamente dalla pipeline di importazione. Requisito:utilizza il campo TimeOfDayWindow per suddividere 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 servizio 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 località dell'utente.