AI-generated Key Takeaways
- 
          
The
querymethod allows you to retrieve, filter, and segment a participation report for a specific account. - 
          
The request uses a GET HTTP method with path parameters to specify the account and query parameters to filter and segment the report.
 - 
          
The response body contains a list of
ParticipationResultobjects, each providing detailed metrics on opportunities and participation for a given key. - 
          
ParticipationResultincludes data such as opportunity count, participation count and percentage, and details on missed participation broken down by various reasons like missing or problematic prices. - 
          
The
Keyobject withinParticipationResultprovides the dimensions by which the report is aggregated, such as date, user region, device type, and hotel details. 
- HTTP request
 - Path parameters
 - Query parameters
 - Request body
 - Response body
 - Authorization scopes
 - ParticipationResult
 - Key
 - MissedParticipationCountDetails
 - NoPriceCountDetails
 - PriceMissingCountDetails
 - PriceProblemCountDetails
 - PriceUnavailableCountDetails
 
Provides the ability to query (get, filter, and segment) a participation report for a particular account.
HTTP request
GET https://travelpartner.googleapis.com/v3/{name=accounts/*}/participationReportViews:query
The URL uses gRPC Transcoding syntax.
Path parameters
| Parameters | |
|---|---|
name | 
                
                   
 The resource name of the account being queried. The format is   | 
              
Query parameters
| Parameters | |
|---|---|
filter | 
                
                   
 The conditions (fields and expressions) used to filter the participation metrics for the account being queried. The syntax requires spaces surrounding the  Important: The correct syntax to add multiple conditions is:  The  Examples of valid conditions are as follows: 
  | 
              
aggregateBy | 
                
                   
 Specifies how to segment the metrics returned by the query. For example, if  The string value is a comma-separated list of fields. Valid fields are:  Important: Using the   | 
              
pageSize | 
                
                   
 The maximum number of participation results to return. The service may return fewer than this value. If unspecified, at most 10,000 results will be returned. The maximum value is 10,000; values above 10,000 will be coerced to 10,000.  | 
              
pageToken | 
                
                   
 A page token, received from a previous participationReportViews.query request. Provide this to receive the subsequent page. When paginating, all other parameters provided to participationReportViews.query must match the call that provided the page token.  | 
              
