Method: accounts.participationReportViews.query

Permite consultar (obtener, filtrar y segmentar) un informe de participación de una cuenta determinada.

Solicitud HTTP

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

La URL usa la sintaxis de la transcodificación gRPC.

Parámetros de ruta de acceso

Parámetros
name

string

El nombre de recurso de la cuenta que se consulta. El formato es accounts/{account_id}.

Parámetros de consulta

Parámetros
filter

string

Las condiciones (campos y expresiones) que se usan para filtrar las métricas de participación de la cuenta en cuestión La sintaxis requiere espacios alrededor del operador in. De lo contrario, se pueden omitir los espacios. Las condiciones se pueden unir con el operador and.

El campo date es obligatorio. Todos los demás campos son opcionales.

Estos son algunos ejemplos de condiciones válidas:

  • advanceBookingWindow = 2
  • advanceBookingWindow >= 0
  • advanceBookingWindow <= 5
  • advanceBookingWindow between 1 and 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
  • lengthOfStayDays between 1 and 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

Especifica cómo segmentar las métricas que muestra la consulta. Por ejemplo, si se especifica userRegionCode como el valor aggregateBy, participationResult proporcionará métricas agregadas por región de usuario.

El valor de string es una lista de campos separados por comas. Los campos válidos son: date, userRegionCode, deviceType, partnerHotelId, hotelRegionCode, advanceBookingWindow, lengthOfStayDays, checkinDate y occupancy. Los campos que no se especifican no se incluyen en ParticipationResult.

Si usas una especificación aggregateBy que produce una gran cantidad de filas, se generará un error. Esto es especialmente cierto cuando se agrega por partnerHotelId o más campos. Si deseas reducir la posibilidad de que se produzca un error, filtra por partnerHotelId y date para incluir solo una cantidad seleccionada de hoteles y fechas. Las cuentas con una gran cantidad de hoteles deberán reducir aún más los datos con más filtros.

pageSize

integer

Es la cantidad máxima de resultados de participación que se mostrarán. El servicio puede mostrar menos que este valor. Si no se especifica, se mostrarán 10,000 resultados como máximo. El valor máximo es 10,000; los valores superiores a 10,000 se convertirán en 10,000.

pageToken

string

Un token de página, recibido de una solicitud de participaciónReportViews.query anterior. Proporciona esto para recibir la página siguiente.

Cuando se realiza la paginación, todos los demás parámetros proporcionados aParticipaReportViews.query deben coincidir con la llamada que proporcionó el token de la página.

Cuerpo de la solicitud

El cuerpo de la solicitud debe estar vacío.

Cuerpo de la respuesta

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene datos con la siguiente estructura:

Mensaje de respuesta para ParticipationReportService.QueryParticipationReport.

Representación JSON
{
  "results": [
    {
      object (ParticipationResult)
    }
  ],
  "nextPageToken": string
}
Campos
results[]

object (ParticipationResult)

La lista de resultados que coincide con la consulta.

nextPageToken

string

Token de paginación que se usa para recuperar la siguiente página de resultados.

Alcances de la autorización

Requiere el siguiente alcance de OAuth:

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

Para obtener más información, consulta la Descripción general de OAuth 2.0.

Resultado de participación

Representa un resultado de la consulta de estadísticas de participación de una cuenta.

Representación JSON
{
  "key": {
    object (Key)
  },
  "opportunityCount": string,
  "participationCount": string,
  "participationPercent": number,
  "missedParticipationCount": string,
  "missedParticipationCountDetails": {
    object (MissedParticipationCountDetails)
  },
  "partnerHotelDisplayName": string
}
Campos
key

object (Key)

Clave del resultado.

opportunityCount

string (int64 format)

Cantidad total de oportunidades que estaban disponibles para un hotel específico. Las oportunidades son la cantidad total de instancias en las que un anuncio de hotel se podría haber mostrado a un usuario.

participationCount

string (int64 format)

Es la cantidad total de oportunidades en las que era apto para participar en el proceso de subasta de Google Ads.

participationPercent

number

Es el porcentaje de participación en el que se divide la cantidad de oportunidades con éxito por la cantidad total de oportunidades. Por ejemplo, si una propiedad fuera apta para ingresar en la subasta de Google Ads 90 veces por cada 100 oportunidades, el porcentaje de participación es del 90%.

missedParticipationCount

string (int64 format)

Es la cantidad total de oportunidades no aptas para el proceso de subasta de Google Ads. Está compuesta por los siguientes elementos:

  • Falta la página de destino
  • Falta el precio
  • Problema con el precio
  • Precio no disponible
  • Otro
missedParticipationCountDetails

object (MissedParticipationCountDetails)

