Method: accounts.participationReportViews.query

Offri la possibilità di eseguire query (get, filtri e segmenti) di un report sulla partecipazione per un determinato account.

Richiesta HTTP

GET https://travelpartner.googleapis.com/v3/{name=accounts/*}/participationReportViews:query

L'URL utilizza la sintassi gRPC Transcoding.

Parametri del percorso

Parametri
name

string

Il nome della risorsa dell'account su cui viene eseguita la query. Il formato è accounts/{account_id}.

Parametri di ricerca

Parametri
filter

string

Le condizioni (campi ed espressioni) utilizzate per filtrare le metriche sulla partecipazione per l'account su cui viene eseguita la query. La sintassi richiede spazi che circondano l'operatore in. In caso contrario, gli spazi possono essere omessi. È possibile unire le condizioni utilizzando l'operatore and.

Il campo date è obbligatorio. Tutti gli altri campi sono facoltativi.

Ecco alcuni esempi di condizioni valide:

  • advanceBookingWindow = 2
  • advanceBookingWindow >= 0
  • advanceBookingWindow <= 5
  • advanceBookingWindow between 1 and 5
  • checkinDate = '2020-10-01'
  • checkinDate >= '2020-10-01'
  • checkinDate <= '2020-10-01'
  • checkinDate between '2020-10-01' and '2020-10-05'
  • date = '2020-02-04'
  • date between '2020-02-04' and '2020-02-09'
  • deviceType = 'TABLET'
  • deviceType in ('MOBILE', 'TABLET')
  • hotelRegionCode = 'US'
  • hotelRegionCode in ('US', 'CA')
  • lengthOfStayDays = 2
  • lengthOfStayDays >= 0
  • lengthOfStayDays <= 5
  • lengthOfStayDays between 1 and 5
  • occupancy = 2
  • occupancy >= 0
  • occupancy <= 5
  • occupancy between 1 and 5
  • partnerHotelId = 'AAA'
  • partnerHotelId in ('AAA', 'BBB')
  • userRegionCode = 'US'
  • userRegionCode in ('US', 'CA')
aggregateBy

string

Specifica come segmentare le metriche restituite dalla query. Ad esempio, se userRegionCode è specificato come valore aggregateBy, participationResult fornirà metriche aggregate per area geografica dell'utente.

Il valore stringa è un elenco di campi separato da virgole. I campi validi sono: date, userRegionCode, deviceType, partnerHotelId, hotelRegionCode, advanceBookingWindow, lengthOfStayDays, checkinDate e occupancy. I campi non specificati non sono inclusi nel ParticipationResult.

L'utilizzo di una specifica aggregateBy che produce un numero elevato di righe causerà un errore. Ciò è particolarmente vero quando i dati vengono aggregati per partnerHotelId o più di due campi. Per ridurre la possibilità di un errore, filtra per partnerHotelId e date in modo da includere solo un numero selezionato di hotel e date. Gli account con un numero elevato di hotel dovranno ridurre ulteriormente i dati con un maggiore filtro.

pageSize

integer

Il numero massimo di risultati di partecipazione da restituire. Il servizio potrebbe restituire un valore inferiore a questo valore. Se non viene specificato un valore, verranno restituiti al massimo 10.000 risultati. Il valore massimo è 10.000; i valori superiori a 10.000 verranno forzati a 10.000.

pageToken

string

Un token di pagina, ricevuto da una precedente richiestareportReportViews.query Forniscilo per ricevere la pagina successiva.

Durante l'impaginazione, tutti gli altri parametri forniti a PartecipaReportViews.query devono corrispondere alla chiamata che ha fornito il token della pagina.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Messaggio di risposta per ParticipationReportService.QueryParticipationReport.

Rappresentazione JSON
{
  "results": [
    {
      object (ParticipationResult)
    }
  ],
  "nextPageToken": string
}
Campi
results[]

object (ParticipationResult)

L'elenco dei risultati che corrispondono alla query.

nextPageToken

string

Token di impaginazione utilizzato per recuperare la pagina successiva dei risultati.

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

  • https://www.googleapis.com/auth/travelpartner

