Feed pronti

I feed forniscono i dati di inventario ad Actions Center. Questo caricamento giornaliero SFTP (Secure File Transfer Protocol) aggiorna tutti i dati di commercianti, servizi e slot di disponibilità. I feed specificano i commercianti che supporti, la loro disponibilità e le funzionalità speciali necessarie per confermare che Google mostri correttamente il tuo inventario. I feed vengono caricati nelle caselle personali SFTP configurate quando fornisci la chiave SSH in Configurazione.

Prima di passare al server di prenotazione, devi completare le seguenti attività di Feeds Ready:

Le attività verranno contrassegnate come completate e diventeranno verdi dopo il caricamento dei feed. Consulta la documentazione collegata per completare ogni attività specifica della milestone.

Per il corretto funzionamento dell'integrazione end-to-end delle prenotazioni di ristoranti, devi fornire caricamenti automatici giornalieri di feed del commerciante, feed dei servizi e feed della disponibilità. L'infrastruttura del feed automatizzato deve fornire l'intero inventario.

Tipi di feed

Le integrazioni end-to-end per le prenotazioni di ristoranti richiedono i seguenti feed e le relative frequenze di caricamento:

Feed Descrizione Frequenza Esempio
Commerciante Descrive i tuoi commercianti. Una volta ogni 24 ore Esempio di feed del commerciante
Servizi Descrivi i servizi dei tuoi commercianti. Una volta ogni 24 ore Esempio di feed dei servizi
Disponibilità Descrive gli slot disponibili per i servizi dei tuoi commercianti. Deve essere fornita una copertura minima di 30 giorni. Per estendere la copertura a 90 giorni, contatta l'assistenza Google tramite il modulo di contatto del Centro azioni. Una volta ogni 24 ore Esempio di feed di disponibilità

I formati dei feed sono descritti con la sintassi del buffer del protocollo 3, ma puoi caricare i feed in base al formato JSON corrispondente. Consulta gli esempi di feed per il formato JSON. Ti consigliamo di caricare i feed in formato JSON.

Convenzioni di denominazione e metadati

Nomi file

Se utilizzi lo sharding, i feed che carichi devono avere nomi univoci che specificano il tipo e il conteggio del feed. Un timestamp per la generazione del feed soddisfa il requisito di unicità della denominazione dei file di feed.

Struttura: {feed_name}_{timestamp_epoch}_{shard_nunber}_{total_shard}.json

Esempio: availability_feed_1574117613_001_of_002.json.gz

Definisci ID

Quando definisci gli ID per i tuoi commercianti o altri attributi che richiedono un ID, ti consigliamo vivamente di utilizzare UID o UUID. Puoi fornire la tua soluzione alfanumerica, a condizione che gli ID rimangano distinti sulla tua piattaforma.

Metadati

Quando crei i feed, il valore generation_timestamp deve riflettere l'ora in cui i dati sono stati estratti dal database. Il riutilizzo di questo valore nei feed può causare errori di elaborazione.

I valori nonce, numeri casuali o non ripetuti, devono essere univoci per tutti i tipi di feed e non possono essere riutilizzati. Il valore deve corrispondere a tutti i file nel feed suddiviso specifico.

Dimensioni del file del feed

Suddivisione dei file del feed

A seconda dell'inventario, potrebbe essere necessario eseguire lo sharding o suddividere i feed in più file. Potrebbe essere necessario suddividere i feed nelle seguenti condizioni:

  • Il feed compresso gzip supera i 200 MB per un file.
    • Esempio: il feed della disponibilità generato è di 1 GB. Deve essere suddiviso in almeno cinque shard separati.
  • L'inventario dei partner è distribuito su sistemi o regioni, il che rende difficile la riconciliazione dell'inventario.
    • Esempio: il partner ha un inventario negli Stati Uniti e nell'UE che si trova in sistemi separati. Il feed potrebbe essere generato con due shard. Una per gli Stati Uniti e una per l'UE con lo stesso nonce e generation_timestamp.

Per saperne di più, consulta Tutorial e best practice per i file di feed suddivisi.

Un feed può essere costituito da più file chiamati shard. Per determinare le dimensioni dei feed, utilizza le seguenti linee guida:

  • Suddivisione suggerita del feed:
    • Feed del commerciante: uno shard.
    • Feed di servizio: uno shard.
    • Feed sulla disponibilità: meno di 20 shard. Se hai una giustificazione commerciale che richiede un importo superiore a quello specificato, contatta l'assistenza per ulteriori istruzioni.
  • Dimensioni dei file del feed e suddivisione:
    • Mantieni le dimensioni del file di partizione inferiori a 200 MB dopo la compressione. Utilizza più shard se necessario.
    • I singoli record inviati in uno shard non devono essere inviati nello stesso shard nei feed futuri.
    • Per migliorare le prestazioni, dividi i dati in modo uniforme tra gli shard per fare in modo che tutti i file di shard abbiano dimensioni simili.
    • Se necessario, utilizza gzip per comprimere i feed JSON di testo normale per ogni singolo shard del feed.

Comprimere i file del feed

Qualsiasi file JSON o PB3 può essere compresso con gzip prima del caricamento. Ciò può ridurre notevolmente le dimensioni in byte dei feed giornalieri.

Ogni file di partizione deve essere compresso con gzip e caricato singolarmente, ad esempio gzip*.json. Gli shard del feed compressi devono terminare con .json.gz o .pb3.gz.

Caricare i feed nella casella personale SFTP

Dopo aver generato i feed Merchant, Service e Availability, puoi caricarli nell'ambiente sandbox o di produzione tramite la casella di posta SFTP. La casella personale SFTP viene configurata quando fornisci la chiave SSH in Configurazione. Il server SFTP di Google è disponibile all'indirizzo sftp://partnerupload.google.com sulla porta 19321.

Google esamina e convalida i file dei feed non appena vengono caricati nella dropbox SFTP. Se il feed è suddiviso in più file, questi vengono elaborati dopo il caricamento dell'ultimo file. Se il feed contiene errori, ti viene inviata un'email con i codici di errore del feed. Gli errori impediscono l'importazione di commercianti, servizi o disponibilità definiti. Una volta convalidati i feed, possono essere necessarie fino a 24 ore prima che vengano visualizzati nel frontend.