Request body
The request body must be empty.
Response body
Response message for ParticipationReportService.QueryParticipationReport.
If successful, the response body contains data with the following structure:
| JSON representation | 
|---|
{
  "results": [
    {
      object ( | 
                  
| Fields | |
|---|---|
results[] | 
                    
                       
 The list of results that matches the query.  | 
                  
nextPageToken | 
                    
                       
 Pagination token used to retrieve the next page of results.  | 
                  
Authorization scopes
Requires the following OAuth scope:
https://www.googleapis.com/auth/travelpartner
For more information, see the OAuth 2.0 Overview.
ParticipationResult
Represents a result from querying for participation stats for an account.
| JSON representation | 
|---|
{ "key": { object (  | 
              
| Fields | |
|---|---|
key | 
                
                   
 Key of the result.  | 
              
opportunityCount | 
                
                   
 For a specific hotel, the total number of opportunities that were available. Opportunities are the total number of instances when a hotel ad could have been displayed to a user.  | 
              
participationCount | 
                
                   
 The total number of opportunities for which you were eligible to enter in the Google Ads auction process.  | 
              
participationPercent | 
                
                   
 The percentage rate of participation where the number of successfully participated opportunities is divided by the total number of opportunities. For example, if a property was eligible to enter the Google Ads auction 90 times out of 100 opportunities, the participation rate is 90%.  | 
              
missedParticipationCount | 
                
                   
 The total number of opportunities not eligible for the Google Ads auction process. Comprised of the following: 
  | 
              
missedParticipationCountDetails | 
                
                   
 The reasons that contributed to the missed participation count (for example, no availability) and a total count for each reason.  | 
              
partnerHotelDisplayName | 
                
                   
 Partner's hotel display name. This field is only populated when the result is aggregated by   | 
              
Key
Key of a result.
| JSON representation | 
|---|
{ "date": { object (  | 
              
| Fields | |
|---|---|
date | 
                
                   
 The date for which you are requesting metrics. If   | 
              
userRegionCode | 
                
                   
 ISO 3116 region code of the country/region of the user. If   | 
              
deviceType | 
                
                   
 The user’s device type. If   | 
              
partnerHotelId | 
                
                   
 Partner's hotel ID. If   | 
              
hotelRegionCode | 
                
                   
 CLDR region code of the country/region of the hotel. If   | 
              
advanceBookingWindow | 
                
                   
 The number of days in advance the user wants to book the itinerary. If   | 
              
lengthOfStayDays | 
                
                   
 The number of nights for the itinerary. If   | 
              
checkinDate | 
                
                   
 The check-in date of the itinerary. If   | 
              
occupancy | 
                
                   
 The total occupancy of the itinerary. If   | 
              
MissedParticipationCountDetails
Missed participation count broken down by reason.
| JSON representation | 
|---|
{ "noAvailabilityCount": string, "hotelSuspendedCount": string, "noTaxBreakdownCount": string, "noLandingPageCount": string, "noPriceCount": string, "noPriceCountDetails": { object (  | 
              
| Fields | |
|---|---|
noAvailabilityCount | 
                
                   
 The total number of missed participation due to the hotel/itinerary combination being unavailable, or the traveler was ineligible for the rates. To participate in these auctions, you may need to provide more pricing information.  | 
              
hotelSuspendedCount | 
                
                   
 The total number of missed participations due to one or more of your hotels being suspended due to price accuracy violations.  | 
              
noTaxBreakdownCount | 
                
                   
 The total number of missed participation due to one or more of your hotels not specifying taxes and fees separately.  | 
              
noLandingPageCount | 
                
                   
 No landing page matched the user.  | 
              
noPriceCount | 
                
                   
 The total number of missed participations due to a price not being offered for the requested itinerary.  | 
              
noPriceCountDetails | 
                
                   
 The reasons that contributed to the no price count (for example, live pricing not available) and the total count for each reason.  | 
              
otherReasonCount | 
                
                   
 Hotel did not participate for an unknown reason.  | 
              
priceMissingCount | 
                
                   
 The total number of missed participations due to either a price not being present in Google's cache or failing to successfully respond to live pricing. Comprised of the following: 
  | 
              
priceMissingCountDetails | 
                
                   
 The reasons that contributed to the price missing count.  | 
              
priceProblemCount | 
                
                   
 The total number of missed participation due to an issue with the accuracy of the price provided for the itinerary. Comprised of the following: 
  | 
              
priceProblemCountDetails | 
                
                   
 The reasons that contributed to the price problem count.  | 
              
priceUnavailableCount | 
                
                   
 The total number of missed participation due to price listed as unavailable (-1) for the requested itinerary. Comprised of the following: 
  | 
              
priceUnavailableCountDetails | 
                
                   
 The reasons that contributed to the price unavailable count.  | 
              
NoPriceCountDetails
The reasons that contributed to the no price count and the total count for each reason.
| JSON representation | 
|---|
{ "livePricingTechnicalIssueCount": string, "livePricingNotTriggeredCount": string, "livePricingConfigIssueCount": string, "livePricingNotAvailableCount": string, "livePricingOtherReasonCount": string }  | 
              
| Fields | |
|---|---|
livePricingTechnicalIssueCount | 
                
                   
 The total number of missed participation due to technical issues with live pricing for any of the following reasons: 
  | 
              
livePricingNotTriggeredCount | 
                
                   
 The total number of missed participation due to live pricing not being triggered for any of the following reasons: 
  | 
              
livePricingConfigIssueCount | 
                
                   
 The total number of missed participation due to live pricing not being triggered for any of the following reasons: 
  | 
              
livePricingNotAvailableCount | 
                
                   
 The total number of missed participation due to live pricing being unavailable. Live pricing will not be triggered for certain default itineraries or UIs. In this scenario, partners will need a cached price to participate.  | 
              
livePricingOtherReasonCount | 
                
                   
 The number of missed participations due to other issues with live pricing.  | 
              
PriceMissingCountDetails
The reasons that contributed to the price missing count and the total count for each reason.
| JSON representation | 
|---|
{ "cacheRateMissingCount": string, "itineraryBlockedCount": string, "livePricingNotSetupCount": string, "bandwidthDepletedCount": string, "livePricingTimeoutCount": string, "livePricingErrorCount": string }  | 
              
| Fields | |
|---|---|
cacheRateMissingCount | 
                
                   
 No price exists in the cache for this itinerary. A live query was not done due to page constraints.  | 
              
itineraryBlockedCount | 
                
                   
 The itinerary was outside of your basic parameters, so no price was pulled for the itinerary from either live query or cache fill.  | 
              
livePricingNotSetupCount | 
                
                   
 No price was cached for this itinerary, and live query was not configured for this account.  | 
              
bandwidthDepletedCount | 
                
                   
 No price was cached for this itinerary, and there was no live query quota remaining.  | 
              
livePricingTimeoutCount | 
                
                   
 No price was cached for this itinerary, and a live query sent to your system timed out.  | 
              
livePricingErrorCount | 
                
                   
 No price was cached for this itinerary. A live query did not time out, but your system returned an error.  | 
              
PriceProblemCountDetails
The reasons that contributed to the price problem count and the total count for each reason.
| JSON representation | 
|---|
{ "hotelSuspendedCount": string, "priceUnusuallyHighCount": string, "priceUnusuallyLowCount": string, "taxesAndFeesMissingCount": string, "basePriceViolationsCount": string, "priceAccuracyIssueCount": string }  | 
              
| Fields | |
|---|---|
hotelSuspendedCount | 
                
                   
 The hotel was suspended. This may be due to persistent problems in areas such as incorrect taxes and fees.  | 
              
priceUnusuallyHighCount | 
                
                   
 The price given for this itinerary seemed oddly high compared to regional trends.  | 
              
priceUnusuallyLowCount | 
                
                   
 The price given for this itinerary seemed oddly low compared to regional trends.  | 
              
taxesAndFeesMissingCount | 
                
                   
 Taxes and fees were missing from pricing.  | 
              
basePriceViolationsCount | 
                
                   
 Base price too low relative to total price.  | 
              
priceAccuracyIssueCount | 
                
                   
 Price accuracy issue.  |