Ajuster les enchères avec des modificateurs d'enchères

Vous pouvez utiliser l'API Google Ads pour définir des ajustements des enchères (également appelés "modificateurs d'enchères") pour les annonces d'hôtel. Pour en savoir plus sur le fonctionnement des ajustements des enchères, consultez À propos des ajustements des enchères pour les annonces d'hôtels.

Ajustements des enchères au niveau de la campagne

Pour utiliser l'API Google Ads afin de définir des ajustements des enchères au niveau de la campagne, consultez Gérer les modificateurs d'enchères.

Ajustements des enchères au niveau du groupe d'annonces

À partir de la version 26, les cinq critères spécifiques aux hôtels sur AdGroupBidModifier sont renommés avec des noms indépendants du secteur (comme le jour de début de la semaine et la durée de la réservation), en remplacement des critères spécifiques aux hôtels des versions précédentes. Ces ajustements des enchères ne sont toujours acceptés que pour les annonces d'hôtel, à la fois dans les campagnes d'hôtel et dans les campagnes sur le Réseau de Recherche pour les voyages. Les modificateurs d'enchères existants créés dans la version 25 ou une version antérieure sont automatiquement transférés avec des ID de critères et des noms de ressources identiques. Pour obtenir un résumé de toutes les modifications destructives de la v26, consultez les notes de version.

Pour définir des ajustements des enchères au niveau du groupe d'annonces, créez un objet de critère pour la dimension que vous souhaitez cibler et définissez ses champs sur les valeurs appropriées. Dans la version 26 et les versions ultérieures, utilisez les objets de critère indépendants du secteur d'activité : AdvanceBookingWindowInfo, UserSetDatesInfo, StartDayOfWeekInfo, LengthOfBookingInfo ou StartDateRangeInfo. Dans la version 25 et les versions antérieures, utilisez les objets de critère spécifiques aux hôtels : HotelAdvanceBookingWindowInfo, HotelDateSelectionTypeInfo, HotelCheckInDayInfo, HotelLengthOfStayInfo ou HotelCheckInDateRangeInfo.

Le tableau suivant récapitule les champs de critère AdGroupBidModifier, les types de messages, les sous-champs et les plages bid_modifier valides dans les différentes versions de l'API :

v25 et versions antérieures v26 et versions ultérieures Sous-champs et types Description et plage valide
hotel_date_selection_type (HotelDateSelectionTypeInfo) user_set_dates (UserSetDatesInfo) type : DateSelectionType dans la v26 (HotelDateSelectionType dans la v25). Valeurs : DEFAULT_SELECTION (ID de critère 50), USER_SELECTED (ID de critère 51). IMMUTABLE. Dates par défaut et dates sélectionnées par l'utilisateur. Plage bid_modifier valide : de 0.5 à 2.0 (ne prend pas en charge la désactivation de 0).
hotel_advance_booking_window (HotelAdvanceBookingWindowInfo) advance_booking_window (AdvanceBookingWindowInfo) min_days, max_days (int64, 0–330). IMMUTABLE, obligatoire. Nombre de jours avant la date de début de la réservation. Plage de valeurs bid_modifier valide : de 0.1 à 10.0, ou 0 pour désactiver.
hotel_length_of_stay (HotelLengthOfStayInfo) length_of_booking (LengthOfBookingInfo) min_days, max_days dans la v26 (min_nights, max_nights dans la v25) (int64, 1–30). IMMUTABLE, obligatoire. Durée de la réservation. Plage de valeurs bid_modifier valide : de 0.1 à 10.0, ou 0 pour désactiver.
hotel_check_in_day (HotelCheckInDayInfo) start_day_of_week (StartDayOfWeekInfo) day_of_week (DayOfWeek, ID de critère 60–66 pour MONDAY–SUNDAY). IMMUTABLE. Jour de la semaine de la date de début de la réservation. Plage de valeurs bid_modifier valide : de 0.1 à 10.0, ou 0 pour désactiver.
hotel_check_in_date_range (HotelCheckInDateRangeInfo) start_date_range (StartDateRangeInfo) start_date, end_date (string, YYYY-MM-DD). IMMUTABLE, obligatoire. Plage de dates de début de la réservation. Plage de valeurs bid_modifier valide : de 0.1 à 10.0, ou 0 pour désactiver.

Par exemple, pour créer un modificateur d'enchères de groupe d'annonces à l'aide d'une période de réservation à l'avance comprise entre 30 et 60 jours dans la version 26 et les versions ultérieures, créez un objet AdvanceBookingWindowInfo (ou HotelAdvanceBookingWindowInfo dans la version 25 et les versions antérieures), puis définissez min_days sur 30 et max_days sur 60.

Associez l'objet de critère à un objet AdGroupBidModifier à l'aide du champ de critère correspondant (advance_booking_window, user_set_dates, start_day_of_week, length_of_booking ou start_date_range), spécifiez le nom de ressource du groupe d'annonces cible à l'aide de ad_group, puis définissez le champ bid_modifier sur un multiplicateur :

  • advance_booking_window, length_of_booking, start_day_of_week, start_date_range et device : spécifiez un multiplicateur compris entre 0.1 et 10.0 (par exemple, 1.5 pour un ajustement de +50% ou 0.5 pour un ajustement de -50 %), ou définissez bid_modifier sur 0 (0.0) pour désactiver (-100%) le critère.
  • user_set_dates : spécifiez un multiplicateur compris entre 0.5 et 2.0. La définition de bid_modifier sur 0 n'est pas compatible avec user_set_dates et renvoie RangeError.TOO_LOW.

Pour en savoir plus sur le fonctionnement de chaque type d'ajustement, consultez À propos des ajustements des enchères pour les annonces d'hôtel.

