Как корректировать ставки с помощью модификаторов ставок

С помощью 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 для разных версий API.

v25 и более ранние версии v26 и более поздние версии Подполя и типы Описание и допустимый диапазон
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 в v26 (min_nights, max_nights в v25) (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 (в версии 25 и более ранних – HotelDateSelectionType; в отчетах о кампаниях для гостиниц, в которых используется 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.

Java

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.

Создание модификатора ставок для диапазона дат начала в v26:

{
  "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"
    }
  ]
}

Правила проверки и обработка ошибок

Правила проверки остаются одинаковыми для всех версий, но в версии 26 переименованы шесть значений перечисления CriterionError, как показано в таблице ниже.

Сценарий v25 и более ранние версии v26 и более поздние версии
Диапазон длительности бронирования пересекается с существующим критерием. 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 раньше, чем вчера (UTC) HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_START_DATE_TOO_EARLY
end_date более чем на 330 дней в будущем (UTC) 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

Следующие ошибки проверки относятся ко всем версиям API:

  • 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. Попытка добавить модификатор ставок для путешествий в кампанию неподдерживаемого типа или неподходящую поисковую кампанию.