Method: accounts.participationReportViews.query

Предоставляет возможность запрашивать (получать, фильтровать и сегментировать) отчет об участии для конкретной учетной записи.

HTTP-запрос

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

В URL-адресе используется синтаксис транскодирования gRPC .

Параметры пути

Параметры
name

string

Имя ресурса запрашиваемой учетной записи. Формат: accounts/{account_id} .

Параметры запроса

Параметры
filter

string

Условия (поля и выражения), используемые для фильтрации показателей участия для запрашиваемой учетной записи. Синтаксис требует пробелов вокруг оператора in . В противном случае пробелы можно опустить. Условия можно объединять с помощью оператора AND .

Важно: Правильный синтаксис для добавления нескольких условий: "?filter=<condition>=<value>%20AND%20<condition>=<value>..."

Поле date обязательно для заполнения. Все остальные поля необязательны.

Примеры допустимых условий приведены ниже:

  • 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

Указывает, как сегментировать метрики, возвращаемые запросом. Например, если в качестве значения aggregateBy указан userRegionCode , participationResult предоставит метрики, агрегированные по регионам пользователей.

Строковое значение представляет собой список полей, разделенных запятыми. Допустимые поля: date , userRegionCode , deviceType , partnerHotelId , hotelRegionCode , advanceBookingWindow , lengthOfStayDays , checkinDate и occupancy . Поля, не указанные в списке, не включаются в ParticipationResult.

Важно : использование параметра aggregateBy с partnerHotelId или более чем двумя значениями может привести к ошибке. Фильтрация по partnerHotelId и date для уменьшения количества строк может предотвратить возникновение ошибок.

pageSize

integer

Максимальное количество результатов участия, которое может быть возвращено. Сервис может вернуть меньше этого значения. Если значение не указано, будет возвращено не более 10 000 результатов. Максимальное значение — 10 000; значения выше 10 000 будут преобразованы в 10 000.

pageToken

string

Токен страницы, полученный из предыдущего запроса participationReportViews.query. Предоставьте его, чтобы получить следующую страницу.

При использовании постраничной навигации все остальные параметры, передаваемые в participationReportViews.query, должны соответствовать вызову, который предоставил токен страницы.

Текст запроса

Тело запроса должно быть пустым.

Ответный текст

Ответное сообщение для ParticipationReportService.QueryParticipationReport .

В случае успеха тело ответа содержит данные следующей структуры:

JSON-представление
{
  "results": [
    {
      object (ParticipationResult)
    }
  ],
  "nextPageToken": string
}
Поля
results[]

object ( ParticipationResult )

Список результатов, соответствующих запросу.

nextPageToken

string

Токен пагинации используется для получения следующей страницы результатов.

Области полномочий

Требуется следующая область действия OAuth:

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

Для получения более подробной информации см.OAuth 2.0 Overview .

Результаты участия

Представляет собой результат запроса статистики участия для учетной записи.

JSON-представление
{
  "key": {
    object (Key)
  },
  "opportunityCount": string,
  "participationCount": string,
  "participationPercent": number,
  "missedParticipationCount": string,
  "missedParticipationCountDetails": {
    object (MissedParticipationCountDetails)
  },
  "partnerHotelDisplayName": string
}
Поля
key

object ( Key )

Ключ к результату.

opportunityCount

string ( int64 format)

Для конкретного отеля — общее количество доступных возможностей. Возможности — это общее количество случаев, когда реклама отеля могла быть показана пользователю.

participationCount

string ( int64 format)

Общее количество возможностей, в которых вы имели право участвовать в аукционе Google Ads.

participationPercent

number

Процент участия определяется как отношение количества успешно участвовавших в аукционе возможностей к общему количеству возможностей. Например, если объект недвижимости имел право участвовать в аукционе Google Ads 90 раз из 100 возможностей, то процент участия составляет 90%.

missedParticipationCount

string ( int64 format)

Общее количество возможностей, не подлежащих участию в аукционе Google Ads. Включает в себя следующее:

  • Отсутствует целевая страница
  • Цена отсутствует
  • Проблема ценообразования
  • Цена недоступна
  • Другой
missedParticipationCountDetails

object ( MissedParticipationCountDetails )

Указывается количество причин, по которым участие было пропущено (например, отсутствие возможности принять участие), а также общее количество причин по каждой из них.

partnerHotelDisplayName

string

Отображаемое название отеля-партнера. Это поле заполняется только при агрегировании результатов по partnerHotelId .

Ключ

Ключ к результату.

JSON-представление
{
  "date": {
    object (Date)
  },
  "userRegionCode": string,
  "deviceType": enum (Device),
  "partnerHotelId": string,
  "hotelRegionCode": string,
  "advanceBookingWindow": integer,
  "lengthOfStayDays": integer,
  "checkinDate": {
    object (Date)
  },
  "occupancy": integer
}
Поля
date