Les détails suivants concernant les segments de rapport et les limites de ressources s'appliquent également à la v26 :

  • segments.user_set_dates : dans la version 26 et les versions ultérieures, le type d'énumération de segments.user_set_dates est DateSelectionType (mis à jour à partir de HotelDateSelectionType dans la version 25 et les versions antérieures ; les rapports sur les campagnes d'hôtel utilisant segments.hotel_date_selection_type continuent d'utiliser HotelDateSelectionType). Les autres segments de l'itinéraire (segments.advance_booking_window, segments.length_of_booking, segments.start_date et segments.start_day_of_week) restent inchangés.
  • Limites de ressources : ResourceLimitType.HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP et ResourceLimitType.HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP conservent leurs noms existants dans la v26.

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

Exemples

Les exemples suivants montrent comment interroger, créer, modifier et supprimer des modificateurs d'enchères de groupe d'annonces à l'aide de charges utiles JSON GAQL et REST.

Lire les modificateurs d'enchères avec GAQL

Les requêtes suivantes illustrent la récupération des modificateurs d'enchères pour la durée de réservation dans la v25 et les versions antérieures, par rapport à la v26 et aux versions ultérieures :

v25 et versions antérieures :

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

v26 et versions ultérieures :

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

Créer des modificateurs d'enchères (charge utile JSON)

Les charges utiles JSON suivantes montrent comment créer des modificateurs d'enchères de groupe d'annonces dans la version 26 et les versions ultérieures.

Créer un modificateur d'enchères en fonction de la durée de réservation dans la v26 :

{
  "customerId": "1234567890",
  "operations": [
    {
      "create": {
        "adGroup": "customers/1234567890/adGroups/987654321",
        "bidModifier": 1.2,
        "lengthOfBooking": {
          "minDays": "3",
          "maxDays": "5"
        }
      }
    }
  ]
}

Dans la version 25 et les versions antérieures, cela utilisait hotelLengthOfStay avec minNights et maxNights.

Créer un ajustement des enchères pour une plage de dates de début dans la v26 :

{
  "customerId": "1234567890",
  "operations": [
    {
      "create": {
        "adGroup": "customers/1234567890/adGroups/987654321",
        "bidModifier": 1.5,
        "startDateRange": {
          "startDate": "2026-12-20",
          "endDate": "2026-12-31"
        }
      }
    }
  ]
}

Créer un modificateur d'enchère pour des dates définies par l'utilisateur dans la v26 :

{
  "customerId": "1234567890",
  "operations": [
    {
      "create": {
        "adGroup": "customers/1234567890/adGroups/987654321",
        "bidModifier": 1.3,
        "userSetDates": {
          "type": "USER_SELECTED"
        }
      }
    }
  ]
}

Modifier et supprimer des modificateurs d'enchères

Vous pouvez modifier le multiplicateur d'un modificateur d'enchères existant ou supprimer complètement le modificateur d'enchères :

  • Mise à jour : les champs de critères sont IMMUTABLE. Pour modifier le multiplicateur d'enchères, envoyez une opération update avec updateMask (update_mask dans protobuf) défini sur "bidModifier" ("bid_modifier") et définissez bidModifier (bid_modifier) sur une valeur valide (0.1 à 10.0 ou 0 pour désactiver advance_booking_window, length_of_booking, start_day_of_week, start_date_range et device ; 0.5 à 2.0 pour user_set_dates). Pour modifier les critères de ciblage, supprimez le modificateur d'enchères et créez-en un autre.
  • Suppression : envoyez une opération remove avec le nom de la ressource :
{
  "customerId": "1234567890",
  "operations": [
    {
      "remove": "customers/1234567890/adGroupBidModifiers/987654321~555444333"
    }
  ]
}

Règles de validation et gestion des erreurs

Les règles de validation restent les mêmes d'une version à l'autre, mais six valeurs d'énumération CriterionError sont renommées dans la v26, comme indiqué dans le tableau suivant :

Scénario v25 et versions antérieures v26 et versions ultérieures
La plage de durées de réservation chevauche un critère existant HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION
La période de réservation à l'avance chevauche un critère existant HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION
La plage de dates de début chevauche un critère existant HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION
start_date plus tôt qu'hier (UTC) HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_START_DATE_TOO_EARLY
end_date plus de 330 jours dans le futur (UTC) HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE START_DATE_RANGE_END_DATE_TOO_LATE
start_date après end_date HOTEL_CHECK_IN_DATE_RANGE_REVERSED START_DATE_RANGE_REVERSED

Les erreurs de validation suivantes s'appliquent à toutes les versions de l'API :

  • FieldError.REQUIRED : il manque une limite de plage obligatoire (par exemple, advance_booking_window sans min_days ni max_days).
  • RangeError.TOO_HIGH / RangeError.TOO_LOW : valeur hors limites, par exemple advance_booking_window.max_days supérieur à 330, min_days supérieur à max_days sur advance_booking_window ou length_of_booking, bid_modifier en dehors de 0.1–10.0 pour advance_booking_window, length_of_booking, start_day_of_week ou start_date_range, ou bid_modifier en dehors de 0.5–2.0 (y compris 0) pour user_set_dates.
  • ResourceCountLimitExceededError.RESOURCE_LIMIT : le groupe d'annonces dépasse la limite de modificateurs d'enchères par groupe d'annonces.
  • MutateError.INCONSISTENT_FIELD_VALUES : un sous-champ d'énumération d'ID fixe (tel que user_set_dates.type, start_day_of_week.day_of_week ou device.type) ne correspond pas à l'ID de critère spécifié dans resource_name.
  • ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT : tentative d'ajout d'un modificateur d'enchère pour les voyages à un type de campagne non compatible ou à une campagne sur le Réseau de Recherche non éligible.