Modificare le offerte con i modificatori di offerta

Puoi utilizzare l'API Google Ads per impostare gli aggiustamenti delle offerte (chiamati anche modificatori di offerta) per gli annunci per hotel. Per informazioni dettagliate sul funzionamento degli aggiustamenti delle offerte, consulta Informazioni sugli aggiustamenti delle offerte per gli annunci per hotel.

Aggiustamenti delle offerte a livello di campagna

Per utilizzare l'API Google Ads per impostare gli aggiustamenti delle offerte a livello di campagna, consulta Gestisci i modificatori di offerta.

Aggiustamenti delle offerte a livello di gruppo di annunci

A partire dalla versione 26, i cinque criteri specifici per gli hotel in AdGroupBidModifier vengono rinominati con nomi indipendenti dal verticale (ad esempio giorno della settimana di inizio e durata della prenotazione), sostituendo i criteri specifici per gli hotel delle versioni precedenti. Questi aggiustamenti delle offerte rimangono supportati solo per gli annunci per hotel, sia nelle campagne per hotel sia nelle campagne sulla rete di ricerca per i viaggi. I modificatori di offerta esistenti creati nella versione 25 o precedente vengono trasferiti automaticamente con ID criterio e nomi delle risorse identici. Per un riepilogo di tutte le modifiche che provocano errori della versione 26, consulta le note di rilascio.

Per impostare gli aggiustamenti delle offerte a livello di gruppo di annunci, crea un oggetto criterio per la dimensione che vuoi scegliere come target e imposta i relativi campi sui valori appropriati. Nella versione 26 e successive, utilizza gli oggetti dei criteri indipendenti dal verticale: AdvanceBookingWindowInfo, UserSetDatesInfo, StartDayOfWeekInfo, LengthOfBookingInfo o StartDateRangeInfo. Nella versione 25 e precedenti, utilizza gli oggetti dei criteri specifici per gli hotel: HotelAdvanceBookingWindowInfo, HotelDateSelectionTypeInfo, HotelCheckInDayInfo, HotelLengthOfStayInfo o HotelCheckInDateRangeInfo.

La tabella seguente riassume i campi dei criteri AdGroupBidModifier, i tipi di messaggi, i sottocampi e gli intervalli bid_modifier validi nelle varie versioni dell'API:

v25 e versioni precedenti v26 e versioni successive Sottocampi e tipi Descrizione e intervallo valido
hotel_date_selection_type (HotelDateSelectionTypeInfo) user_set_dates (UserSetDatesInfo) type: DateSelectionType nella versione 26 (HotelDateSelectionType nella versione 25). Valori: DEFAULT_SELECTION (ID criterio 50), USER_SELECTED (ID criterio 51). IMMUTABLE. Date predefinite e date selezionate dall'utente. Intervallo bid_modifier valido: da 0.5 a 2.0 (la disattivazione di 0 non è supportata).
hotel_advance_booking_window (HotelAdvanceBookingWindowInfo) advance_booking_window (AdvanceBookingWindowInfo) min_days, max_days (int64, 0–330). IMMUTABLE, obbligatorio. Numero di giorni prima della data di inizio della prenotazione. Intervallo bid_modifier valido: da 0.1 a 10.0 o 0 per la disattivazione.
hotel_length_of_stay (HotelLengthOfStayInfo) length_of_booking (LengthOfBookingInfo) min_days, max_days nella v26 (min_nights, max_nights nella v25) (int64, 1–30). IMMUTABLE, obbligatorio. Durata della prenotazione. Intervallo bid_modifier valido: da 0.1 a 10.0 o 0 per la disattivazione.
hotel_check_in_day (HotelCheckInDayInfo) start_day_of_week (StartDayOfWeekInfo) day_of_week (DayOfWeek, ID criterio 60–66 per MONDAY–SUNDAY). IMMUTABLE. Giorno della settimana della data di inizio della prenotazione. Intervallo bid_modifier valido: da 0.1 a 10.0 o 0 per la disattivazione.
hotel_check_in_date_range (HotelCheckInDateRangeInfo) start_date_range (StartDateRangeInfo) start_date, end_date (string, YYYY-MM-DD). IMMUTABLE, obbligatorio. Intervallo di date della data di inizio della prenotazione. Intervallo bid_modifier valido: da 0.1 a 10.0 o 0 per la disattivazione.

Ad esempio, per creare un modificatore di offerta per gruppo di annunci utilizzando una finestra per prenotazione anticipata compresa tra 30 e 60 giorni nella versione v26 e successive, crea un oggetto AdvanceBookingWindowInfo (o HotelAdvanceBookingWindowInfo nella versione v25 e precedenti) e imposta min_days su 30 e max_days su 60.

Associa l'oggetto criterio a un oggetto AdGroupBidModifier utilizzando il campo criterio corrispondente (advance_booking_window, user_set_dates, start_day_of_week, length_of_booking o start_date_range), specifica il nome della risorsa del gruppo di annunci target utilizzando ad_group e imposta il campo bid_modifier su un moltiplicatore:

  • advance_booking_window, length_of_booking, start_day_of_week, start_date_range e device: specifica un moltiplicatore compreso tra 0.1 e 10.0 (ad esempio, 1.5 per un aggiustamento del +50% o 0.5 per un aggiustamento del -50%) oppure imposta bid_modifier su 0 (0.0) per disattivare (-100%) il criterio.
  • user_set_dates: specifica un moltiplicatore compreso tra 0.5 e 2.0. L'impostazione di bid_modifier su 0 non è supportata per user_set_dates e restituisce RangeError.TOO_LOW.