Per scoprire di più, consulta la Panoramica di OAuth 2.0.

Risultato partecipazione

Rappresenta un risultato dell'esecuzione di query per le statistiche sulla partecipazione per un account.

Rappresentazione JSON
{
  "key": {
    object (Key)
  },
  "opportunityCount": string,
  "participationCount": string,
  "participationPercent": number,
  "missedParticipationCount": string,
  "missedParticipationCountDetails": {
    object (MissedParticipationCountDetails)
  },
  "partnerHotelDisplayName": string
}
Campi
key

object (Key)

Il risultato chiave.

opportunityCount

string (int64 format)

Il numero totale di opportunità disponibili per un hotel in particolare. Le opportunità indicano il numero totale di volte in cui un annuncio per hotel poteva essere mostrato a un utente.

participationCount

string (int64 format)

Il numero totale di opportunità per le quali avevi l'idoneità per partecipare alla procedura di asta di Google Ads.

participationPercent

number

Il tasso percentuale di partecipazione, ovvero il numero di opportunità a cui si è partecipato diviso il numero totale di opportunità. Ad esempio, se una proprietà era idonea a partecipare all'asta di Google Ads 90 volte su 100 opportunità, il tasso di partecipazione è del 90%.

missedParticipationCount

string (int64 format)

Il numero totale di opportunità non idonee per la procedura di asta di Google Ads. Comprende quanto segue:

  • Pagina di destinazione mancante
  • Prezzo mancante
  • Problema con il prezzo
  • Prezzo non disponibile
  • Altro
missedParticipationCountDetails

object (MissedParticipationCountDetails)

I motivi che hanno contribuito al conteggio della partecipazione persa (ad esempio, nessuna disponibilità) e un conteggio totale per ogni motivo.

partnerHotelDisplayName

string

Nome visualizzato dell'hotel del partner. Questo campo viene compilato solo quando il risultato è aggregato per partnerHotelId.

Chiave

La chiave di un risultato.

Rappresentazione JSON
{
  "date": {
    object (Date)
  },
  "userRegionCode": string,
  "deviceType": enum (Device),
  "partnerHotelId": string,
  "hotelRegionCode": string,
  "advanceBookingWindow": integer,
  "lengthOfStayDays": integer,
  "checkinDate": {
    object (Date)
  },
  "occupancy": integer
}
Campi
date

object (Date)

La data per la quale richiedi le metriche.

Se date non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo date non viene restituito in Key.

userRegionCode

string

Codice regione ISO 3116 del paese/area geografica dell'utente.

Se userRegionCode non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo userRegionCode non viene restituito in Key.

deviceType

enum (Device)

Il tipo di dispositivo dell'utente.

Se deviceType non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo deviceType non viene restituito in Key.

partnerHotelId

string

ID hotel del partner.

Se partnerHotelId non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo partnerHotelId non viene restituito in Key.

hotelRegionCode

string

Codice regione CLDR del paese/area geografica dell'hotel.

Se hotelRegionCode non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo hotelRegionCode non viene restituito in Key.

advanceBookingWindow

integer

Il numero di giorni di anticipo con cui l'utente vuole prenotare l'itinerario.

Se advanceBookingWindow non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo advanceBookingWindow non viene restituito in Key.

lengthOfStayDays

integer

Il numero di notti per l'itinerario.

Se lengthOfStayDays non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo lengthOfStayDays non viene restituito in Key.

checkinDate

object (Date)

Data del check-in dell'itinerario.

Se checkinDate non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo checkinDate non viene restituito in Key.

occupancy

integer

Il numero totale di persone dell'itinerario.

Se occupancy non è un valore del parametro aggregateBy nella chiamata della richiesta, il campo occupancy non viene restituito in Key.

Lost ParticipationCountDetails

Conteggio delle partecipazioni perse suddiviso per motivo.

