Method: accounts.participationReportViews.query

Proporciona la capacidad de consultar (obtener, filtrar y segmentar) un informe de participación para una cuenta en particular.

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

Parámetros
name

string

Es el nombre del recurso de la cuenta sobre la que se realiza la consulta. El formato es accounts/{account_id}.

Parámetros de consulta

Parámetros
filter

string

Son las condiciones (campos y expresiones) que se usan para filtrar las métricas de participación de la cuenta sobre la que se realiza la consulta. 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.

Importante: La sintaxis correcta para agregar varias condiciones es la siguiente: "?filter=<condition>=<value>%20AND%20<condition>=<value>..."

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

A continuación, se muestran ejemplos de condiciones válidas:

  • 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

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

El valor de cadena 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.

Importante: Usar el parámetro aggregateBy con partnerHotelId o más de dos valores puede generar un error. Filtrar con partnerHotelId y date para reducir la cantidad de filas puede evitar que se produzcan errores.

pageSize

integer

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

pageToken

string

Es un token de página que se recibió de una solicitud anterior de participationReportViews.query. Proporciona este valor para recibir la página siguiente.

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

Cuerpo de la solicitud

El cuerpo de la solicitud debe estar vacío.

Cuerpo de la respuesta

Mensaje de respuesta para ParticipationReportService.QueryParticipationReport.

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

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

object (ParticipationResult)

Es la lista de resultados que coinciden con la búsqueda.

nextPageToken

string

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

Permisos de autorización

Requiere el siguiente permiso de OAuth:

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

Para obtener más información, consulta OAuth 2.0 Overview.

ParticipationResult

Representa el resultado de una consulta sobre las 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)

Es la clave del resultado.

opportunityCount

string (int64 format)

Cantidad total de oportunidades que estuvieron disponibles para un hotel específico. Las oportunidades son la cantidad total de casos en los 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 cumplías con los requisitos para participar en el proceso de subasta de Google Ads.

participationPercent

number

Es el porcentaje de participación en el que la cantidad de oportunidades en las que se participó correctamente se divide 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 que no son aptas para participar en el proceso de subasta de Google Ads. Se compone de los siguientes elementos:

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

object (MissedParticipationCountDetails)

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

partnerHotelDisplayName

string

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

Clave

Es la 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)

Es la fecha para la que solicitas las métricas.

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

userRegionCode

string

Es el código de región ISO 3116 del país o la región del usuario.

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

deviceType

enum (Device)

Es el tipo de dispositivo del usuario.

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

partnerHotelId

string

ID de hotel del socio.

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

hotelRegionCode

string

Es el código regional de 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, el campo hotelRegionCode no se devuelve en Key.

advanceBookingWindow

integer

Cantidad de días de anticipación con la que el usuario quiere reservar el itinerario.

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

lengthOfStayDays

integer

Cantidad de noches que se incluyen en el itinerario.

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

checkinDate

object (Date)

Fecha de entrada del itinerario.

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

occupancy

integer

La ocupación total del itinerario.

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

MissedParticipationCountDetails

Es el recuento de la participación perdida 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)

Es la 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)

Es la cantidad total de participación perdida debido a la suspensión de uno o más de tus hoteles a causa de infracciones en la precisión del precio.

noTaxBreakdownCount
(deprecated)

string (int64 format)

Es la 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 coincidió con el usuario.

noPriceCount
(deprecated)

string (int64 format)

Es la cantidad total de participaciones perdidas debido a que no se ofrece ningún precio para el itinerario solicitado.

noPriceCountDetails
(deprecated)

object (NoPriceCountDetails)

Son los motivos que contribuyeron al recuento de sin precio (por ejemplo, precios en tiempo real no disponibles) y el recuento 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 en la caché de Google o porque no se respondió correctamente a los precios en tiempo real. Se compone de los siguientes elementos:

  • Se agotó el ancho de banda
  • Falta la tarifa en la caché
  • Se bloqueó el itinerario
  • No se configuraron los precios en tiempo real
  • Se agotó el tiempo de espera de los precios en tiempo real
  • Error de precios en tiempo real
priceMissingCountDetails

object (PriceMissingCountDetails)

Son los motivos que contribuyeron al recuento de precios faltantes.

priceProblemCount

string (int64 format)

Indica la cantidad total de participación perdida debido a un problema con la exactitud del precio proporcionado para el itinerario. Se compone de los siguientes elementos:

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

object (PriceProblemCountDetails)

Son los motivos que contribuyeron al recuento de problemas de precios.

priceUnavailableCount

string (int64 format)

Es la cantidad total de participación perdida debido a que el precio no está disponible (-1) para el itinerario solicitado. Se compone de los siguientes elementos:

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

object (PriceUnavailableCountDetails)

Son los motivos que contribuyeron al recuento de precios no disponibles.

NoPriceCountDetails

Son los motivos que contribuyeron al recuento de ausencia de precios y el 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).
  • Mostraste un error.
  • Tu respuesta no tenía el formato correcto.
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 configuraste una oferta.
  • No tenías 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.
  • Restringiste a Google para que no acceda 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. Los precios en tiempo real no se activarán para ciertos itinerarios o IU predeterminados. En esta situación, 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.

PriceMissingCountDetails

Son los motivos que contribuyeron al recuento de precios faltantes y el 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 hay ningún precio en la caché para este itinerario. No se realizó una búsqueda en vivo debido a las 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 ni 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 queda 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 consulta en vivo que se envió a tu sistema.

livePricingErrorCount

string (int64 format)

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

PriceProblemCountDetails

Son los motivos que contribuyeron al recuento de problemas de precios y el recuento total de cada motivo.

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

string (int64 format)

Indica que el hotel está suspendido. Esto puede deberse a problemas persistentes en áreas como impuestos y comisiones 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 bastante más bajo en comparación con las tendencias regionales.

taxesAndFeesMissingCount

string (int64 format)

No se incluyeron los impuestos ni las comisiones en los precios.

basePriceViolationsCount

string (int64 format)

El precio base es demasiado bajo en relación con el precio total.

priceAccuracyIssueCount

string (int64 format)

Problema con la precisión del precio.

PriceUnavailableCountDetails

Son los motivos que contribuyeron al recuento de precios no disponibles y el recuento total de cada motivo.

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

string (int64 format)

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

participationNotLikelyCount

string (int64 format)

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