Estensioni per l'acquisto di biglietti di Google Transit

Questa pagina definisce un sottoinsieme delle specifiche per la vendita di biglietti GTFS, che si trova nella fase di proposta durante la creazione di questo documento. Questa pagina include anche diverse limitazioni aggiuntive da in tutti i canali Google.

Requisiti

Il campo departure_time in stop_times.txt è obbligatorio.

Tipi di campi aggiuntivi

Questa sezione illustra i tipi di campi aggiuntivi e quelli con estensioni di Google. Alcune richiedono valori sotto forma di URI.

Estensioni o aggiunte di file

I file di testo con stato Estensione sono file già esistenti che devono essere estendere. Devi aggiungere i nuovi campi definiti nella tabella seguente.

I file di testo con lo stato Addition sono nuovi file introdotti da Google Transit Estensioni per l'acquisto di biglietti. Devi creare questi file nel rispetto della Definizioni dei campi riportate dopo la tabella seguente. Assicurati di includi questi file nel tuo feed.

Nome file Stato Definisce
agency.txt Estensione Aggiunge agency.ticketing_deep_link_id.
routes.txt Estensione Aggiunge routes.ticketing_deep_link_id.
trips.txt Estensione Aggiunge trips.ticketing_trip_id e trips.ticketing_type.
stop_times.txt Estensione Aggiunge stop_times.ticketing_type.
ticketing_identifiers.txt Aggiunta Nuovo file. Per ulteriori dettagli, consulta Definizioni dei campi.
ticketing_deep_links.txt Aggiunta Nuovo file. Per ulteriori dettagli, consulta Definizioni dei campi.

Definizioni dei campi

agency.txt (file esteso)

Nome campo Presenza Dettagli
ticketing_deep_link_id Facoltativo

(ID da ticketing_deep_links.txt) Definisce il link diretto da utilizzare agenzia. Può essere sovrascritto in routes.txt.

routes.txt (file esteso)

Nome campo Presenza Dettagli
ticketing_deep_link_id Facoltativo (ID da ticketing_deep_links.txt) Definisce il link diretto da utilizzare percorso. Se presente, sovrascrive il campo in agency.txt.

trips.txt (file esteso)

Nome campo Presenza Dettagli
ticketing_trip_id Facoltativo

(ID) Identificatore da trasmettere nel link diretto. Non deve essere necessariamente univoco.

Se ticketing_trip_id è vuoto, il sistema utilizza il valore di trip_id in alternativa.

ticketing_type Facoltativo

(Enum) Definisci se la vendita di biglietti tramite un link diretto è disponibile per questa corsa:

  • 0 o vuoto:
    • Se definisci un ticketing_deep_link_id per il percorso o l'agenzia, questo è disponibili.
    • Non disponibile negli altri casi.
  • 1: non disponibile.

stop_times.txt (file esteso)

Nome campo Presenza Dettagli
ticketing_type Facoltativo

(Enum) Definisce se la vendita di biglietti tramite un link diretto è disponibile per questo momento di fermata. Se tu definisci stop_times.ticketing_type, sostituisce il valore impostato in trip.ticketing_type.

  • Vuoto: utilizza il valore indicato in trip.ticketing_type.
  • 0:
    • Se definisci un ticketing_deep_link_id per il percorso o l'agenzia, questo è disponibili.
    • Non disponibile negli altri casi.
  • 1: non disponibile.
di Gemini Advanced.

ticketing_identifiers.txt (file aggiunto)

Il caso più comune per la vendita di biglietti è che ogni fermata è dotata di un identificatore per elaborare la fatturazione. Aziende diverse possono utilizzare lo stesso identificatore per ogni fermata. Quando più agenzie operano la stessa fermata, ripeti questa mappatura per ogni agenzia.

Nome campo Presenza Dettagli
ticketing_stop_id Obbligatorio (ID) Definisce un ID per l'acquisto di biglietti predefinito per questa fermata dell'azienda di trasporto.
stop_id Obbligatorio (ID da stops.txt) La fermata per cui il valore predefinito ticketing_stop_id definito.
agency_id Obbligatorio (ID da agency.txt) L'agenzia della fermata per la quale viene utilizzato il valore predefinito ticketing_stop_id definito.

ticketing_deep_links.txt (file aggiunto)

Nome campo Presenza Dettagli
ticketing_deep_link_id Obbligatorio (ID) Definisce un ID per il link diretto.
web_url Facoltativo

(URL) L'URL da visitare per i link diretti.

Questo campo non è traducibile tramite translations.txt.

android_intent_uri Facoltativo

