На этой странице представлены некоторые примеры вызовов с использованием Travel Partner API v3.
Конечные точки API Travel Partner поддерживают REST-полный синтаксис в HTTPS-вызовах. base_url для всех запросов API:
https://travelpartner.googleapis.com/v3/accounts/account_id
Полный список полей запроса и ответа смотрите в каталоге ресурсов API .
Отчет об эффективности недвижимости
Служба просмотра отчетов об эффективности недвижимости предоставляет возможность запрашивать (получать, фильтровать и сегментировать) отчет об эффективности недвижимости для определенной учетной записи.
Запрос отчета об эффективности недвижимости
В следующем примере получается отчет об эффективности всех объектов недвижимости в учетной записи 12345678
, отфильтрованный по дате 11 мая 2022 года и сгруппированный по идентификатору отеля-партнера.
GET https://travelpartner.googleapis.com/v3/accounts/12345678/propertyPerformanceReportViews:query?filter=date%20%3D%20%272022-05-11%27&aggregateBy=partnerPropertyId
{ "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" }, ] }
Отели
Служба Hotel View Service предоставляет либо список всех отелей, либо их сводку для конкретной учетной записи.
Получение списка отелей
В следующем примере извлекается список всех отелей в аккаунте 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/hotelViews
Запрос принимает параметры запроса для навигации по многостраничным результатам:
GET base_url/hotelViews?pageSize=10&pageToken=11
{ "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" } ] }
Получение сводки свойств
В этом примере получается сводка свойств для учетной записи 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/hotelViews:summarize
{ "lastManifestUpdateTime": "2019-09-26T18:24:54.479972Z", "matchedPropertyCount": "206107", "overclusteredPropertyWithErrorsCount": "16927", "overclusteredPropertyCount": "17611", "unmatchedPropertyWithErrorsCount": "93638", "lastFeedSubmissionTime": "2019-09-19T20:51:08Z", "unmatchedPropertyCount": "99673" }
Отчет об участии
Служба просмотра отчетов об участии предоставляет возможность запрашивать (получать, фильтровать и сегментировать) отчеты об участии для конкретной учетной записи.
Запрос отчета об участии
В следующем примере получается отчет об участии для всех объектов в аккаунте 12345678
и фильтруется отчет по дате 10/4/20.
GET https://travelpartner.googleapis.com/v3/accounts/12345678/participationReportViews:query?filter=date%20%3D%20%272020-10-04%27
{ "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 } ] }
Точность цен
Служба просмотра точности цен позволяет получать отчеты и оценочные листы о точности цен для конкретного аккаунта.
Получение отчета о точности цен
В следующем примере извлекается отчет о точности цен на 26.08.2019 для счета 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews/20190826
Помимо обычных параметров запроса для пролистывания ответа, есть еще несколько для включения сопоставленных цен или сигналов пикселей в результаты.
В этом примере отчет о точности цен на 26.08.2019 включает сопоставленные цены и сигналы пикселей:
GET base_url/priceAccuracyViews/20190826?includeMatchedPrices=true&includePixels=true
Перечисление доступных отчетов о точности цен
Чтобы получить список доступных отчетов, отправьте этот запрос:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews
Вы можете включить обычные параметры запроса для пролистывания результатов.
{ "priceAccuracyViews": [ { "name": "accounts/12345678/priceAccuracyViews/20190925" }, ... { "name": "accounts/12345678/priceAccuracyViews/20190827" } ] }
Получение оценки точности цен
Чтобы получить оценку точности цен, используйте метод summarize
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews:summarize
{ "updateTime": "2019-09-26T18:29:32.372204Z", "currentScore": "EXCELLENT", "predictedScore": "EXCELLENT" }
Ценовое покрытие
Служба просмотра ценового покрытия предоставляет последний отчет о ценовом покрытии или полную историю ценового покрытия.
Получение последних статистических данных о ценовом покрытии
В следующем примере извлекается последняя статистика покрытия цен для счета 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceCoverageViews:latest
{ "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 }
Получение истории покрытия цен
Этот запрос получает всю историю покрытия цен для учетной записи:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceCoverageViews
{ "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 }, ... ] }
Цена
Сервис просмотра цен позволяет вам получить отчет о ценах на указанную недвижимость.
Получение данных о ценах на недвижимость
Чтобы получить отчет о ценах для конкретного отеля (ID= 101
), принадлежащего аккаунту 12345678
, выполните следующий запрос:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceViews/101
{ "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" }
Отчеты о сверке
Служба отчетов о сверке позволяет получить список отчетов, загрузить определенный отчет, проверить его, а затем загрузить отчет в Google.
Получение списка отчетов по сверке
Следующий пример получает список отчетов для учетной записи 12345678
:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports
Вы можете включить необязательные параметры запроса, например, начальную и конечную дату, чтобы ограничить результаты. Например, этот запрос ограничит отчёты только данными за период с 15.06.2019 по 15.09.2019:
GET base_url/reconciliationReports?startDate=2019-06-15&endDate=2019-09-15
{ "reconciliationReports": [ { "name": "accounts/12345678/reconciliationReports/2019-09-19T08:32:00~booking_report.csv" } ] }
Загрузка отчета о сверке
В этом примере извлекается отчет booking_report.csv
(в виде ответа JSON), который был загружен 2019-08-26T12:00:00
:
GET base_url/reconciliationReports/2019-08-26T12%3A00%3A00~bookings.csv
{ "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" }
Проверка отчета о сверке
Вы можете использовать этот метод для проверки отчёта перед его загрузкой. Проверка отчёта не приводит к его загрузке.
Отчёт о сверке включается в тело запроса в качестве значения поля contents
. Отчёт о сверке должен соответствовать синтаксису, описанному в разделе «Отчёты о сверке» .
Следующий пример проверяет отчет для счета 12345678
:
POST https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports:validate
{ "successfulRecordCount": 3 }
Загрузка отчета о сверке
После того как вы убедились, что отчет о сверке действителен, вы можете загрузить его в Google, как в этом примере:
POST https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports
{ "successfulRecordCount": 3, "reconciliationReport": { "name": "accounts/12345678/reconciliationReports/2019-09-30T09:17~2019-09-19T08:32:00~booking_report.csv" } }