object ( Date )

Дата, за которую вы запрашиваете метрики.

Если значение параметра aggregateBy в запросе не совпадает date , то поле date не возвращается в Key .

userRegionCode

string

Региональный код ISO 3116 страны/региона пользователя.

Если userRegionCode не является значением параметра aggregateBy в вызове запроса, то поле userRegionCode не возвращается в Key .

deviceType

enum ( Device )

Тип устройства пользователя.

Если deviceType не является значением параметра aggregateBy в вызове запроса, то поле deviceType не возвращается в Key .

partnerHotelId

string

Идентификатор отеля-партнера.

Если partnerHotelId не является значением параметра aggregateBy в запросе, то поле partnerHotelId не возвращается в Key .

hotelRegionCode

string

Региональный код CLDR страны/региона отеля.

Если hotelRegionCode не является значением параметра aggregateBy в запросе, то поле hotelRegionCode не возвращается в Key .

advanceBookingWindow

integer

Количество дней, за которое пользователь хочет забронировать маршрут.

Если advanceBookingWindow не является значением параметра aggregateBy в вызове запроса, то поле advanceBookingWindow не возвращается в Key .

lengthOfStayDays

integer

Количество ночей в маршруте.

Если lengthOfStayDays не является значением параметра aggregateBy в вызове запроса, то поле lengthOfStayDays не возвращается в Key .

checkinDate

object ( Date )

Дата заезда, указанная в маршруте.

Если checkinDate не является значением параметра aggregateBy в вызове запроса, то поле checkinDate не возвращается в Key .

occupancy

integer

Общая заполняемость маршрута.

Если значение параметра aggregateBy в запросе не совпадает с значением параметра occupancy , то поле occupancy не возвращается в Key .

Подробности о количестве пропущенных участников

Количество пропущенных выступлений с разбивкой по причинам.

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)
  }
}
Поля
noAvailabilityCount
(deprecated)

string ( int64 format)

Общее количество участников, пропустивших мероприятие из-за недоступности варианта «отель/маршрут» или несоответствия путешественника условиям тарифов. Для участия в этих аукционах может потребоваться предоставление дополнительной информации о ценах.

hotelSuspendedCount
(deprecated)

string ( int64 format)

Общее количество пропущенных мероприятий из-за приостановки работы одного или нескольких ваших отелей вследствие нарушений правил ценообразования.

noTaxBreakdownCount
(deprecated)

string ( int64 format)

Общее количество случаев пропуска участия из-за того, что один или несколько ваших отелей не указали налоги и сборы отдельно.

noLandingPageCount

string ( int64 format)

Ни одна целевая страница не соответствовала пользователю.

noPriceCount
(deprecated)

string ( int64 format)

Общее количество пропущенных мероприятий из-за отсутствия предложения цены на запрошенный маршрут.

noPriceCountDetails
(deprecated)

object ( NoPriceCountDetails )

Причины, по которым цена не была указана (например, отсутствие актуальной информации о ценах), и общее количество случаев по каждой причине.

otherReasonCount

string ( int64 format)

Отель не принял участие по неизвестной причине.

priceMissingCount

string ( int64 format)

Общее количество пропущенных заявок из-за отсутствия цены в кэше Google или неспособности корректно реагировать на актуальные цены. Состоит из следующих данных:

  • Пропускная способность исчерпана
  • Отсутствует скорость кэширования
  • Маршрут заблокирован
  • Настройка ценообразования в режиме реального времени отсутствует.
  • Таймаут для отображения цен в реальном времени
  • Ошибка ценообразования в реальном времени
priceMissingCountDetails

object ( PriceMissingCountDetails )

Учитываются причины, которые привели к отсутствию цены.

priceProblemCount

string ( int64 format)

Общее количество случаев пропуска участия из-за неточности указанной в маршруте цены. Включает в себя следующее:

  • Отель приостановлен
  • Цена необычно высока
  • Цена необычайно низкая
  • Отсутствуют налоги и сборы.
priceProblemCountDetails

object ( PriceProblemCountDetails )

Учитываются причины, которые способствовали возникновению ценовой проблемы.

priceUnavailableCount

string ( int64 format)

Общее количество пропущенных мероприятий из-за недоступности указанной цены (-1) для запрошенного маршрута. Состоит из следующих пунктов:

  • Цена недоступна
  • Участие маловероятно
  • Другой
priceUnavailableCountDetails

object ( PriceUnavailableCountDetails )

Учитываются причины, которые привели к недоступности информации о цене.

NoPriceCountDetails

Причины, побудившие к отсутствию указания цены, и общее количество случаев по каждой причине.

JSON-представление
{
  "livePricingTechnicalIssueCount": string,
  "livePricingNotTriggeredCount": string,
  "livePricingConfigIssueCount": string,
  "livePricingNotAvailableCount": string,
  "livePricingOtherReasonCount": string
}
Поля
livePricingTechnicalIssueCount

