Ajusta las ofertas con modificadores de ofertas

Puedes usar la API de Google Ads para establecer ajustes de la oferta (también llamados modificadores de oferta) para los anuncios de hotel. Para obtener detalles sobre cómo funcionan los ajustes de la oferta, consulta el artículo Acerca de los ajustes de la oferta para los anuncios de hotel.

Ajustes de la oferta a nivel de la campaña

Para usar la API de Google Ads y establecer ajustes de la oferta a nivel de la campaña, consulta Administra los modificadores de ofertas.

Ajustes de la oferta a nivel del grupo de anuncios

A partir de la versión 26, los cinco criterios específicos de hoteles en AdGroupBidModifier se renombran con nombres independientes de la vertical (como el día de inicio de la semana y la duración de la reserva), lo que reemplaza los criterios específicos de hoteles de las versiones anteriores. Estos ajustes de la oferta siguen siendo compatibles solo con los anuncios de hotel, tanto en las campañas de hoteles como en las campañas de Búsqueda para viajes. Los modificadores de ofertas existentes creados en la versión 25 o anterior se transfieren automáticamente con IDs de criterios y nombres de recursos idénticos. Para obtener un resumen de todos los cambios rotundos de la versión 26, consulta las notas de la versión.

Para establecer ajustes de la oferta a nivel del grupo de anuncios, crea un objeto de criterio para la dimensión que deseas segmentar y establece sus campos con los valores adecuados. En la versión 26 y posteriores, usa los objetos de criterio independientes de la vertical: AdvanceBookingWindowInfo, UserSetDatesInfo, StartDayOfWeekInfo, LengthOfBookingInfo o StartDateRangeInfo. En la versión 25 y anteriores, usa los objetos de criterio específicos de los hoteles: HotelAdvanceBookingWindowInfo, HotelDateSelectionTypeInfo, HotelCheckInDayInfo, HotelLengthOfStayInfo o HotelCheckInDateRangeInfo.

En la siguiente tabla, se resumen los campos de criterios de AdGroupBidModifier, los tipos de mensajes, los campos secundarios y los rangos de bid_modifier válidos en las versiones de la API:

v25 y anteriores v26 y posteriores Subcampos y tipos Descripción y rango válido
hotel_date_selection_type (HotelDateSelectionTypeInfo) user_set_dates (UserSetDatesInfo) type: DateSelectionType en la versión 26 (HotelDateSelectionType en la versión 25). Valores: DEFAULT_SELECTION (ID de criterio 50), USER_SELECTED (ID de criterio 51). IMMUTABLE. Fechas predeterminadas en comparación con las fechas seleccionadas por el usuario Rango válido de bid_modifier: de 0.5 a 2.0 (no se admite la inhabilitación de 0).
hotel_advance_booking_window (HotelAdvanceBookingWindowInfo) advance_booking_window (AdvanceBookingWindowInfo) min_days, max_days (int64, 0–330). IMMUTABLE, obligatorio. Es la cantidad de días antes de la fecha de inicio de la reserva. Rango válido de bid_modifier: de 0.1 a 10.0, o 0 para inhabilitar la opción.
hotel_length_of_stay (HotelLengthOfStayInfo) length_of_booking (LengthOfBookingInfo) min_days, max_days en la versión 26 (min_nights, max_nights en la versión 25) (int64, 1–30). IMMUTABLE, obligatorio. Es la duración de la reserva. Rango válido de bid_modifier: de 0.1 a 10.0, o 0 para inhabilitar la opción.
hotel_check_in_day (HotelCheckInDayInfo) start_day_of_week (StartDayOfWeekInfo) day_of_week (DayOfWeek, IDs de criterios del 60 al 66 para MONDAY a SUNDAY). IMMUTABLE. Es el día de la semana de la fecha de inicio de la reserva. Rango válido de bid_modifier: de 0.1 a 10.0, o 0 para inhabilitar la opción.
hotel_check_in_date_range (HotelCheckInDateRangeInfo) start_date_range (StartDateRangeInfo) start_date, end_date (string, YYYY-MM-DD). IMMUTABLE, obligatorio. Es el período de la fecha de inicio de la reserva. Rango válido de bid_modifier: de 0.1 a 10.0, o 0 para inhabilitar la opción.

Por ejemplo, para crear un modificador de oferta del grupo de anuncios con un período de reserva anticipada de entre 30 y 60 días en la versión 26 y posteriores, crea un objeto AdvanceBookingWindowInfo (o HotelAdvanceBookingWindowInfo en la versión 25 y anteriores) y establece min_days en 30 y max_days en 60.

Asocia el objeto de criterio con un objeto AdGroupBidModifier usando el campo de criterio correspondiente (advance_booking_window, user_set_dates, start_day_of_week, length_of_booking o start_date_range), especifica el nombre del recurso del grupo de anuncios de segmentación con ad_group y establece el campo bid_modifier en un multiplicador:

  • advance_booking_window, length_of_booking, start_day_of_week, start_date_range y device: Especifica un multiplicador de 0.1 a 10.0 (por ejemplo, 1.5 para un ajuste de +50% o 0.5 para un ajuste de -50%), o establece bid_modifier en 0 (0.0) para inhabilitar (-100%) el criterio.
  • user_set_dates: Especifica un multiplicador de 0.5 a 2.0. No se admite configurar bid_modifier como 0 para user_set_dates y se devuelve RangeError.TOO_LOW.