Indica los motivos que contribuyeron al recuento de participación perdida (por ejemplo, no hay disponibilidad) y a un recuento total para cada motivo.

partnerHotelDisplayName

string

Nombre visible del hotel del socio. Este campo solo se propaga cuando partnerHotelId agrega el resultado.

Clave

Clave de un resultado.

Representación JSON
{
  "date": {
    object (Date)
  },
  "userRegionCode": string,
  "deviceType": enum (Device),
  "partnerHotelId": string,
  "hotelRegionCode": string,
  "advanceBookingWindow": integer,
  "lengthOfStayDays": integer,
  "checkinDate": {
    object (Date)
  },
  "occupancy": integer
}
Campos
date

object (Date)

La fecha para la que solicitas métricas.

Si date no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo date en Key.

userRegionCode

string

Código de región ISO 3116 del país o región del usuario.

Si userRegionCode no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo userRegionCode en Key.

deviceType

enum (Device)

Indica el tipo de dispositivo del usuario.

Si deviceType no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo deviceType en Key.

partnerHotelId

string

ID de hotel del socio

Si partnerHotelId no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo partnerHotelId en Key.

hotelRegionCode

string

Código de región CLDR del país o la región del hotel.

Si hotelRegionCode no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo hotelRegionCode en Key.

advanceBookingWindow

integer

Indica la cantidad de días de anticipación con los que el usuario desea reservar el itinerario.

Si advanceBookingWindow no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo advanceBookingWindow en Key.

lengthOfStayDays

integer

Indica la cantidad de noches del itinerario.

Si lengthOfStayDays no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo lengthOfStayDays en Key.

checkinDate

object (Date)

La fecha de entrada del itinerario.

Si checkinDate no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo checkinDate en Key.

occupancy

integer

Ocupación total del itinerario.

Si occupancy no es un valor del parámetro aggregateBy en la llamada de solicitud, entonces no se muestra el campo occupancy en Key.

Detalles de recuento perdido

Recuento de participación perdidas desglosado por motivo.

Representación 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)
  }
}
Campos
noAvailabilityCount
(deprecated)

string (int64 format)

Cantidad total de participación perdida debido a que la combinación hotel/itinerario no estaba disponible o el viajero no era apto para recibir las tarifas. Para participar en estas subastas, es posible que debas proporcionar más información sobre los precios.

hotelSuspendedCount
(deprecated)

string (int64 format)

Cantidad total de participaciones perdidas debido a la suspensión de uno o más de tus hoteles debido a incumplimientos en la precisión del precio.

noTaxBreakdownCount
(deprecated)

string (int64 format)

Cantidad total de participación perdida debido a que uno o más de tus hoteles no especificaron impuestos y tarifas por separado.

noLandingPageCount

string (int64 format)

Ninguna página de destino coincide con el usuario.

noPriceCount
(deprecated)

string (int64 format)

Cantidad total de participaciones perdidas debido a que no se ofreció un precio para el itinerario solicitado.

noPriceCountDetails
(deprecated)

object (NoPriceCountDetails)

Los motivos que contribuyeron a la cantidad sin precio (por ejemplo, precios en tiempo real no disponibles) y la cantidad total de cada motivo.

otherReasonCount

string (int64 format)

El hotel no participó por un motivo desconocido.

priceMissingCount

string (int64 format)

Es la cantidad total de participaciones perdidas debido a que un precio no estaba presente en la caché de Google o porque no se respondieron correctamente los precios en tiempo real. Está compuesta por los siguientes elementos:

  • Se agotó el ancho de banda
  • Falta la tasa de caché
  • Itinerario bloqueado
  • No se configuraron los precios en tiempo real
  • Tiempo de espera de precios en tiempo real
  • Error en los precios en tiempo real
priceMissingCountDetails

object (PriceMissingCountDetails)

Los motivos que contribuyeron a la falta del precio.

priceProblemCount

string (int64 format)

Cantidad total de participación perdida debido a un problema con la precisión del precio proporcionado para el itinerario. Está compuesta por los siguientes elementos:

  • Se suspendió el hotel
  • Precio inusualmente alto
  • Precio inusualmente bajo
  • Faltan los impuestos y los feeds
priceProblemCountDetails

object (PriceProblemCountDetails)

Los motivos que contribuyeron al recuento de problemas de precios.

priceUnavailableCount

string (int64 format)

Cantidad total de participación perdida debido a que el precio no está disponible (-1) para el itinerario solicitado. Está compuesta por los siguientes elementos:

  • Precio no disponible
  • La participación no es probable
  • Otro
priceUnavailableCountDetails

object (PriceUnavailableCountDetails)

Los motivos que contribuyeron a que el precio no estuviera disponible son válidos.