Rappresentazione JSON
{
  "noAvailabilityCount": string,
  "hotelSuspendedCount": string,
  "noTaxBreakdownCount": string,
  "noLandingPageCount": string,
  "noPriceCount": string,
  "noPriceCountDetails": {
    object (NoPriceCountDetails)
  },
  "otherReasonCount": string,
  "priceMissingCount": string,
  "priceMissingCountDetails": {
    object (PriceMissingCountDetails)
  },
  "priceProblemCount": string,
  "priceProblemCountDetails": {
    object (PriceProblemCountDetails)
  },
  "priceUnavailableCount": string,
  "priceUnavailableCountDetails": {
    object (PriceUnavailableCountDetails)
  }
}
Campi
noAvailabilityCount
(deprecated)

string (int64 format)

Il numero totale di partecipazioni perse a causa della mancata disponibilità della combinazione hotel/itinerario o perché il viaggiatore non è idoneo per le tariffe. Per partecipare a queste aste, potrebbe essere necessario fornire ulteriori informazioni sul prezzo.

hotelSuspendedCount
(deprecated)

string (int64 format)

Il numero totale di partecipazioni perse a causa della sospensione di uno o più hotel a causa di violazioni dell'accuratezza del prezzo.

noTaxBreakdownCount
(deprecated)

string (int64 format)

Il numero totale di mancate partecipazioni perché uno o più hotel non specificano tasse e commissioni separatamente.

noLandingPageCount

string (int64 format)

Nessuna pagina di destinazione corrispondeva all'utente.

noPriceCount
(deprecated)

string (int64 format)

Il numero totale di partecipazioni perse a causa di un prezzo non offerto per l'itinerario richiesto.

noPriceCountDetails
(deprecated)

object (NoPriceCountDetails)

I motivi che hanno contribuito al conteggio senza prezzo (ad esempio, i prezzi in tempo reale non disponibili) e il conteggio totale per ogni motivo.

otherReasonCount

string (int64 format)

L'hotel non ha partecipato per un motivo sconosciuto.

priceMissingCount

string (int64 format)

Il numero totale di partecipazioni perse a causa di un prezzo non presente nella cache di Google o di una mancata risposta corretta ai prezzi in tempo reale. Comprende quanto segue:

  • Larghezza di banda esaurita
  • Valutazione cache mancante
  • Itinerario bloccato
  • Prezzi in tempo reale non configurati
  • Prezzi in tempo reale scaduti
  • Errore relativo ai prezzi in tempo reale
priceMissingCountDetails

object (PriceMissingCountDetails)

I motivi che hanno contribuito al conteggio mancante del prezzo.

priceProblemCount

string (int64 format)

Il numero totale di mancate partecipazioni dovute a un problema con l'accuratezza del prezzo fornito per l'itinerario. Comprende quanto segue:

  • Hotel sospeso
  • Prezzo insolitamente alto
  • Prezzo insolitamente basso
  • Tasse e feed mancanti
priceProblemCountDetails

object (PriceProblemCountDetails)

I motivi che hanno contribuito al conteggio dei problemi di prezzo.

priceUnavailableCount

string (int64 format)

Il numero totale di partecipazioni perse a causa del prezzo indicato come non disponibile (-1) per l'itinerario richiesto. Comprende quanto segue:

  • Prezzo non disponibile
  • Partecipazione improbabile
  • Altro
priceUnavailableCountDetails

object (PriceUnavailableCountDetails)

I motivi per cui il prezzo non è disponibile vengono conteggiati.

NoPriceCountDetails

I motivi che hanno contribuito al conteggio senza prezzo e al numero totale per ciascun motivo.

Rappresentazione JSON
{
  "livePricingTechnicalIssueCount": string,
  "livePricingNotTriggeredCount": string,
  "livePricingConfigIssueCount": string,
  "livePricingNotAvailableCount": string,
  "livePricingOtherReasonCount": string
}
Campi
livePricingTechnicalIssueCount

string (int64 format)

Il numero totale di mancate partecipazioni dovute a problemi tecnici dei prezzi in tempo reale per uno dei seguenti motivi:

  • Non hai risposto abbastanza rapidamente e hai superato la scadenza per la risposta (circa 4000 millisecondi).
  • Hai restituito un errore.
  • La tua risposta non era valida.
livePricingNotTriggeredCount

string (int64 format)

Il numero totale di mancate partecipazioni perché non sono stati attivati i prezzi in tempo reale, per uno dei seguenti motivi:

  • Non hai impostato un'offerta.
  • Non hai una pagina di destinazione valida.
  • Nella cache non c'erano abbastanza prezzi.