Per ulteriori dettagli sul funzionamento di ogni tipo di aggiustamento, consulta Informazioni sugli aggiustamenti delle offerte per gli annunci per hotel.

I seguenti dettagli relativi ai segmenti di report e ai limiti delle risorse si applicano anche alla versione 26:

  • segments.user_set_dates: nella versione 26 e successive, il tipo di enum di segments.user_set_dates è DateSelectionType (aggiornato da HotelDateSelectionType nella versione 25 e precedenti; i report sulle campagne per hotel che utilizzano segments.hotel_date_selection_type continuano a utilizzare HotelDateSelectionType). Gli altri segmenti dell'itinerario (segments.advance_booking_window, segments.length_of_booking, segments.start_date e segments.start_day_of_week) rimangono invariati.
  • Limiti delle risorse: ResourceLimitType.HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP e ResourceLimitType.HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP mantengono i nomi esistenti nella versione 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

Esempi

I seguenti esempi mostrano come eseguire query, creare, aggiornare e rimuovere i modificatori di offerta per gruppo di annunci utilizzando i payload JSON GAQL e REST.

Lettura dei modificatori di offerta con GAQL

Le seguenti query illustrano il recupero dei modificatori di offerta per la durata della prenotazione nella versione 25 e precedenti rispetto alla versione 26 e successive:

v25 e versioni precedenti:

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 e versioni successive:

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

Creazione di modificatori di offerta (payload JSON)

I seguenti payload JSON mostrano la creazione di modificatori di offerta per gruppi di annunci nella versione 26 e successive.

Creazione di un modificatore di offerta per la durata della prenotazione nella versione 26:

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

Nella versione 25 e precedenti, veniva utilizzato hotelLengthOfStay con minNights e maxNights.

Creazione di un modificatore di offerta per l'intervallo di date di inizio nella versione 26:

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

Creazione di un modificatore di offerta per le date impostate dall'utente nella versione 26:

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

Aggiornamento e rimozione dei modificatori di offerta

Puoi aggiornare il moltiplicatore di un modificatore di offerta esistente o rimuovere completamente il modificatore di offerta:

  • Aggiornamento: i campi dei criteri sono IMMUTABLE. Per modificare il moltiplicatore di offerta, invia un'operazione update con updateMask (update_mask in protobuf) impostato su "bidModifier" ("bid_modifier") e imposta bidModifier (bid_modifier) su un valore valido (da 0.1 a 10.0 o 0 per la disattivazione per advance_booking_window, length_of_booking, start_day_of_week, start_date_range e device; da 0.5 a 2.0 per user_set_dates). Per modificare i criteri di targeting, rimuovi il modificatore di offerta e creane uno nuovo.
  • Rimozione: invia un'operazione remove con il nome della risorsa:
{
  "customerId": "1234567890",
  "operations": [
    {
      "remove": "customers/1234567890/adGroupBidModifiers/987654321~555444333"
    }
  ]
}

Regole di convalida e gestione degli errori

Le regole di convalida rimangono invariate tra le versioni, ma sei valori enum CriterionError vengono rinominati nella versione v26, come mostrato nella tabella seguente:

Scenario v25 e versioni precedenti v26 e versioni successive
L'intervallo della durata della prenotazione si sovrappone al criterio esistente HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION
L'intervallo della finestra per prenotazione anticipata si sovrappone al criterio esistente HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION
L'intervallo di date di inizio si sovrappone al criterio esistente HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION
start_date prima di ieri (UTC) HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_START_DATE_TOO_EARLY
end_date più di 330 giorni nel futuro (UTC) HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE START_DATE_RANGE_END_DATE_TOO_LATE
start_date dopo end_date HOTEL_CHECK_IN_DATE_RANGE_REVERSED START_DATE_RANGE_REVERSED

I seguenti errori di convalida si applicano a tutte le versioni dell'API:

  • FieldError.REQUIRED: manca un limite dell'intervallo obbligatorio (ad esempio advance_booking_window senza min_days o max_days).
  • RangeError.TOO_HIGH / RangeError.TOO_LOW: valore fuori dai limiti, ad esempio advance_booking_window.max_days maggiore di 330, min_days maggiore di max_days su advance_booking_window o length_of_booking, bid_modifier al di fuori di 0.1-10.0 per advance_booking_window, length_of_booking, start_day_of_week o start_date_range oppure bid_modifier al di fuori di 0.5-2.0 (incluso 0) per user_set_dates.
  • ResourceCountLimitExceededError.RESOURCE_LIMIT:il gruppo di annunci supera il limite per gruppo di annunci per i modificatori di offerta.
  • MutateError.INCONSISTENT_FIELD_VALUES: un sottocampo enum con ID fisso (ad esempio user_set_dates.type, start_day_of_week.day_of_week o device.type) non corrisponde all'ID criterio specificato in resource_name.
  • ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT:tentativo di aggiungere un modificatore di offerta per i viaggi a un tipo di campagna non supportato o a una campagna sulla rete di ricerca non idonea.