Method: accounts.participationReportViews.query

Consente di eseguire query (recuperare, filtrare e segmentare) su 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 di transcodifica gRPC.

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 query

Parametri
filter

string

Le condizioni (campi ed espressioni) utilizzate per filtrare le metriche di coinvolgimento per l'account per cui viene eseguita la query. La sintassi richiede spazi intorno all'operatore in. In caso contrario, gli spazi possono essere omessi. Le condizioni possono essere unite utilizzando l'operatore AND.

Importante:la sintassi corretta per aggiungere più condizioni è: "?filter=<condition>=<value>%20AND%20<condition>=<value>..."

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

Di seguito sono riportati alcuni esempi di condizioni valide:

  • advanceBookingWindow = 2
  • advanceBookingWindow >= 0
  • advanceBookingWindow <= 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
  • 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 di aggregateBy, participationResult fornirà metriche aggregate per regione utente.

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

Importante: l'utilizzo del parametro aggregateBy con partnerHotelId o più di due valori può generare un errore. Il filtraggio con partnerHotelId e date per ridurre il numero di righe può impedire il verificarsi di errori.

pageSize

integer

Il numero massimo di risultati di partecipazione da restituire. Il servizio potrebbe restituire un numero inferiore a questo valore. Se non specificato, 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 richiesta participationReportViews.query. Fornisci questo valore per ricevere la pagina successiva.

Durante la paginazione, tutti gli altri parametri forniti a participationReportViews.query devono corrispondere alla chiamata che ha fornito il token di pagina.

Corpo della richiesta

Il corpo della richiesta deve essere vuoto.

Corpo della risposta

Messaggio di risposta per ParticipationReportService.QueryParticipationReport.

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

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

object (ParticipationResult)

L'elenco dei risultati che corrispondono alla query.

nextPageToken

string

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

Ambiti di autorizzazione

Richiede il seguente ambito OAuth:

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

Per saperne di più, consulta la OAuth 2.0 Overview.

ParticipationResult

Rappresenta un risultato della query per le statistiche di partecipazione di un account.

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

object (Key)

Chiave del risultato.

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 delle mancate partecipazioni (ad esempio, nessuna disponibilità) e un conteggio totale per ogni motivo.

partnerHotelDisplayName

string

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

Chiave

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 cui stai richiedendo le metriche.

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

userRegionCode

string

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

Se userRegionCode non è un valore del parametro aggregateBy nella chiamata di 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 di 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 di richiesta, il campo partnerHotelId non viene restituito in Key.

hotelRegionCode

string

Codice regione CLDR del paese/della regione dell'hotel.

Se hotelRegionCode non è un valore del parametro aggregateBy nella chiamata di 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 di 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 di richiesta, il campo lengthOfStayDays non viene restituito in Key.

checkinDate

object (Date)

La data di check-in dell'itinerario.

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

occupancy

integer

L'occupazione totale dell'itinerario.

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

MissedParticipationCountDetails

Conteggio delle mancate partecipazioni 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 mancate partecipazioni 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 mancate partecipazioni dovute alla sospensione di uno o più hotel per violazioni inerenti all'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 mancate partecipazioni 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, 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 mancate partecipazioni 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
  • Timeout dei prezzi in tempo reale
  • Errore relativo ai prezzi in tempo reale
priceMissingCountDetails

object (PriceMissingCountDetails)

I motivi che hanno contribuito al conteggio dei prezzi mancanti.

priceProblemCount

string (int64 format)

Il numero totale di mancate partecipazioni a causa di un problema relativo all'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 relativi ai prezzi.

priceUnavailableCount

string (int64 format)

Il numero totale di mancate partecipazioni 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 che hanno contribuito al conteggio dei prezzi non disponibili.

NoPriceCountDetails

I motivi che hanno contribuito al conteggio senza prezzo e il conteggio totale per ogni 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 con i 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 disponevi di una pagina di destinazione valida.
  • I prezzi nella cache non erano sufficienti.
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 mancate partecipazioni dovute ad altri problemi con i prezzi in tempo reale.

PriceMissingCountDetails

I motivi che hanno contribuito al conteggio dei prezzi mancanti e il conteggio 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. A causa di vincoli di pagina, non è stata eseguita una query in tempo reale.

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)

Nessun prezzo è stato memorizzato nella cache per questo itinerario e non è rimasta nessuna 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.

PriceProblemCountDetails

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

Rappresentazione JSON
{
  "hotelSuspendedCount": string,
  "priceUnusuallyHighCount": string,
  "priceUnusuallyLowCount": string,
  "taxesAndFeesMissingCount": string,
  "basePriceViolationsCount": string,
  "priceAccuracyIssueCount": 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.

basePriceViolationsCount

string (int64 format)

Il prezzo base è troppo basso rispetto al prezzo totale.

priceAccuracyIssueCount

string (int64 format)

Problema di accuratezza del prezzo.

PriceUnavailableCountDetails

I motivi che hanno contribuito al conteggio dei prezzi non disponibili e il conteggio 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.