string ( int64 format)

Общее количество случаев пропуска участия из-за технических проблем с ценообразованием в режиме реального времени по любой из следующих причин:

  • Вы ответили недостаточно быстро и превысили установленный срок ответа (около 4000 миллисекунд).
  • Вы вернули ошибку.
  • Ваш ответ был некорректно сформулирован.
livePricingNotTriggeredCount

string ( int64 format)

Общее количество случаев пропуска участия из-за того, что ценообразование в режиме реального времени не было запущено по любой из следующих причин:

  • Вы не сделали ставку.
  • У вас отсутствовала действующая целевая страница.
  • В тайнике не хватило ценников.
livePricingConfigIssueCount

string ( int64 format)

Общее количество случаев пропуска участия из-за того, что ценообразование в режиме реального времени не было запущено по любой из следующих причин:

  • Для этих поисковых запросов не была настроена функция отображения актуальных цен.
  • Вы ограничили доступ Google к рассматриваемому маршруту посещения отеля.
livePricingNotAvailableCount

string ( int64 format)

Общее количество пропущенных мероприятий из-за недоступности актуальных цен. Актуальные цены не будут активированы для некоторых стандартных маршрутов или пользовательских интерфейсов. В этом случае партнерам потребуется кэшированная цена для участия.

livePricingOtherReasonCount

string ( int64 format)

Количество пропущенных мероприятий из-за других проблем с ценообразованием в режиме реального времени.

PriceMissingCountDetails

Причины, которые привели к отсутствию данных о цене, и общее количество случаев по каждой причине.

JSON-представление
{
  "cacheRateMissingCount": string,
  "itineraryBlockedCount": string,
  "livePricingNotSetupCount": string,
  "bandwidthDepletedCount": string,
  "livePricingTimeoutCount": string,
  "livePricingErrorCount": string
}
Поля
cacheRateMissingCount

string ( int64 format)

Цена для этого маршрута отсутствует в кэше. Запрос в реальном времени не был выполнен из-за ограничений страницы.

itineraryBlockedCount

string ( int64 format)

Маршрут не соответствовал вашим базовым параметрам, поэтому цена на него не была получена ни по запросу в реальном времени, ни путем заполнения кэша.

livePricingNotSetupCount

string ( int64 format)

Цена для этого маршрута не была сохранена в кэше, и для этой учетной записи не был настроен запрос в реальном времени.

bandwidthDepletedCount

string ( int64 format)

Цена для этого маршрута не была сохранена в кэше, и квота на запросы в реальном времени исчерпана.

livePricingTimeoutCount

string ( int64 format)

Цена для этого маршрута не была сохранена в кэше, и запрос, отправленный в вашу систему в режиме реального времени, завершился по истечении времени ожидания.

livePricingErrorCount

string ( int64 format)

Цена для этого маршрута не была сохранена в кэше. Запрос в реальном времени не завершился по истечении времени ожидания, но ваша система вернула ошибку.

PriceProblemCountDetails

Перечислите причины, способствовавшие возникновению ценовой проблемы, и укажите общее количество причин по каждой из них.

JSON-представление
{
  "hotelSuspendedCount": string,
  "priceUnusuallyHighCount": string,
  "priceUnusuallyLowCount": string,
  "taxesAndFeesMissingCount": string,
  "basePriceViolationsCount": string,
  "priceAccuracyIssueCount": string
}
Поля
hotelSuspendedCount

string ( int64 format)

Работа отеля приостановлена. Это может быть связано с постоянными проблемами в таких областях, как неправильное начисление налогов и сборов.

priceUnusuallyHighCount

string ( int64 format)

Цена, указанная за этот маршрут, показалась мне странно высокой по сравнению с региональными тенденциями.

priceUnusuallyLowCount

string ( int64 format)

Цена, указанная за этот маршрут, показалась на удивление низкой по сравнению с региональными тенденциями.

taxesAndFeesMissingCount

string ( int64 format)

В ценах отсутствовали сведения о налогах и сборах.

basePriceViolationsCount

string ( int64 format)

Базовая цена слишком низкая по отношению к общей цене.

priceAccuracyIssueCount

string ( int64 format)

Проблема с точностью ценообразования.

ЦенаНедоступноКоличествоПодробности

Указывается количество причин, по которым цена оказалась недоступной, а также общее количество причин по каждой из них.

JSON-представление
{
  "priceUnavailableCount": string,
  "participationNotLikelyCount": string
}
Поля
priceUnavailableCount

string ( int64 format)

Отель не участвовал в программе, поскольку не был доступен в даты, указанные в маршруте.

participationNotLikelyCount

string ( int64 format)

Цена для этого маршрута не была сохранена в кэше, и запрос в режиме реального времени не выполнялся, поскольку ваш сервер обычно сообщает нам, что отель недоступен или все номера заняты.