livePricingConfigIssueCount

string (int64 format)

Il numero totale di mancate partecipazioni perché non sono stati attivati i prezzi in tempo reale, per uno dei seguenti motivi:

  • Non hai configurato i prezzi in tempo reale per queste ricerche.
  • Hai impedito a Google di accedere all'itinerario dell'hotel in questione.
livePricingNotAvailableCount

string (int64 format)

Il numero totale di mancate partecipazioni perché i prezzi in tempo reale non erano disponibili. I prezzi in tempo reale non verranno attivati per determinati itinerari o UI predefiniti. In questa situazione, i partner dovranno avere un prezzo memorizzato nella cache per partecipare.

livePricingOtherReasonCount

string (int64 format)

Il numero di partecipazioni perse a causa di altri problemi relativi ai prezzi in tempo reale.

PrezzoMancanteDettagliDettagli

I motivi che hanno contribuito al conteggio mancante del prezzo e al numero totale per ogni motivo.

Rappresentazione JSON
{
  "cacheRateMissingCount": string,
  "itineraryBlockedCount": string,
  "livePricingNotSetupCount": string,
  "bandwidthDepletedCount": string,
  "livePricingTimeoutCount": string,
  "livePricingErrorCount": string
}
Campi
cacheRateMissingCount

string (int64 format)

Nessun prezzo presente nella cache per questo itinerario. Non è stata eseguita una query in tempo reale a causa di vincoli di pagina.

itineraryBlockedCount

string (int64 format)

L'itinerario era fuori dai tuoi parametri di base, pertanto non è stato estratto alcun prezzo per l'itinerario dalla query in tempo reale o dal riempimento della cache.

livePricingNotSetupCount

string (int64 format)

Per questo itinerario, non è stato memorizzato nessun prezzo nella cache e non è stata configurata la query in tempo reale per questo account.

bandwidthDepletedCount

string (int64 format)

Per questo itinerario, non è stato memorizzato nessun prezzo nella cache e non è stata rimanente la quota di query in tempo reale.

livePricingTimeoutCount

string (int64 format)

Nessun prezzo è stato memorizzato nella cache per questo itinerario e la query in tempo reale inviata al tuo sistema è scaduta.

livePricingErrorCount

string (int64 format)

Nessun prezzo memorizzato nella cache per questo itinerario. Una query in tempo reale non è scaduta, ma il sistema ha restituito un errore.

PriceProblemaCountDetails

I motivi che hanno contribuito al conteggio dei problemi di prezzo e al numero totale per ogni motivo.

Rappresentazione JSON
{
  "hotelSuspendedCount": string,
  "priceUnusuallyHighCount": string,
  "priceUnusuallyLowCount": string,
  "taxesAndFeesMissingCount": string
}
Campi
hotelSuspendedCount

string (int64 format)

L'hotel è stato sospeso. Ciò può essere dovuto a problemi persistenti in aree come, ad esempio, tasse e commissioni.

priceUnusuallyHighCount

string (int64 format)

Il prezzo specificato per questo itinerario sembrava stranamente alto rispetto alle tendenze regionali.

priceUnusuallyLowCount

string (int64 format)

Il prezzo specificato per questo itinerario sembrava stranamente basso rispetto alle tendenze regionali.

taxesAndFeesMissingCount

string (int64 format)

Tasse e commissioni non presenti nei prezzi.

Prezzo non disponibile - Dettagli dettagli

I motivi per cui il prezzo non è disponibile vengono conteggiati e il numero totale per ogni motivo.

Rappresentazione JSON
{
  "priceUnavailableCount": string,
  "participationNotLikelyCount": string
}
Campi
priceUnavailableCount

string (int64 format)

L'hotel non ha partecipato perché non era disponibile per le date dell'itinerario.

participationNotLikelyCount

string (int64 format)

Nessun prezzo è stato memorizzato nella cache per questo itinerario e non è stata eseguita alcuna query in tempo reale perché, solitamente, il tuo server ci comunica se l'hotel non è disponibile o esaurito.