# Method: accounts.participationReportViews.query

- [HTTP request](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.request_body)
- [Response body](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.response_body)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.QueryParticipationReportResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#body.aspect)
- [ParticipationResult](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#ParticipationResult)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#ParticipationResult.SCHEMA_REPRESENTATION)
- [Key](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#Key)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#Key.SCHEMA_REPRESENTATION)
- [MissedParticipationCountDetails](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#MissedParticipationCountDetails)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#MissedParticipationCountDetails.SCHEMA_REPRESENTATION)
- [NoPriceCountDetails](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#NoPriceCountDetails)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#NoPriceCountDetails.SCHEMA_REPRESENTATION)
- [PriceMissingCountDetails](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceMissingCountDetails)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceMissingCountDetails.SCHEMA_REPRESENTATION)
- [PriceProblemCountDetails](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceProblemCountDetails)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceProblemCountDetails.SCHEMA_REPRESENTATION)
- [PriceUnavailableCountDetails](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceUnavailableCountDetails)
  - [JSON representation](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceUnavailableCountDetails.SCHEMA_REPRESENTATION)

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](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `name` | `string` The resource name of the account being queried. The format is `accounts/{account_id}`. |

### Query parameters

| Parameters ||
|---|---|
| `filter` | `string` The conditions (fields and expressions) used to filter the participation metrics for the account being queried. The syntax requires spaces surrounding the `in` operator. Otherwise, spaces can be omitted. Conditions can be joined using the `AND` operator. **Important:** The correct syntax to add multiple conditions is: `"?filter=<condition>=<value>%20AND%20<condition>=<value>..."` The `date` field is required. All other fields are optional. Examples of valid conditions are as follows: - `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` Specifies how to segment the metrics returned by the query. For example, if `userRegionCode` is specified as the `aggregateBy` value, the `participationResult` will provide metrics aggregated by user region. The string value is a comma-separated list of fields. Valid fields are: `date`, `userRegionCode`, `deviceType`, `partnerHotelId`, `hotelRegionCode`, `advanceBookingWindow`, `lengthOfStayDays`, `checkinDate`, and `occupancy`. Fields that are not specified are not included in the ParticipationResult. **Important** : Using the `aggregateBy` parameter with `partnerHotelId` or more than two values can result in an error. Filtering with `partnerHotelId` and `date` to reduce the number of rows can prevent the occurrence of errors. |
| `pageSize` | `integer` 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` | `string` 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 `https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#google.travel.travelpartner.v3.ParticipationReportService.QueryParticipationReport`.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "results": [ { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#ParticipationResult`) } ], "nextPageToken": string } ``` |

| Fields ||
|---|---|
| `results[]` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#ParticipationResult`)`` The list of results that matches the query. |
| `nextPageToken` | `string` 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](https://developers.google.com/identity/protocols/OAuth2).

## ParticipationResult

Represents a result from querying for participation stats for an account.

| JSON representation |
|---|
| ``` { "key": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#Key`) }, "opportunityCount": string, "participationCount": string, "participationPercent": number, "missedParticipationCount": string, "missedParticipationCountDetails": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#MissedParticipationCountDetails`) }, "partnerHotelDisplayName": string } ``` |

| Fields ||
|---|---|
| `key` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#Key`)`` Key of the result. |
| `opportunityCount` | `string (https://developers.google.com/discovery/v1/type-format format)` 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` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of opportunities for which you were eligible to enter in the Google Ads auction process. |
| `participationPercent` | `number` 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` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of opportunities **not** eligible for the Google Ads auction process. Comprised of the following: - Landing page missing - Price missing - Price problem - Price unavailable - Other |
| `missedParticipationCountDetails` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#MissedParticipationCountDetails`)`` The reasons that contributed to the missed participation count (for example, no availability) and a total count for each reason. |
| `partnerHotelDisplayName` | `string` Partner's hotel display name. This field is only populated when the result is aggregated by `partnerHotelId`. |

## Key

Key of a result.