(URI) L'URI da passare a un'app Android nativa con un Intenzione android.intent.action.VIEW.

Se è vuoto, significa che non è possibile aggiungere un link diretto a un'app Android nativa.

Per ulteriori informazioni sui link diretti su Android, consulta l'articolo Creare link diretti a dell'app.

Questo campo non è traducibile tramite translations.txt.

ios_universal_link_url Facoltativo

(URL) L'URL del link universale da richiamare su iOS.

Se vuoto, i link diretti non vengono visualizzati su iOS.

Per ulteriori informazioni, consulta la sezione sui link universali su iOS.

Questo campo non è traducibile tramite translations.txt.

Segnaposto di campi nella chiamata API

Google chiama gli URL definiti in ticketing_deep_links.txt con quanto segue parametri:

Nome campo Dettagli
service_date

(Data, ripetibile) Giorno di servizio della corsa.

Utilizza questo campo per la data di partenza della corsa dalla prima fermata.

Il formato di questo campo è un array JSON.

ticketing_trip_id

(ID da trips.txt, ripetibile) Identificatore della corsa.

Il formato di questo campo è un array JSON.

from_ticketing_stop_time_id

(Ripetibile) Identificatore del stop_time in cui inizia la gamba.

Per un determinato momento di interruzione, il valore è il seguente:

  • Il valore ticketing_stop_id definito in ticketing_identifiers.txt per i agency_id e i stop_id dei stop_time.

  • In caso contrario, utilizza il metodo stop_sequence.

Il formato di questo campo è un array JSON.

to_ticketing_stop_time_id

(Ripetibile) Identificatore del stop_time in cui termina la gamba.

Per una spiegazione sulla derivazione del valore, consulta from_ticketing_stop_time_id.

Il formato di questo campo è un array JSON.

boarding_time

(ISO 8601, ripetibile) Ora di partenza, departure_time, del stop_time nel punto in cui inizia la gamba.

Utilizza questo campo per indicare la data e l'ora effettive in cui il passeggero sale a bordo del veicolo.

Il valore dell'ora di questo campo è conforme a ISO 8601 con il seguente formato di stringa:

YYYY-MM-DDThh:mm:ss±hh:mm

Gli orari indicati di seguito sono uguali, ma in fusi orari diversi:

  • A Londra, Regno Unito: 2019-07-29T18:26:00+01:00
  • A NYC, USA-NY: 2019-07-29T13:26:00-04:00
  • A Tokyo in Giappone: 2019-07-30T02:26:00+09:00
di Gemini Advanced.

Il formato di questo campo è un array JSON.

arrival_time

(ISO 8601, ripetibile) Ora di arrivo, arrive_time allo stop_time a cui la tappa termina il video.

Il valore dell'ora di questo campo è conforme a ISO 8601 con il seguente formato di stringa:

YYYY-MM-DDThh:mm:ss±,hh:mm

Gli orari indicati di seguito sono uguali, ma in fusi orari diversi:

  • A Londra, UK: 2019-07-29T18:46:00+01:00
  • A NYC, USA-NY: 2019-07-29T13:46:00-04:00
  • A Tokyo, JP: 2019-07-30T02:46:00+09:00
di Gemini Advanced.

Il formato di questo campo è un array JSON.

Esempi

In questo esempio, le tappe del percorso di un passeggero sono le seguenti:

  • Il giorno del servizio 20190716, l'ID biglietteria della corsa ti1 inizia dalla fermata ID ticketing a tempo 11 per interrompere l'ID richiesta di chiamata 12. Il passeggero parte alle 14:00 UTC e arriva alle 14:50 UTC.
  • Il giorno del servizio 20190716, l'ID biglietteria della corsa ti2 inizia dalla fermata ID ticketing a tempo 21 per interrompere l'ID richiesta di chiamata 22. Il passeggero parte alle 15:00 UTC e arriva alle 15:50 UTC.

Per questo esempio, il valore web_url è https://examplepetstore.com.

Con tutte queste informazioni, utilizza i seguenti valori per i parametri del feed per questo percorso:

Nome campo Dettagli
service_date ["20190716", "20190716"]
ticketing_trip_id ["ti1", "ti2"]
from_ticketing_stop_time_id ["11", "21"]
to_ticketing_stop_time_id ["12", "22"]
boarding_time ["2019-07-16T14:00:00+00:00", "2019-07-16T15:00:00+00:00"]
arrival_time ["2019-07-16T14:50:00+00:00", "2019-07-16T15:50:00+00:00"]

Di seguito è riportato l'URI finale dopo la codifica:

https://examplepetstore.com?service_date=%5B%2220190716%22,%2220190716%22%5D &ticketing_trip_id=%5B%22ti1%22,%22ti2%22%5D&from_ticketing_stop_time_id=%5B%2211%22,%2221%22%5D &to_ticketing_stop_time_id=%5B%2212%22,%2222%22%5D&boarding_time=%5B%222019-07-16T14:00:00%2B00:00 %22,%222019-07-16T15:00:00%2B00:00%22%5D&arrival_time=%5B%222019-07-16T14:50:00%2B00:00 %22,%222019-07-16T15:50:00%2B00:00%22%5D

Esempi di diverse ticketing_stop_id valori

Le fermate possono avere ID diversi per la vendita di biglietti con campo ticketing_identifiers.txt. I valori in grassetto sono quelli trovati nella chiamata web descritti dopo i file.

stop.txt

stop_id, stop_name

si1,"Parigi Gare-de-Lyon"

si2,"Lione Part-Dieu"

routes.txt

route_id,route_long_name,ticketing_deep_link_id

ri1,"TGV inOui Parigi-Lione",tdl1

trips.txt

trip_id,service_id,route_id,trip_short_name, ticketing_trip_id

ti1,everyday,ri1,"TGV INOUI 6603",FR_SNCF_6603

ti2,ogni giorno,ri1,"TGV INOUI 6681",FR_SNCF_6681

ti3,ogni giorno,ri1,"TGV INOUI 6607",FR_SNCF_6607

stop_times.txt

trip_id,stop_sequence,stop_id,arrival_time, departure_time

ti1,1,si1,06:59:00,06:59:00

ti1,2,si2,08:56:00,08:56:00

ti2,1,si1,07:53:00,07:53:00

ti2,2,si2,10:00:00,10:00:00

ti3,1,si1,08:59:00,08:59:00

ti3,2,si2,10:56:00,10:56:00

ticketing_identifiers.txt

stop_id,agency_id,ticketing_stop_id

si1,agenzia1,4924

si2,agenzia1,4676

ticketing_deep_links.txt

ticketing_deep_link_id, web_url, android_intent_uri ios_universal_link_url

tdl1, https://examplepetstore.com/api/gtfs/web, https://examplepetstore.com/api/gtfs/android, https://examplepetstore.com/api/gtfs/ios

Se la richiesta viene effettuata il 19-07-2019 e gli orari GTFS sono espressi nel fuso orario UTC+1, allora questa è la chiamata per il web:

https://examplepetstore.com/api/gtfs/web?service_date=%5B%2220190719%22%5D&ticketing_trip_id= %5B%22FR_SNCF_6603%22%5D&from_ticketing_stop_time_id=%5B%224924%22%5D&to_ticketing_stop_time_id= %5B%224676%22%5D&boarding_time=%5B%222019-07-19T05:59:00%2B00:00%22%5&arrival_time=%5B%222019-07-19T07:56:00%2B00:00%22%5D

Segui questi consigli per implementare le estensioni per l'acquisto di biglietti di Google Transit:

Linee guida
Se possibile, condividi link diretti tra aziende o percorsi.

Nel feed statico, ogni volta che più aziende o percorsi hanno gli stessi URL di link diretti, e devono condividere un singolo valore per il campo ticketing_deep_link_id. Questo consente i trasferimenti tra aziende o percorsi.

Imposta valori coerenti per ticketing_type.

Il valore ticketing_type per una determinata fermata deve essere coerente in tutte le righe nel file stop_times.txt.

Mappa ticketing_stop_id per le fermate principali e secondarie. Esegui la mappatura per tutte le fermate principali e secondarie che richiedono la vendita dei biglietti. Nella ticketing_identifiers.txt, i valori ticketing_stop_id non si propagano tra una fermata padre e le relative interruzioni secondarie.
Mappa ticketing_stop_id per ogni azienda che utilizza la stessa fermata nel feed.

Nel feed statico, se più aziende che abilitano l'acquisto di biglietti condividono la stessa fermata, la mappatura deve essere presente per ciascuna delle agenzie.

Per ulteriori dettagli, consulta la sezione Definizioni dei campi per ticketing_identifiers.txt.

Utilizza Link per app Android quando è necessario un link diretto a un'app Android.

Se il partner vuole aprire un'app per Android da un link diretto, imposta il link diretto come un link per app Android.

Utilizza i link universali di iOS quando è necessario un link diretto a un'app per iOS. Se il partner vuole aprire un'app per iOS da un link diretto, imposta quest'ultimo come Link universale per iOS.