Para obtener más detalles sobre cómo funciona cada tipo de ajuste, consulta el artículo Acerca de los ajustes de la oferta para los anuncios de hotel.

Los siguientes detalles sobre los límites de recursos y segmentos de informes también se aplican en la versión 26:

  • segments.user_set_dates: En la versión 26 y posteriores, el tipo de enumeración de segments.user_set_dates es DateSelectionType (se actualizó de HotelDateSelectionType en la versión 25 y anteriores; los informes de campañas de hoteles que usan segments.hotel_date_selection_type siguen usando HotelDateSelectionType). Los otros segmentos del itinerario (segments.advance_booking_window, segments.length_of_booking, segments.start_date y segments.start_day_of_week) no se modificaron.
  • Límites de recursos: ResourceLimitType.HOTEL_ADVANCE_BOOKING_WINDOW_BID_MODIFIERS_PER_AD_GROUP y ResourceLimitType.HOTEL_CHECK_IN_DATE_RANGE_BID_MODIFIERS_PER_AD_GROUP conservan sus nombres existentes en la versión 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

Ejemplos

En los siguientes ejemplos, se muestra cómo consultar, crear, actualizar y quitar modificadores de ofertas de grupos de anuncios con cargas útiles de GAQL y JSON de REST.

Cómo leer los modificadores de ofertas con GAQL

En las siguientes consultas, se muestra cómo recuperar los modificadores de ofertas de duración de la reserva en la versión 25 y anteriores en comparación con la versión 26 y posteriores:

v25 y anteriores:

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 y versiones posteriores:

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

Crea modificadores de ofertas (carga útil de JSON)

Las siguientes cargas útiles de JSON muestran cómo crear modificadores de ofertas de grupos de anuncios en la versión 26 y posteriores.

Cómo crear un modificador de oferta de duración de la reserva en la versión 26:

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

En la versión 25 y anteriores, se usaba hotelLengthOfStay con minNights y maxNights.

Cómo crear un modificador de ofertas de rango de fechas de inicio en la versión 26:

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

Cómo crear un modificador de ofertas de fechas establecidas por el usuario en la versión 26:

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

Cómo actualizar y quitar modificadores de ofertas

Puedes actualizar el multiplicador en un modificador de ofertas existente o quitarlo por completo:

  • Actualización: Los campos de criterios son IMMUTABLE. Para modificar el multiplicador de ofertas, envía una operación update con updateMask (update_mask en protobuf) establecido en "bidModifier" ("bid_modifier") y establece bidModifier (bid_modifier) en un valor válido (de 0.1 a 10.0 o 0 para inhabilitar advance_booking_window, length_of_booking, start_day_of_week, start_date_range y device; de 0.5 a 2.0 para user_set_dates). Para cambiar los criterios de segmentación, quita el modificador de ofertas y crea uno nuevo.
  • Quitar: Envía una operación remove con el nombre del recurso:
{
  "customerId": "1234567890",
  "operations": [
    {
      "remove": "customers/1234567890/adGroupBidModifiers/987654321~555444333"
    }
  ]
}

Reglas de validación y manejo de errores

Las reglas de validación siguen siendo las mismas en todas las versiones, pero se cambia el nombre de seis valores de enumeración de CriterionError en la versión 26, como se muestra en la siguiente tabla:

Situación v25 y anteriores v26 y posteriores
El intervalo de duración de la reserva se superpone con el criterio existente HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION
El rango del período de reserva anticipada se superpone con el criterio existente HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION
El período de la fecha de inicio se superpone con el criterio existente HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION
start_date antes que ayer (UTC) HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_START_DATE_TOO_EARLY
end_date más de 330 días en el futuro (UTC) HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE START_DATE_RANGE_END_DATE_TOO_LATE
start_date después de la(s) end_date HOTEL_CHECK_IN_DATE_RANGE_REVERSED START_DATE_RANGE_REVERSED

Los siguientes errores de validación se aplican a todas las versiones de la API:

  • FieldError.REQUIRED: Falta un límite de rango obligatorio (como advance_booking_window sin min_days ni max_days).
  • RangeError.TOO_HIGH / RangeError.TOO_LOW: El valor está fuera de los límites, como advance_booking_window.max_days mayor que 330, min_days mayor que max_days en advance_booking_window o length_of_booking, bid_modifier fuera de 0.1-10.0 para advance_booking_window, length_of_booking, start_day_of_week o start_date_range, o bid_modifier fuera de 0.5-2.0 (incluido 0) para user_set_dates.
  • ResourceCountLimitExceededError.RESOURCE_LIMIT: El grupo de anuncios supera el límite de modificadores de ofertas por grupo de anuncios.
  • MutateError.INCONSISTENT_FIELD_VALUES: Un subcampo de enumeración de ID fijo (como user_set_dates.type, start_day_of_week.day_of_week o device.type) no coincide con el ID de criterio especificado en resource_name.
  • ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT: Se intentó agregar un modificador de oferta de viaje en un tipo de campaña no admitido o en una campaña de Búsqueda no apta.