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. |