| JSON representation |
|---|
| ``` { "date": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/Date`) }, "userRegionCode": string, "deviceType": enum (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/Device`), "partnerHotelId": string, "hotelRegionCode": string, "advanceBookingWindow": integer, "lengthOfStayDays": integer, "checkinDate": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/Date`) }, "occupancy": integer } ``` |

| Fields ||
|---|---|
| `date` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/Date`)`` The date for which you are requesting metrics. If `date` is not a value of the `aggregateBy` parameter in the request call, then the `date` field is not returned in the `Key`. |
| `userRegionCode` | `string` ISO 3116 region code of the country/region of the user. If `userRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `userRegionCode` field is not returned in the `Key`. |
| `deviceType` | ``enum (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/Device`)`` The user's device type. If `deviceType` is not a value of the `aggregateBy` parameter in the request call, then the `deviceType` field is not returned in the `Key`. |
| `partnerHotelId` | `string` Partner's hotel ID. If `partnerHotelId` is not a value of the `aggregateBy` parameter in the request call, then the `partnerHotelId` field is not returned in the `Key`. |
| `hotelRegionCode` | `string` CLDR region code of the country/region of the hotel. If `hotelRegionCode` is not a value of the `aggregateBy` parameter in the request call, then the `hotelRegionCode` field is not returned in the `Key`. |
| `advanceBookingWindow` | `integer` The number of days in advance the user wants to book the itinerary. If `advanceBookingWindow` is not a value of the `aggregateBy` parameter in the request call, then the `advanceBookingWindow` field is not returned in the `Key`. |
| `lengthOfStayDays` | `integer` The number of nights for the itinerary. If `lengthOfStayDays` is not a value of the `aggregateBy` parameter in the request call, then the `lengthOfStayDays` field is not returned in the `Key`. |
| `checkinDate` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/Date`)`` The check-in date of the itinerary. If `checkinDate` is not a value of the `aggregateBy` parameter in the request call, then the `checkinDate` field is not returned in the `Key`. |
| `occupancy` | `integer` The total occupancy of the itinerary. If `occupancy` is not a value of the `aggregateBy` parameter in the request call, then the `occupancy` field is not returned in the `Key`. |

## MissedParticipationCountDetails

Missed participation count broken down by reason.

| JSON representation |
|---|
| ``` { "noAvailabilityCount": string, "hotelSuspendedCount": string, "noTaxBreakdownCount": string, "noLandingPageCount": string, "noPriceCount": string, "noPriceCountDetails": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#NoPriceCountDetails`) }, "otherReasonCount": string, "priceMissingCount": string, "priceMissingCountDetails": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceMissingCountDetails`) }, "priceProblemCount": string, "priceProblemCountDetails": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceProblemCountDetails`) }, "priceUnavailableCount": string, "priceUnavailableCountDetails": { object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceUnavailableCountDetails`) } } ``` |

| Fields ||
|---|---|
| `noAvailabilityCount (deprecated)` | `string (https://developers.google.com/discovery/v1/type-format format)` > [!WARNING] > This item is deprecated! 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 (deprecated)` | `string (https://developers.google.com/discovery/v1/type-format format)` > [!WARNING] > This item is deprecated! The total number of missed participations due to one or more of your hotels being suspended due to price accuracy violations. |
| `noTaxBreakdownCount (deprecated)` | `string (https://developers.google.com/discovery/v1/type-format format)` > [!WARNING] > This item is deprecated! The total number of missed participation due to one or more of your hotels not specifying taxes and fees separately. |
| `noLandingPageCount` | `string (https://developers.google.com/discovery/v1/type-format format)` No landing page matched the user. |
| `noPriceCount (deprecated)` | `string (https://developers.google.com/discovery/v1/type-format format)` > [!WARNING] > This item is deprecated! The total number of missed participations due to a price not being offered for the requested itinerary. |
| `noPriceCountDetails (deprecated)` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#NoPriceCountDetails`)`` > [!WARNING] > This item is deprecated! The reasons that contributed to the no price count (for example, live pricing not available) and the total count for each reason. |
| `otherReasonCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Hotel did not participate for an unknown reason. |
| `priceMissingCount` | `string (https://developers.google.com/discovery/v1/type-format format)` 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: - Bandwidth depleted - Cache rate missing - Itinerary blocked - Live pricing not set up - Live pricing timeout - Live pricing error |
| `priceMissingCountDetails` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceMissingCountDetails`)`` The reasons that contributed to the price missing count. |
| `priceProblemCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of missed participation due to an issue with the accuracy of the price provided for the itinerary. Comprised of the following: - Hotel suspended - Price unusually high - Price unusually low - Taxes and feeds missing |
| `priceProblemCountDetails` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#PriceProblemCountDetails`)`` The reasons that contributed to the price problem count. |
| `priceUnavailableCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of missed participation due to price listed as unavailable (-1) for the requested itinerary. Comprised of the following: - Price unavailable - Participation not likely - Other |
| `priceUnavailableCountDetails` | ``object (`https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.participationReportViews/query#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` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of missed participation due to technical issues with live pricing for any of the following reasons: - You didn't respond quickly enough and exceeded the response deadline (around 4000 milliseconds). - You returned an error. - Your response was malformed. |
| `livePricingNotTriggeredCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of missed participation due to live pricing not being triggered for any of the following reasons: - You didn't set a bid. - You didn't have a valid landing page. - There weren't enough prices in the cache. |
| `livePricingConfigIssueCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The total number of missed participation due to live pricing not being triggered for any of the following reasons: - You didn't have live pricing configured for these searches. - You restricted Google from accessing the hotel itinerary in question. |
| `livePricingNotAvailableCount` | `string (https://developers.google.com/discovery/v1/type-format format)` 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` | `string (https://developers.google.com/discovery/v1/type-format format)` 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` | `string (https://developers.google.com/discovery/v1/type-format format)` No price exists in the cache for this itinerary. A live query was not done due to page constraints. |
| `itineraryBlockedCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The itinerary was outside of your basic parameters, so no price was pulled for the itinerary from either live query or cache fill. |
| `livePricingNotSetupCount` | `string (https://developers.google.com/discovery/v1/type-format format)` No price was cached for this itinerary, and live query was not configured for this account. |
| `bandwidthDepletedCount` | `string (https://developers.google.com/discovery/v1/type-format format)` No price was cached for this itinerary, and there was no live query quota remaining. |
| `livePricingTimeoutCount` | `string (https://developers.google.com/discovery/v1/type-format format)` No price was cached for this itinerary, and a live query sent to your system timed out. |
| `livePricingErrorCount` | `string (https://developers.google.com/discovery/v1/type-format format)` 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` | `string (https://developers.google.com/discovery/v1/type-format format)` The hotel was suspended. This may be due to persistent problems in areas such as incorrect taxes and fees. |
| `priceUnusuallyHighCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The price given for this itinerary seemed oddly high compared to regional trends. |
| `priceUnusuallyLowCount` | `string (https://developers.google.com/discovery/v1/type-format format)` The price given for this itinerary seemed oddly low compared to regional trends. |
| `taxesAndFeesMissingCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Taxes and fees were missing from pricing. |
| `basePriceViolationsCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Base price too low relative to total price. |
| `priceAccuracyIssueCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Price accuracy issue. |

## PriceUnavailableCountDetails

The reasons that contributed to the price unavailable count and the total count for each reason.

| JSON representation |
|---|
| ``` { "priceUnavailableCount": string, "participationNotLikelyCount": string } ``` |

| Fields ||
|---|---|
| `priceUnavailableCount` | `string (https://developers.google.com/discovery/v1/type-format format)` Hotel did not participate because it wasn't available for the itinerary dates. |
| `participationNotLikelyCount` | `string (https://developers.google.com/discovery/v1/type-format format)` No price was cached for this itinerary, and no live query was done because your server usually tells us the hotel is unavailable or sold out. |