En esta página, se presentan algunas llamadas de ejemplo con la API de Travel Partner v3.
Los extremos de la API de Travel Partner usan sintaxis de REST y llamadas mediante HTTPS. El base_url para todas las solicitudes a la API es el siguiente:
https://travelpartner.googleapis.com/v3/accounts/account_id
Para obtener la lista completa de los campos de solicitud y respuesta, consulta el catálogo de recursos de API.
Informe de rendimiento de la propiedad
El servicio de vista de informes de rendimiento de la propiedad proporciona la capacidad de consultar (obtener, filtrar y segmentar) un informe de rendimiento de propiedad de una cuenta en particular.
Cómo consultar un informe de rendimiento de propiedades
En el siguiente ejemplo, se obtiene el informe de rendimiento de propiedades de todas las propiedades en la cuenta 12345678
, filtrado hasta la fecha del 11 de mayo de 2022 y agrupado por ID de hotel de socio.
GET https://travelpartner.googleapis.com/v3/accounts/12345678/propertyPerformanceReportViews:query?filter=date%20%3D%20%272022-05-11%27&aggregateBy=partnerPropertyId
Respuesta de muestra
{ "results": [ { "partnerPropertyId": "10001", "clickCount": "47" "impressionCount": "360" }, { "partnerPropertyId": "10003", "clickCount": "23" "impressionCount": "400" }, { "partnerPropertyId": "10007", "clickCount": "106" "impressionCount": "780" }, { "partnerPropertyId": "10009", "clickCount": "81" "impressionCount": "520" }, ] }
Hoteles
El servicio de visualización de hoteles proporciona una lista de todos los hoteles o un resumen de ellos para una cuenta determinada.
Obtén una lista de hoteles
En el siguiente ejemplo, se recupera una lista de todos los hoteles de la cuenta 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/hotelviews
La solicitud acepta parámetros de consulta para navegar por los resultados de varias páginas:
GETbase_url /hotelviews?pageSize=10&pageToken=11
Respuesta de muestra
{ "nextPageToken": "11", "hotelViews": [ { "googleHotelDisplayName": "Alameda Hotel", "googleHotelId": "11111111111111111111", "partnerHotelDisplayName": "Alameda Hotel", "partnerHotelId": "10", "dataIssues": [ "MISSING_STREET_NUMBER" ], "googleClusterId": "1131326789990787753" }, { "googleClusterId": "11390920309628839218", "googleHotelDisplayName": "At Hotel", "googleHotelId": "9999999999999999999", "partnerHotelDisplayName": "At Hotel and Restaurant", "partnerHotelId": "100001" }, ... { "googleHotelDisplayName": "Aquapark & Spa Hotel", "googleHotelId": "444444444444444444", "partnerHotelDisplayName": "Aquapark & Spa Hotel", "partnerHotelId": "100069", "dataIssues": [ "MISSING_PHONE_NUMBER", "MISSING_STREET_NUMBER", "LATLONG_INCONSISTENT_WITH_ADDRESS" ], "googleClusterId": "18401597592098761505" } ] }
Obtén un resumen de propiedades
En este ejemplo, se muestra un resumen de las propiedades de la cuenta 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/hotelviews:summarize
Respuesta de muestra
{ "lastManifestUpdateTime": "2019-09-26T18:24:54.479972Z", "matchedPropertyCount": "206107", "overclusteredPropertyWithErrorsCount": "16927", "overclusteredPropertyCount": "17611", "unmatchedPropertyWithErrorsCount": "93638", "lastFeedSubmissionTime": "2019-09-19T20:51:08Z", "unmatchedPropertyCount": "99673" }
Informe de participación
El servicio de visualización de informes de participación permite consultar (obtener, filtrar y segmentar) un informe de participación de una cuenta determinada.
Cómo consultar un informe de participación
En el siguiente ejemplo, se obtiene el informe de participación de todas las propiedades en la cuenta 12345678
y se filtra el informe con una fecha del 4/10/20.
GET https://travelpartner.googleapis.com/v3/accounts/12345678/participationReportViews:query?filter=date%20%3D%20%272020-10-04%27
Respuesta de muestra
{ "results": [ { "missedParticipationCountDetails": { "noAvailabilityCount": "628873", "otherReasonCount": "22", "hotelSuspendedCount": "262", "noTaxBreakdownCount": "1", "noLandingPageCount": "4558", "noPriceCount": "43194", "noPriceCountDetails": { "livePricingTechnicalIssueCount": "4795", "livePricingNotTriggeredCount": "2", "livePricingConfigIssueCount": "3", "livePricingNotAvailableCount": "27731", "livePricingOtherReasonCount": "1" } "otherReasonCount": "1" "priceMissingCount": "2235", "priceMissingCountDetails": { "cacheRateMissingCount": "2030", "itineraryBlockedCount": "196", "livePricingNotSetupCount": "0", "bandwidthDepletedCount": "1", "livePricingTimeoutCount": "8", "livePricingErrorCount": "0" } "priceProblemCount": "0", "priceProblemCountDetails": { "hotelSuspendedCount": "0", "priceUnusuallyHighCount": "0", "priceUnusuallyLowCount": "0", "taxesAndFeesMissingCount": "0" } "priceUnavailableCount": "0", "priceUnavailableCountDetails": { "priceUnavailableCount": "0", "participationNotLikelyCount": "0" } }, "participationCount": "1298876", "missedParticipationCount": "679146", "opportunityCount": "1975787", "participationPercent": 0.6573967740444975 } ] }
Precisión del precio
El Servicio de vistas de precisión del precio permite recuperar informes de precisión del precio y cuadros de evaluación de una cuenta en particular.
Cómo obtener un informe de precisión del precio
En el siguiente ejemplo, se recupera el informe de precisión del precio el 26 de agosto de 2019 de la cuenta 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews/20190826
Además de los parámetros de búsqueda habituales para paginar la respuesta, hay algunos más que permiten incluir precios coincidentes o indicadores de píxeles en los resultados.
En este ejemplo, el informe de precisión del precio del 26 de agosto de 2019 incluye indicadores coincidentes y precios de píxeles:
GETbase_url /priceAccuracyViews/20190826?includeMatchedPrices=true&includePixels=true
Enumera los informes de precisión de precios disponibles
Para obtener una lista de los informes disponibles, envía esta solicitud:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews
Puedes incluir los parámetros de búsqueda habituales para paginar los resultados.
Respuesta de muestra
{ "priceAccuracyViews": [ { "name": "accounts/12345678/priceAccuracyViews/20190925" }, ... { "name": "accounts/12345678/priceAccuracyViews/20190827" } ] }
Obtén una puntuación de precisión del precio
Para obtener el cuadro de evaluación de la precisión del precio, usa el método summarize
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews:summarize
Respuesta de muestra
{ "updateTime": "2019-09-26T18:29:32.372204Z", "currentScore": "EXCELLENT", "predictedScore": "EXCELLENT" }
Cobertura de precios
El servicio de vistas de cobertura de precios proporciona el informe de cobertura de precios más reciente o todo el historial de cobertura de precios.
Obtén las estadísticas de cobertura de precios más recientes
En el siguiente ejemplo, se recuperan las estadísticas de cobertura de precios más recientes de la cuenta 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceCoverageViews:latest
Respuesta de muestra
{ "calculationDate": { "month": 10, "day": 1, "year": 2019 }, "priceCoveragePercent": 7.683124346337668, "matchedPropertyCount": 486546, "priceCoverageBuckets": [ { "availablePriceCount": "57708897", "advanceBookingWindowRange": "DAYS_0_TO_30", "priceCoveragePercent": 54.65867924338515, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "44221", "advanceBookingWindowRange": "DAYS_0_TO_30", "priceCoveragePercent": 0.04188368831276978, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "59988397", "advanceBookingWindowRange": "DAYS_31_TO_60", "priceCoveragePercent": 58.71161890824986, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "8805", "advanceBookingWindowRange": "DAYS_31_TO_60", "priceCoveragePercent": 0.008617596574336533, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "55096752", "advanceBookingWindowRange": "DAYS_61_TO_90", "priceCoveragePercent": 53.9240864613594, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "11747", "advanceBookingWindowRange": "DAYS_61_TO_90", "priceCoveragePercent": 0.011496979779526548, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "117074", "advanceBookingWindowRange": "DAYS_91_TO_120", "priceCoveragePercent": 0.11458222616057641, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "7527", "advanceBookingWindowRange": "DAYS_91_TO_120", "priceCoveragePercent": 0.007366797207839987, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "71904", "advanceBookingWindowRange": "DAYS_121_TO_150", "priceCoveragePercent": 0.07037361318354277, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "5544", "advanceBookingWindowRange": "DAYS_121_TO_150", "priceCoveragePercent": 0.005426002885646989, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "56528", "advanceBookingWindowRange": "DAYS_151_TO_180", "priceCoveragePercent": 0.05532487213561562, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "4680", "advanceBookingWindowRange": "DAYS_151_TO_180", "priceCoveragePercent": 0.00458039204632538, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "29269", "advanceBookingWindowRange": "DAYS_181_TO_210", "priceCoveragePercent": 0.02864604589826871, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "2336", "advanceBookingWindowRange": "DAYS_181_TO_210", "priceCoveragePercent": 0.0022862811581658314, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "22967", "advanceBookingWindowRange": "DAYS_211_TO_240", "priceCoveragePercent": 0.022478176095716885, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "1906", "advanceBookingWindowRange": "DAYS_211_TO_240", "priceCoveragePercent": 0.001865433171003456, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "19387", "advanceBookingWindowRange": "DAYS_241_TO_270", "priceCoveragePercent": 0.01897437192352781, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "2179", "advanceBookingWindowRange": "DAYS_241_TO_270", "priceCoveragePercent": 0.0021326227070391033, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "14102", "advanceBookingWindowRange": "DAYS_271_TO_300", "priceCoveragePercent": 0.013801856546427458, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "2048", "advanceBookingWindowRange": "DAYS_271_TO_300", "priceCoveragePercent": 0.0020044108783919615, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "10280", "advanceBookingWindowRange": "DAYS_301_TO_330", "priceCoveragePercent": 0.010061203041928398, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "1333", "advanceBookingWindowRange": "DAYS_301_TO_330", "priceCoveragePercent": 0.0013046287602033614, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" } ], "priceCoverageBinaryPercent": 76.38722751805585 }
Obtén el historial de cobertura de precios
Esta solicitud obtiene el historial de cobertura de precios completo de una cuenta:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceCoverageViews
Respuesta de muestra
{ "priceCoverageViews": [ { "calculationDate": { "month": 9, "day": 17, "year": 2019 }, "priceCoveragePercent": 7.75351958685931, "matchedPropertyCount": 492550, "priceCoverageBuckets": [ { "availablePriceCount": "57557901", "advanceBookingWindowRange": "DAYS_0_TO_30", "priceCoveragePercent": 53.85113864788107, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "40549", "advanceBookingWindowRange": "DAYS_0_TO_30", "priceCoveragePercent": 0.037937620780037304, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "60927294", "advanceBookingWindowRange": "DAYS_31_TO_60", "priceCoveragePercent": 58.90365880186203, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "9151", "advanceBookingWindowRange": "DAYS_31_TO_60", "priceCoveragePercent": 0.00884705927848756, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "58125328", "advanceBookingWindowRange": "DAYS_61_TO_90", "priceCoveragePercent": 56.19475711917089, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "6943", "advanceBookingWindowRange": "DAYS_61_TO_90", "priceCoveragePercent": 0.0067123956475291366, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "112206", "advanceBookingWindowRange": "DAYS_91_TO_120", "priceCoveragePercent": 0.10847919718085183, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "9665", "advanceBookingWindowRange": "DAYS_91_TO_120", "priceCoveragePercent": 0.00934398731576683, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "42373", "advanceBookingWindowRange": "DAYS_121_TO_150", "priceCoveragePercent": 0.04096562592146797, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "4123", "advanceBookingWindowRange": "DAYS_121_TO_150", "priceCoveragePercent": 0.0039860589449463675, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "34813", "advanceBookingWindowRange": "DAYS_151_TO_180", "priceCoveragePercent": 0.033656723271990756, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "3296", "advanceBookingWindowRange": "DAYS_151_TO_180", "priceCoveragePercent": 0.003186526869401704, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "26839", "advanceBookingWindowRange": "DAYS_181_TO_210", "priceCoveragePercent": 0.02594757119170884, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "2188", "advanceBookingWindowRange": "DAYS_181_TO_210", "priceCoveragePercent": 0.00211532790966351, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "20301", "advanceBookingWindowRange": "DAYS_211_TO_240", "priceCoveragePercent": 0.0196267239004017, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "1589", "advanceBookingWindowRange": "DAYS_211_TO_240", "priceCoveragePercent": 0.0015362230568808583, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "17661", "advanceBookingWindowRange": "DAYS_241_TO_270", "priceCoveragePercent": 0.01707440868947315, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "1768", "advanceBookingWindowRange": "DAYS_241_TO_270", "priceCoveragePercent": 0.0017092777624703316, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "14245", "advanceBookingWindowRange": "DAYS_271_TO_300", "priceCoveragePercent": 0.013771867492301967, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "2019", "advanceBookingWindowRange": "DAYS_271_TO_300", "priceCoveragePercent": 0.0019519410647214931, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" }, { "availablePriceCount": "10625", "advanceBookingWindowRange": "DAYS_301_TO_330", "priceCoveragePercent": 0.010272101937922665, "lengthOfStayRange": "LENGTH_OF_STAY_1_TO_7" }, { "availablePriceCount": "1401", "advanceBookingWindowRange": "DAYS_301_TO_330", "priceCoveragePercent": 0.0013544672767086734, "lengthOfStayRange": "LENGTH_OF_STAY_8_TO_14" } ], "priceCoverageBinaryPercent": 77.83737691604914 }, ... ] }
Precio
El servicio de vistas de precios te permite recuperar un informe de precios de una propiedad determinada.
Obtén datos de precios de una propiedad
Para obtener el informe de precios de un hotel en particular (ID=101
) que pertenece a la cuenta 12345678
, envía esta solicitud:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceViews/101
Respuesta de muestra
{ "perItineraryPrices": [ { "updateTime": "2019-09-30T23:24:32Z", "checkinDate": { "month": 9, "day": 30, "year": 2019 }, "taxes": 8.83, "currencyCode": "USD", "lengthOfStayDays": 1, "roomAvailable": true, "price": 68.25 }, ... { "updateTime": "2019-10-02T03:32:22.347810Z", "checkinDate": { "month": 4, "day": 23, "year": 2020 }, "currencyCode": "USD", "price": -1, "lengthOfStayDays": 3, "allInclusive": true } ], "name": "accounts/12345678/priceViews/101" }
Informes de conciliación
El Servicio de informes de conciliación
Cómo obtener una lista de informes de conciliación
En el siguiente ejemplo, se obtiene una lista de informes para la cuenta 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports
Puede incluir parámetros opcionales de consulta de fecha de inicio y finalización para limitar los resultados. Por ejemplo, esta consulta limita los informes solo a aquellos entre el 15/6/2019 y el 15/9/2019:
GETbase_url /reconciliationReports?startDate=2019-06-15&endDate=2019-09-15
Respuesta de muestra
{ "reconciliationReports": [ { "name": "accounts/12345678/reconciliationReports/2019-09-19T08:32:00~booking_report.csv" } ] }
Cómo descargar un informe de conciliación
En este ejemplo, se recupera el informe booking_report.csv
(como una respuesta JSON) que se subió en 2019-08-26T12:00:00
:
GETbase_url /reconciliationReports/2019-08-26T12%3A00%3A00~bookings.csv
Respuesta de muestra
{ "contents": "Hotel ID,Hotel Name,Hotel Address,Hotel City,Hotel State/Region,Hotel PostalCode,Hotel Country Code,Hotel Phone Number,Booking Reference,Booking Date and Time,Check-in Date,Check-out Date,Number of Rooms,Number of Guests,Booking Revenue,Booking Revenue Currency,Booking Revenue Currency to Billing Currency Conversion Rate,Booking Status,Commission,Commission Currency,Commission Currency to Billing Currency Conversion Rate,Payment Date,Payment Status\n\n111,\"Capybara Hotel and Spa\",123 Foo Driveway,Boston,MA,02472,US,+11234567890,2thHRTY,2016-01-04,2016-02-01,2016-02-03,1,4,213.88,USD,1,Stayed,21.39,USD,1.0,2016-06-07,Invoice Required\n\n211,\"Mabels Gabels\",45678 Bar Street,London,,KT13 0PU,GB,+440203456123,z452121A,2016-02-04,2016-02-01,2016-02-03,1,3,414.21,GBP,1.249,Stayed,64.43,USD,1.0,2016-06-07,Invoice Required\n\n311,\"No-Tell Motels\",66 Acacia Avenue,Geneva,,1211,CH,+412241820000,42,2016-03-04,2016-02-01,2016-02-03,1,2,451.15,CHF,1.05,Stayed,37.41,EUR,0.99889,2016-06-07,Invoice Required" }
Cómo validar un informe de conciliación
Puede usar este método para validar el informe antes de subirlo. La validación de un informe no lo sube.
El informe de conciliación se incluye en el cuerpo de la solicitud como el valor para el campo contents
. El informe de conciliación debe seguir la sintaxis que se describe en Informes de conciliación.
En el siguiente ejemplo, se valida un informe para la cuenta 12345678
:
POST https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports:validate
Respuesta correcta de muestra
{ "successfulRecordCount": 3 }
Cómo subir un informe de conciliación
Una vez que haya confirmado que un informe de conciliación es válido, puede subirlo a Google de la siguiente manera:
POST https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports
Respuesta correcta de muestra
{ "successfulRecordCount": 3, "reconciliationReport": { "name": "accounts/12345678/reconciliationReports/2019-09-30T09:17~2019-09-19T08:32:00~booking_report.csv" } }