Detalles del precio no

Los motivos que contribuyeron a que no se contara ningún precio y al recuento total de cada motivo.

Representación JSON
{
  "livePricingTechnicalIssueCount": string,
  "livePricingNotTriggeredCount": string,
  "livePricingConfigIssueCount": string,
  "livePricingNotAvailableCount": string,
  "livePricingOtherReasonCount": string
}
Campos
livePricingTechnicalIssueCount

string (int64 format)

Cantidad total de participación perdida debido a problemas técnicos con los precios en tiempo real por alguno de los siguientes motivos:

  • No respondiste lo suficientemente rápido y excediste el plazo de respuesta (alrededor de 4,000 milisegundos).
  • Muestra un error.
  • Tu respuesta tenía un formato incorrecto.
livePricingNotTriggeredCount

string (int64 format)

Cantidad total de participación perdida debido a que los precios en tiempo real no se activaron por alguno de los siguientes motivos:

  • No estableció una oferta.
  • No tenía una página de destino válida.
  • No había suficientes precios en la caché.
livePricingConfigIssueCount

string (int64 format)

Cantidad total de participación perdida debido a que los precios en tiempo real no se activaron por alguno de los siguientes motivos:

  • No configuraste el precio en tiempo real para estas búsquedas.
  • Impediste que Google accediera al itinerario de hotel en cuestión.
livePricingNotAvailableCount

string (int64 format)

Es la cantidad total de participación perdida debido a que los precios en tiempo real no estaban disponibles. No se activarán los precios en tiempo real para ciertos itinerarios o IU predeterminados. En este caso, los socios necesitarán un precio almacenado en caché para participar.

livePricingOtherReasonCount

string (int64 format)

Es la cantidad de participaciones perdidas debido a otros problemas con los precios en tiempo real.

Faltan los detalles del precio

Motivos que contribuyeron al recuento de precios faltantes y al recuento total de cada motivo.

Representación JSON
{
  "cacheRateMissingCount": string,
  "itineraryBlockedCount": string,
  "livePricingNotSetupCount": string,
  "bandwidthDepletedCount": string,
  "livePricingTimeoutCount": string,
  "livePricingErrorCount": string
}
Campos
cacheRateMissingCount

string (int64 format)

No existe ningún precio en la caché para este itinerario. No se realizó una búsqueda en vivo debido a restricciones de la página.

itineraryBlockedCount

string (int64 format)

El itinerario estaba fuera de tus parámetros básicos, por lo que no se obtuvo ningún precio para él de las consultas en vivo ni del llenado de caché.

livePricingNotSetupCount

string (int64 format)

No se almacenó en caché ningún precio para este itinerario y no se configuraron las consultas en vivo para esta cuenta.

bandwidthDepletedCount

string (int64 format)

No se almacenó en caché ningún precio para este itinerario y no quedó cuota de consultas en vivo.

livePricingTimeoutCount

string (int64 format)

No se almacenó en caché ningún precio para este itinerario y se agotó el tiempo de espera de la búsqueda en vivo que se envió a tu sistema.

livePricingErrorCount

string (int64 format)

No se almacenó en caché ningún precio para este itinerario. No se agotó el tiempo de espera de la consulta en vivo, pero tu sistema mostró un error.

Detalles del problema de precios

Los motivos que contribuyeron al recuento de problemas de precios y el recuento total de cada uno.

Representación JSON
{
  "hotelSuspendedCount": string,
  "priceUnusuallyHighCount": string,
  "priceUnusuallyLowCount": string,
  "taxesAndFeesMissingCount": string
}
Campos
hotelSuspendedCount

string (int64 format)

El hotel se suspendió. Esto puede deberse a problemas persistentes en áreas como impuestos y tarifas incorrectos.

priceUnusuallyHighCount

string (int64 format)

El precio indicado para este itinerario pareció ser extrañamente alto en comparación con las tendencias regionales.

priceUnusuallyLowCount

string (int64 format)

El precio indicado para este itinerario pareció ser extrañamente bajo en comparación con las tendencias regionales.

taxesAndFeesMissingCount

string (int64 format)

Faltan impuestos y tarifas en los precios.

Detalles no disponibles del precio

Los motivos que contribuyeron al recuento de precios no disponibles y el recuento total de cada uno.

Representación JSON
{
  "priceUnavailableCount": string,
  "participationNotLikelyCount": string
}
Campos
priceUnavailableCount

string (int64 format)

El hotel no participó porque no estaba disponible para las fechas del itinerario.

participationNotLikelyCount

string (int64 format)

No se almacenó en caché ningún precio para este itinerario y no se realizó ninguna consulta en vivo porque tu servidor nos suele indicar que el hotel no está disponible o se agotó.