يمكنك استخدام Google Ads API لضبط تعديلات عروض الأسعار (المعروفة أيضًا باسم معدِّلات عروض الأسعار) لإعلانات الفنادق. لمعرفة تفاصيل عن طريقة عمل تعديلات عروض الأسعار، يُرجى الاطّلاع على مقالة لمحة عن تعديلات عروض الأسعار في "إعلانات الفنادق".
تعديلات عروض الأسعار على مستوى الحملة
لاستخدام Google Ads API من أجل ضبط تعديلات عروض الأسعار على مستوى الحملة، اطّلِع على مقالة إدارة تعديلات عروض الأسعار.
تعديلات عروض الأسعار على مستوى المجموعة الإعلانية
اعتبارًا من الإصدار 26، تتم إعادة تسمية المعايير الخمسة الخاصة بالفنادق في AdGroupBidModifier إلى أسماء غير مرتبطة بمجال معيّن (مثل يوم بدء الأسبوع ومدة الحجز)، لتحلّ محلّ المعايير الخاصة بالفنادق من الإصدارات السابقة. ستبقى تعديلات عروض الأسعار هذه متاحة فقط لإعلانات الفنادق، سواء في "حملات الفنادق" أو "الحملات على شبكة البحث للسفر". يتم نقل تعديلات عروض الأسعار الحالية التي تم إنشاؤها في الإصدار 25 أو الإصدارات الأقدم
تلقائيًا باستخدام أرقام تعريف المعايير وأسماء الموارد نفسها. للاطّلاع على ملخّص لجميع التغييرات التي قد تؤدي إلى عطل في الإصدار 26، يُرجى مراجعة ملاحظات الإصدار.
لضبط تعديلات عروض الأسعار على مستوى المجموعة الإعلانية، أنشئ عنصر معيار للسمة التي تريد استهدافها واضبط حقولها على القيم المناسبة. في الإصدار 26 والإصدارات الأحدث، استخدِم عناصر المعايير غير المرتبطة بمجال معيّن:
AdvanceBookingWindowInfo أو
UserSetDatesInfo أو
StartDayOfWeekInfo أو
LengthOfBookingInfo أو
StartDateRangeInfo. في الإصدار 25 والإصدارات الأقدم، استخدِم عناصر المعايير الخاصة بالفنادق:
HotelAdvanceBookingWindowInfo أو
HotelDateSelectionTypeInfo أو
HotelCheckInDayInfo أو
HotelLengthOfStayInfo أو
HotelCheckInDateRangeInfo.
يلخّص الجدول التالي حقول معايير AdGroupBidModifier وأنواع الرسائل والحقول الفرعية ونطاقات bid_modifier الصالحة في جميع إصدارات واجهة برمجة التطبيقات:
| الإصدار 25 والإصدارات الأقدم | الإصدار 26 والإصدارات الأحدث | الحقول الفرعية والأنواع | الوصف والنطاق الصالح |
|---|---|---|---|
hotel_date_selection_type (HotelDateSelectionTypeInfo) |
user_set_dates (UserSetDatesInfo) |
type: DateSelectionType في الإصدار 26 (HotelDateSelectionType في الإصدار 25). القيم: DEFAULT_SELECTION (رقم تعريف المعيار 50)، USER_SELECTED (رقم تعريف المعيار 51). IMMUTABLE. |
التواريخ التلقائية مقابل التواريخ التي يختارها المستخدم نطاق bid_modifier الصالح: من 0.5 إلى 2.0 (لا يتيح خيار رفض 0). |
hotel_advance_booking_window (HotelAdvanceBookingWindowInfo) |
advance_booking_window (AdvanceBookingWindowInfo) |
min_days، max_days (int64، 0–330). IMMUTABLE، مطلوب. |
عدد الأيام قبل تاريخ بدء الحجز النطاق الصالح لـ "bid_modifier": من 0.1 إلى 10.0، أو 0 لإيقاف الميزة. |
hotel_length_of_stay (HotelLengthOfStayInfo) |
length_of_booking (LengthOfBookingInfo) |
min_days، max_days في الإصدار 26 (min_nights، max_nights في الإصدار 25) (int64، 1–30). IMMUTABLE، مطلوب. |
مدة الحجز النطاق الصالح لـ "bid_modifier": من 0.1 إلى 10.0، أو 0 لإيقاف الميزة. |
hotel_check_in_day (HotelCheckInDayInfo) |
start_day_of_week (StartDayOfWeekInfo) |
day_of_week (DayOfWeek، أرقام تعريف المعايير 60–66 لـ MONDAY–SUNDAY). IMMUTABLE. |
يوم الأسبوع لتاريخ بدء الحجز النطاق الصالح لـ "bid_modifier": من 0.1 إلى 10.0، أو 0 لإيقاف الميزة. |
hotel_check_in_date_range (HotelCheckInDateRangeInfo) |
start_date_range (StartDateRangeInfo) |
start_date، end_date (string، YYYY-MM-DD). IMMUTABLE، مطلوب. |
النطاق الزمني لتاريخ بدء الحجز النطاق الصالح لـ "bid_modifier": من 0.1 إلى 10.0، أو 0 لإيقاف الميزة. |
على سبيل المثال، لإنشاء تعديل عروض أسعار المجموعة الإعلانية باستخدام فترة الحجز المُسبق بين 30 و60 يومًا في الإصدار 26 والإصدارات الأحدث، أنشئ عنصر AdvanceBookingWindowInfo (أو HotelAdvanceBookingWindowInfo في الإصدار 25 والإصدارات الأقدم) واضبط min_days على 30 وmax_days على 60.
اربط عنصر المعيار بعنصر
AdGroupBidModifier باستخدام حقل المعيار
المقابل (advance_booking_window أو user_set_dates أو
start_day_of_week أو length_of_booking أو start_date_range)، وحدِّد
اسم المورد للمجموعة الإعلانية المستهدفة باستخدام ad_group، واضبط
حقل bid_modifier على مُضاعِف:
-
advance_booking_windowوlength_of_bookingوstart_day_of_weekوstart_date_rangeوdevice: يمكنك تحديد مُضاعِف من0.1إلى10.0(على سبيل المثال،1.5لتعديل بنسبة +50% أو0.5لتعديل بنسبة -50%)، أو ضبطbid_modifierعلى0(0.0) لإيقاف (-100%) المعيار. user_set_dates: حدِّد مُضاعِفًا من0.5إلى2.0. لا يمكن ضبط "bid_modifier" على "0" في "user_set_dates"، وسيتم عرض "RangeError.TOO_LOW".
لمزيد من التفاصيل حول آلية عمل كل نوع من أنواع التعديلات، يُرجى الاطّلاع على مقالة لمحة عن تعديلات عروض الأسعار في "إعلانات الفنادق".
تنطبق أيضًا تفاصيل حدود الموارد وقسم إعداد التقارير التالية في الإصدار 26:
segments.user_set_dates: في الإصدار 26 والإصدارات الأحدث، يكون نوع التعداد لـsegments.user_set_datesهوDateSelectionType(تم تعديله منHotelDateSelectionTypeفي الإصدار 25 والإصدارات الأقدم، وتستمر تقارير حملات الفنادق التي تستخدمsegments.hotel_date_selection_typeفي استخدامHotelDateSelectionType). لم تتغير شرائح برنامج الرحلة الأخرى (segments.advance_booking_windowوsegments.length_of_bookingوsegments.start_dateوsegments.start_day_of_week).- حدود الموارد:
يحتفظ كلّ من
ResourceLimitType.HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUPوResourceLimitType.HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUPباسمَيهما الحاليَين في الإصدار 26.
جافا
private void runExample(GoogleAdsClient googleAdsClient, long customerId, long adGroupId) { List<AdGroupBidModifierOperation> operations = new ArrayList<>(); // Constructs the ad group resource name to use for each bid modifier. String adGroupResourceName = ResourceNames.adGroup(customerId, adGroupId); // 1) Creates an ad group bid modifier based on the hotel check-in day. AdGroupBidModifier checkInDayAdGroupBidModifier = AdGroupBidModifier.newBuilder() // Sets the resource name to the ad group resource name joined with the criterion ID // whose value corresponds to the desired check-in day. .setAdGroup(adGroupResourceName) .setStartDayOfWeek(StartDayOfWeekInfo.newBuilder().setDayOfWeek(DayOfWeek.MONDAY)) // Sets the bid modifier value to 150%. .setBidModifier(1.5d) .build(); operations.add( AdGroupBidModifierOperation.newBuilder().setCreate(checkInDayAdGroupBidModifier).build()); // 2) Creates an ad group bid modifier based on the hotel length of stay. AdGroupBidModifier lengthOfStayAdGroupBidModifier = AdGroupBidModifier.newBuilder() // Sets the ad group. .setAdGroup(adGroupResourceName) // Creates the length of booking info. .setLengthOfBooking( LengthOfBookingInfo.newBuilder().setMinDays(3L).setMaxDays(7L).build()) // Sets the bid modifier value to 170%. .setBidModifier(1.7d) .build(); operations.add( AdGroupBidModifierOperation.newBuilder().setCreate(lengthOfStayAdGroupBidModifier).build()); // Issues a mutate request to add the ad group bid modifiers. try (AdGroupBidModifierServiceClient adGroupBidModifierServiceClient = googleAdsClient.getLatestVersion().createAdGroupBidModifierServiceClient()) { MutateAdGroupBidModifiersResponse response = adGroupBidModifierServiceClient.mutateAdGroupBidModifiers( Long.toString(customerId), operations); // Prints the resource names of the added ad group bid modifiers. System.out.printf("Added %d hotel ad group bid modifiers:%n", response.getResultsCount()); for (MutateAdGroupBidModifierResult mutateAdGroupBidModifierResult : response.getResultsList()) { System.out.printf(" %s%n", mutateAdGroupBidModifierResult.getResourceName()); } } }
#C
public void Run(GoogleAdsClient client, long customerId, long adGroupId) { // Get the AdGroupBidModifierService. AdGroupBidModifierServiceClient service = client.GetService( Services.V26.AdGroupBidModifierService); // Constructs the ad group resource name to use for each bid modifier. string adGroupResourceName = ResourceNames.AdGroup(customerId, adGroupId); // 1) Create an ad group bid modifier based on the hotel check-in day. AdGroupBidModifier checkInDayAdGroupBidModifier = new AdGroupBidModifier() { // Sets the resource name to the ad group resource name joined with the criterion // ID whose value corresponds to the desired check-in day. AdGroup = adGroupResourceName, StartDayOfWeek = new StartDayOfWeekInfo() { DayOfWeek = DayOfWeek.Monday }, // Set the bid modifier value to 150%. BidModifier = 1.5, }; // Creates an ad group bid modifier operation. var checkInDayAdGroupBidModifierOperation = new AdGroupBidModifierOperation() { Create = checkInDayAdGroupBidModifier }; // 2) Create an ad group bid modifier based on the hotel length of stay. AdGroupBidModifier lengthOfStayAdGroupBidModifier = new AdGroupBidModifier() { // Set the ad group. AdGroup = ResourceNames.AdGroup(customerId, adGroupId), // Set the length of booking info. LengthOfBooking = new LengthOfBookingInfo() { MinDays = 3, MaxDays = 7 }, // Set the bid modifier value to 170%. BidModifier = 1.7 }; // Create an ad group bid modifier operation. var lengthOfStayAdGroupBidModifierOperation = new AdGroupBidModifierOperation() { Create = lengthOfStayAdGroupBidModifier }; try { // Issue a mutate request to add an ad group bid modifiers. MutateAdGroupBidModifiersResponse response = service.MutateAdGroupBidModifiers( customerId.ToString(), new AdGroupBidModifierOperation[] { checkInDayAdGroupBidModifierOperation, lengthOfStayAdGroupBidModifierOperation } ); // Display the resource names of the added ad group bid modifiers. Console.WriteLine($"Added {response.Results.Count} hotel ad group bid modifiers:"); foreach (MutateAdGroupBidModifierResult result in response.Results) { Console.WriteLine($"- {result.ResourceName}"); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample( GoogleAdsClient $googleAdsClient, int $customerId, int $adGroupId ) { $operations = []; // 1) Creates an ad group bid modifier based on the hotel check-in day. $checkInDayAdGroupBidModifier = new AdGroupBidModifier( [ // Sets the ad group. 'ad_group' => ResourceNames::forAdGroup($customerId, $adGroupId), 'hotel_check_in_day' => new HotelCheckInDayInfo( [ 'day_of_week' => DayOfWeek::MONDAY ] ), // Sets the bid modifier value to 150%. 'bid_modifier' => 1.5 ] ); // Creates an ad group bid modifier operation. $checkInDayAdGroupBidModifierOperation = new AdGroupBidModifierOperation(); $checkInDayAdGroupBidModifierOperation->setCreate($checkInDayAdGroupBidModifier); $operations[] = $checkInDayAdGroupBidModifierOperation; // 2) Creates an ad group bid modifier based on the hotel length of stay. $lengthOfStayAdGroupBidModifier = new AdGroupBidModifier( [ // Sets the ad group. 'ad_group' => ResourceNames::forAdGroup($customerId, $adGroupId), // Creates the hotel length of stay info. 'hotel_length_of_stay' => new HotelLengthOfStayInfo( [ 'min_nights' => 3, 'max_nights' => 7, ] ), // Sets the bid modifier value to 170%. 'bid_modifier' => 1.7 ] ); // Creates an ad group bid modifier operation. $lengthOfStayAdGroupBidModifierOperation = new AdGroupBidModifierOperation(); $lengthOfStayAdGroupBidModifierOperation->setCreate( $lengthOfStayAdGroupBidModifier ); $operations[] = $lengthOfStayAdGroupBidModifierOperation; // Issues a mutate request to add an ad group bid modifiers. $adGroupBidModifierServiceClient = $googleAdsClient->getAdGroupBidModifierServiceClient(); $response = $adGroupBidModifierServiceClient->mutateAdGroupBidModifiers( MutateAdGroupBidModifiersRequest::build($customerId, $operations) ); // Print out resource names of the added ad group bid modifiers. printf( "Added %d hotel ad group bid modifiers:%s", $response->getResults()->count(), PHP_EOL ); foreach ($response->getResults() as $addedAdGroupBidModifier) { /** * @var AdGroupBidModifier $addedAdGroupBidModifier */ print $addedAdGroupBidModifier->getResourceName() . PHP_EOL; } }
Python
def main(client: GoogleAdsClient, customer_id: str, ad_group_id: str) -> None: ad_group_service: AdGroupServiceClient = client.get_service( "AdGroupService" ) ag_bm_service: AdGroupBidModifierServiceClient = client.get_service( "AdGroupBidModifierService" ) # Create ad group bid modifier based on hotel check-in day. check_in_ag_bm_operation: AdGroupBidModifierOperation = client.get_type( "AdGroupBidModifierOperation" ) check_in_ag_bid_modifier: AdGroupBidModifier = ( check_in_ag_bm_operation.create ) check_in_ag_bid_modifier.hotel_check_in_day.day_of_week = ( client.enums.DayOfWeekEnum.MONDAY ) check_in_ag_bid_modifier.ad_group = ad_group_service.ad_group_path( customer_id, ad_group_id ) # Sets the bid modifier value to 150%. check_in_ag_bid_modifier.bid_modifier = 1.5 # Create ad group bid modifier based on hotel length of stay info. los_ag_bm_operation: AdGroupBidModifierOperation = client.get_type( "AdGroupBidModifierOperation" ) los_ag_bid_modifier: AdGroupBidModifier = los_ag_bm_operation.create los_ag_bid_modifier.ad_group = ad_group_service.ad_group_path( customer_id, ad_group_id ) # Creates the hotel length of stay info. hotel_length_of_stay_info: HotelLengthOfStayInfo = ( los_ag_bid_modifier.hotel_length_of_stay ) hotel_length_of_stay_info.min_nights = 3 hotel_length_of_stay_info.max_nights = 7 # Sets the bid modifier value to 170%. los_ag_bid_modifier.bid_modifier = 1.7 # Add the bid modifiers ag_bm_response: MutateAdGroupBidModifiersResponse = ( ag_bm_service.mutate_ad_group_bid_modifiers( customer_id=customer_id, operations=[check_in_ag_bm_operation, los_ag_bm_operation], ) ) # Print out resource names of the added ad group bid modifiers. print(f"Added {len(ag_bm_response.results)} hotel ad group bid modifiers:") result: MutateAdGroupBidModifierResult for result in ag_bm_response.results: print(result.resource_name)
Ruby
def add_hotel_ad_group_bid_modifiers(customer_id, ad_group_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new operations = [] ad_group_resource = client.path.ad_group(customer_id, ad_group_id) # 1) Creates an ad group bid modifier based on the check-in day. operations << client.operation.create_resource.ad_group_bid_modifier do |bm| # Sets the ad group. bm.ad_group = ad_group_resource # Sets the check-in day to Monday. bm.start_day_of_week = client.resource.start_day_of_week_info do |info| info.day_of_week = :MONDAY end # Sets the bid modifier value to 150%. bm.bid_modifier = 1.5 end # 2) Creates an ad group bid modifier based on the length of booking. operations << client.operation.create_resource.ad_group_bid_modifier do |bm| # Sets the ad group. bm.ad_group = ad_group_resource # Creates the length of booking info. bm.length_of_booking = client.resource.length_of_booking_info do |info| info.min_days = 3 info.max_days = 7 end # Sets the bid modifier value to 170%. bm.bid_modifier = 1.7 end # 3) Issues a mutate request to add an ad group bid modifiers. ad_group_bid_modifier_service = client.service.ad_group_bid_modifier response = ad_group_bid_modifier_service.mutate_ad_group_bid_modifiers( customer_id: customer_id, operations: operations, ) # Print out resource names of the added ad group bid modifiers. puts "Added #{response.results.size} hotel ad group bid modifiers:" response.results.each do |added_ad_group_bid_modifier| puts "\t#{added_ad_group_bid_modifier.resource_name}" end end
Perl
sub add_hotel_ad_group_bid_modifiers { my ($api_client, $customer_id, $ad_group_id) = @_; # 1) Create an ad group bid modifier based on the hotel check-in day. my $check_in_day_ad_group_bid_modifier = Google::Ads::GoogleAds::V26::Resources::AdGroupBidModifier->new({ # Set the ad group. adGroup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::ad_group( $customer_id, $ad_group_id ), hotelCheckInDay => Google::Ads::GoogleAds::V26::Common::HotelCheckInDayInfo->new({ dayOfWeek => MONDAY } ), # Set the bid modifier value to 150%. bidModifier => 1.5 }); # Create an ad group bid modifier operation. my $check_in_day_ad_group_bid_modifier_operation = Google::Ads::GoogleAds::V26::Services::AdGroupBidModifierService::AdGroupBidModifierOperation ->new({ create => $check_in_day_ad_group_bid_modifier }); # 2) Create an ad group bid modifier based on the hotel length of stay. my $length_of_stay_ad_group_bid_modifier = Google::Ads::GoogleAds::V26::Resources::AdGroupBidModifier->new({ # Set the ad group. adGroup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::ad_group( $customer_id, $ad_group_id ), # Create the hotel length of stay info. hotelLengthOfStay => Google::Ads::GoogleAds::V26::Common::HotelLengthOfStayInfo->new({ minNights => 3, maxNights => 7 } ), # Set the bid modifier value to 170%. bidModifier => 1.7 }); # Create an ad group bid modifier operation. my $length_of_stay_ad_group_bid_modifier_operation = Google::Ads::GoogleAds::V26::Services::AdGroupBidModifierService::AdGroupBidModifierOperation ->new({ create => $length_of_stay_ad_group_bid_modifier }); # 3) Add the ad group bid modifiers. my $ad_group_bid_modifiers_response = $api_client->AdGroupBidModifierService()->mutate({ customerId => $customer_id, operations => [ $check_in_day_ad_group_bid_modifier_operation, $length_of_stay_ad_group_bid_modifier_operation ]}); # Print out resource names of the added ad group bid modifiers. my $ad_group_bid_modifier_results = $ad_group_bid_modifiers_response->{results}; printf "Added %d hotel ad group bid modifiers:\n", scalar @$ad_group_bid_modifier_results; foreach my $ad_group_bid_modifier_result (@$ad_group_bid_modifier_results) { printf "\t%s\n", $ad_group_bid_modifier_result->{resourceName}; } return 1; }
curl
أمثلة
توضّح الأمثلة التالية كيفية الاستعلام عن تعديلات عروض أسعار المجموعات الإعلانية وإنشائها وتعديلها وإزالتها باستخدام حمولات GAQL وREST JSON.
قراءة تعديلات عروض الأسعار باستخدام GAQL
توضّح طلبات البحث التالية كيفية استرداد تعديلات عروض الأسعار حسب مدة الحجز في الإصدار 25 والإصدارات الأقدم مقارنةً بالإصدار 26 والإصدارات الأحدث:
الإصدار 25 والإصدارات الأقدم:
SELECT
ad_group_bid_modifier.resource_name,
ad_group_bid_modifier.bid_modifier,
ad_group_bid_modifier.hotel_length_of_stay.min_nights,
ad_group_bid_modifier.hotel_length_of_stay.max_nights
FROM ad_group_bid_modifier
WHERE ad_group_bid_modifier.hotel_length_of_stay.min_nights = 5
الإصدار 26 والإصدارات الأحدث:
SELECT
ad_group_bid_modifier.resource_name,
ad_group_bid_modifier.bid_modifier,
ad_group_bid_modifier.length_of_booking.min_days,
ad_group_bid_modifier.length_of_booking.max_days
FROM ad_group_bid_modifier
WHERE ad_group_bid_modifier.length_of_booking.min_days = 5
إنشاء تعديلات عروض الأسعار (حمولة JSON)
توضّح حمولات JSON التالية كيفية إنشاء تعديلات عروض أسعار المجموعات الإعلانية في الإصدار 26 والإصدارات الأحدث.
إنشاء تعديل عرض أسعار لمدة الحجز في الإصدار 26:
{
"customerId": "1234567890",
"operations": [
{
"create": {
"adGroup": "customers/1234567890/adGroups/987654321",
"bidModifier": 1.2,
"lengthOfBooking": {
"minDays": "3",
"maxDays": "5"
}
}
}
]
}
في الإصدار 25 والإصدارات الأقدم، كان يتم استخدام hotelLengthOfStay مع minNights وmaxNights.
إنشاء تعديل عروض أسعار لنطاق تاريخ البدء في الإصدار 26:
{
"customerId": "1234567890",
"operations": [
{
"create": {
"adGroup": "customers/1234567890/adGroups/987654321",
"bidModifier": 1.5,
"startDateRange": {
"startDate": "2026-12-20",
"endDate": "2026-12-31"
}
}
}
]
}
إنشاء تعديل عروض أسعار للتواريخ التي يحدّدها المستخدم في الإصدار 26:
{
"customerId": "1234567890",
"operations": [
{
"create": {
"adGroup": "customers/1234567890/adGroups/987654321",
"bidModifier": 1.3,
"userSetDates": {
"type": "USER_SELECTED"
}
}
}
]
}
تعديل وإزالة تعديلات عروض الأسعار
يمكنك تعديل المضاعِف في تعديل عرض أسعار حالي أو إزالة تعديل عرض الأسعار بالكامل:
- التعديل: حقول المعايير هي
IMMUTABLE. لتعديل مضاعِف عرض السعر، أرسِل عمليةupdateمع ضبطupdateMask(update_maskفي protobuf) على"bidModifier"("bid_modifier") وضبطbidModifier(bid_modifier) على قيمة صالحة (من0.1إلى10.0أو0لإيقافadvance_booking_windowوlength_of_bookingوstart_day_of_weekوstart_date_rangeوdevice، ومن0.5إلى2.0لـuser_set_dates). لتغيير معايير الاستهداف، أزِل تعديل عرض السعر وأنشئ تعديلاً جديدًا. - الإزالة: أرسِل عملية
removeمع اسم المورد:
{
"customerId": "1234567890",
"operations": [
{
"remove": "customers/1234567890/adGroupBidModifiers/987654321~555444333"
}
]
}
قواعد التحقّق من الصحة ومعالجة الأخطاء
تبقى قواعد التحقّق من الصحة كما هي في جميع الإصدارات، ولكن تتم إعادة تسمية ست قيم تعداد CriterionError في الإصدار 26 كما هو موضّح في الجدول التالي:
| السيناريو | الإصدار 25 والإصدارات الأقدم | الإصدار 26 والإصدارات الأحدث |
|---|---|---|
| يتداخل نطاق مدة الحجز مع معيار حالي | HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION |
LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION |
| يتداخل نطاق فترة الحجز المُسبَق مع معيار حالي | HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION |
ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION |
| يتداخل النطاق الزمني لتاريخ البدء مع معيار حالي | HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION |
START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION |
قبل start_date من أمس (بالتوقيت العالمي المنسَّق) |
HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY |
START_DATE_RANGE_START_DATE_TOO_EARLY |
end_date أكثر من 330 يومًا في المستقبل (بالتوقيت العالمي المنسَّق) |
HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE |
START_DATE_RANGE_END_DATE_TOO_LATE |
start_date بعد end_date |
HOTEL_CHECK_IN_DATE_RANGE_REVERSED |
START_DATE_RANGE_REVERSED |
تنطبق أخطاء التحقّق التالية على جميع إصدارات واجهة برمجة التطبيقات:
FieldError.REQUIRED: لم يتم إدخال حدّ مطلوب للنطاق (مثلadvance_booking_windowبدونmin_daysأوmax_days).RangeError.TOO_HIGH/RangeError.TOO_LOW: القيمة خارج الحدود، مثلadvance_booking_window.max_daysأكبر من 330، أوmin_daysأكبر منmax_daysفيadvance_booking_windowأوlength_of_booking، أوbid_modifierخارج0.1–10.0فيadvance_booking_windowأوlength_of_bookingأوstart_day_of_weekأوstart_date_range، أوbid_modifierخارج0.5–2.0(بما في ذلك0) فيuser_set_dates.ResourceCountLimitExceededError.RESOURCE_LIMIT: تتجاوز المجموعة الإعلانية الحدّ الأقصى المسموح به لتعديلات عروض الأسعار لكل مجموعة إعلانية.MutateError.INCONSISTENT_FIELD_VALUES: لا يتطابق حقل فرعي للتعداد بمعرّف ثابت (مثلuser_set_dates.typeأوstart_day_of_week.day_of_weekأوdevice.type) مع معرّف المعيار المحدّد فيresource_name.ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT: محاولة إضافة تعديل عرض أسعار السفر إلى نوع حملة غير متوافق أو حملة غير مؤهَّلة على شبكة البحث.