این صفحه برخی از تماسهای نمونه را با استفاده از Travel Partner API v3 ارائه میکند.
نقاط پایانی Travel Partner API از دستور REST-ful از طریق تماسهای 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" }, ] }
هتل ها
خدمات نمای هتل لیستی از تمام هتل ها یا خلاصه ای از آنها را برای یک حساب خاص ارائه می دهد.
دریافت لیست هتل ها
مثال زیر فهرستی از تمام هتلهای موجود در حساب 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/8/2019 برای حساب 12345678
بازیابی میکند:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/priceAccuracyViews/20190826
علاوه بر پارامترهای پرس و جوی معمول برای صفحهبندی در پاسخ، چند پارامتر دیگر نیز برای گنجاندن قیمتهای منطبق یا سیگنالهای پیکسلی در نتایج وجود دارد.
در این مثال، گزارش دقت قیمت در تاریخ 2019/8/26 شامل قیمتهای منطبق و سیگنالهای پیکسلی است:
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 }, ... ] }
قیمت
سرویس Views Price به شما امکان می دهد گزارش قیمت یک ملک معین را بازیابی کنید.
دریافت اطلاعات قیمت گذاری برای یک ملک
برای دریافت گزارش قیمت یک هتل خاص (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" }
گزارش های آشتی
دریافت لیستی از گزارش های آشتی
مثال زیر فهرستی از گزارشها را برای حساب 12345678
دریافت میکند:
GET https://travelpartner.googleapis.com/v3/accounts/12345678/reconciliationReports
برای محدود کردن نتایج، می توانید پارامترهای جستجوی تاریخ شروع و پایان اختیاری را اضافه کنید. به عنوان مثال، این جستار فقط گزارشها را بین 6/15/2019 تا 9/15/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" } }