اصلاح قیمت‌های پیشنهادی با «تعدیل‌کننده‌های قیمت پیشنهادی»

می‌توانید از Google Ads API برای تنظیم تعدیل قیمت پیشنهادی (که تعدیل‌کننده قیمت پیشنهادی نیز نامیده می‌شود) برای آگهی‌های هتل استفاده کنید. برای جزئیات درباره نحوه عملکرد تعدیل قیمت پیشنهادی، درباره تعدیل قیمت پیشنهادی برای آگهی‌های «هتل» را ببینید.

تعدیل قیمت پیشنهادی در سطح پویش

برای استفاده از Google Ads API جهت تنظیم تعدیل قیمت پیشنهادی در سطح پویش، مدیریت تعدیل‌کننده‌های قیمت پیشنهادی را ببینید.

تعدیل قیمت‌های پیشنهادی در سطح گروه آگهی

از نسخه ۲۶، پنج معیار مختص هتل در AdGroupBidModifier به نام‌های مستقل از عمودی (مانند روز شروع هفته و مدت رزرو) تغییر نام داده‌اند و جایگزین معیارهای مختص هتل از نسخه‌های قبلی شده‌اند. این تعدیل‌های قیمت پیشنهادی همچنان فقط برای آگهی‌های هتل (هم در پویش‌های «هتل» و هم در «پویش‌های جستجو برای سفر») پشتیبانی می‌شوند. تعدیل‌کننده‌های قیمت پیشنهادی موجود که در نسخه ۲۵ یا قدیمی‌تر ایجاد شده‌اند، به‌طور خودکار با شناسه‌های معیار و نام‌های منبع یکسان منتقل می‌شوند. برای خلاصه همه تغییرات ناسازگار نسخه ۲۶، به یادداشت‌های انتشار مراجعه کنید.

برای تنظیم تعدیل قیمت پیشنهادی در سطح گروه آگهی، یک شیء معیار برای بُعدی که می‌خواهید هدف‌یابی کنید ایجاد کنید و فیلدهای آن را روی مقادیر مناسب تنظیم کنید. در نسخه ۲۶ و جدیدتر، از اشیای معیار عمودی-آگنوستیک استفاده کنید: AdvanceBookingWindowInfo، UserSetDatesInfo، StartDayOfWeekInfo، LengthOfBookingInfo، یا StartDateRangeInfo. در نسخه ۲۵ و نسخه‌های قبلی، از اشیاء معیار مختص هتل استفاده کنید: HotelAdvanceBookingWindowInfo، HotelDateSelectionTypeInfo، HotelCheckInDayInfo، HotelLengthOfStayInfo، یا HotelCheckInDateRangeInfo.

جدول زیر فیلدهای معیار AdGroupBidModifier، انواع پیام، فیلدهای فرعی، و محدوده‌های معتبر bid_modifier را در نسخه‌های میانای برنامه‌سازی کاربردی خلاصه می‌کند:

نسخه ۲۵ و قدیمی‌تر نسخه ۲۶ و جدیدتر زیررشته‌ها و انواع توضیحات و محدوده معتبر
hotel_date_selection_type (HotelDateSelectionTypeInfo) user_set_dates (UserSetDatesInfo) type: DateSelectionType در نسخه ۲۶ (HotelDateSelectionType در نسخه ۲۵). مقادیر: 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 در نسخه ۲۶ (min_nights، max_nights در نسخه ۲۵) (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 برای انصراف.

برای مثال، برای ایجاد تعدیل‌کننده قیمت پیشنهادی گروه آگهی بااستفاده از پنجره رزرو ازپیش بین ۳۰ تا ۶۰ روز در نسخه ۲۶ و جدیدتر، شیء AdvanceBookingWindowInfo (یا HotelAdvanceBookingWindowInfo در نسخه ۲۵ و قدیمی‌تر) ایجاد کنید و min_days را روی 30 و max_days را روی 60 تنظیم کنید.

شیء معیار را بااستفاده از فیلد معیار مربوطه (advance_booking_window، user_set_dates، start_day_of_week، length_of_booking، یا start_date_range) به شیء AdGroupBidModifier مرتبط کنید، نام منبع گروه آگهی هدف را بااستفاده از ad_group مشخص کنید، و فیلد bid_modifier را روی یک ضریب تنظیم کنید:

  • advance_booking_window، length_of_booking، start_day_of_week، start_date_range، و device: ضریبی از 0.1 تا 10.0 (برای مثال، 1.5 برای تعدیل ‎+۵۰٪، یا 0.5 برای تعدیل ‎-۵۰٪) مشخص کنید، یا bid_modifier را روی 0 (0.0) تنظیم کنید تا از معیار انصراف دهید (-100%).
  • user_set_dates: ضریبی بین 0.5 تا 2.0 مشخص کنید. تنظیم bid_modifier روی 0 برای user_set_dates پشتیبانی نمی‌شود و RangeError.TOO_LOW را برمی‌گرداند.

برای جزئیات بیشتر درباره نحوه عملکرد هر نوع تعدیل، درباره تعدیل قیمت پیشنهادی برای آگهی‌های هتل را ببینید.

جزئیات حد منبع و بخش گزارش‌دهی زیر نیز در نسخه ۲۶ اعمال می‌شود:

  • segments.user_set_dates: در نسخه ۲۶ و جدیدتر، نوع شمارشی segments.user_set_dates DateSelectionType است (از 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 نام‌های فعلی‌شان را در نسخه ۲۶ حفظ می‌کنند.

جاوا

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
      

پرل

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 و بارهای داده JSON REST، تعدیل‌کننده‌های قیمت پیشنهادی گروه آگهی را پُرسمان، ایجاد، به‌روزرسانی، و حذف کرد.

خواندن تعدیل‌کننده‌های قیمت پیشنهادی با GAQL

پُرسمان‌های زیر بازیابی تعدیل‌کننده‌های قیمت پیشنهادی طول رزرو را در نسخه ۲۵ و نسخه‌های قبلی درمقایسه با نسخه ۲۶ و نسخه‌های بعدی نشان می‌دهد:

نسخه ۲۵ و قدیمی‌تر:

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

نسخه ۲۶ و جدیدتر:

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 زیر ایجاد تعدیل‌کننده‌های قیمت پیشنهادی گروه آگهی را در نسخه ۲۶ و نسخه‌های جدیدتر نشان می‌دهد.

ایجاد تعدیل‌کننده قیمت پیشنهادی مدت رزرو در نسخه ۲۶:

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

در نسخه ۲۵ و قدیمی‌تر، این مورد از hotelLengthOfStay با minNights و maxNights استفاده می‌کرد.

ایجاد تعدیل‌کننده قیمت پیشنهادی محدوده تاریخ شروع در نسخه ۲۶:

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

ایجاد تعدیل‌کننده قیمت پیشنهادی تاریخ‌های تعیین‌شده توسط کاربر در نسخه ۲۶:

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

به‌روزرسانی و برداشتن تعدیل‌کننده‌های قیمت پیشنهادی

می‌توانید ضریب را در تعدیل‌کننده قیمت پیشنهادی موجود به‌روز کنید یا تعدیل‌کننده قیمت پیشنهادی را به‌طور کامل بردارید:

  • درحال به‌روزرسانی: فیلدهای معیار IMMUTABLE هستند. برای اصلاح ضریب قیمت پیشنهادی، عملیات update را با تنظیم updateMask (update_mask در protobuf) روی "bidModifier" ("bid_modifier") ارسال کنید و bidModifier (bid_modifier) را روی مقدار معتبری تنظیم کنید (0.1 تا 10.0 یا 0 برای انصراف از advance_booking_window، length_of_booking، start_day_of_week، start_date_range، و device؛ 0.5 تا 2.0 برای user_set_dates). برای تغییر معیارهای هدف‌یابی، تعدیل‌کننده قیمت پیشنهادی را بردارید و تعدیل‌کننده جدیدی ایجاد کنید.
  • برداشتن: عملیات remove را با نام منبع ارسال کنید:
{
  "customerId": "1234567890",
  "operations": [
    {
      "remove": "customers/1234567890/adGroupBidModifiers/987654321~555444333"
    }
  ]
}

قوانین اعتبارسنجی و رسیدگی به خطا

قوانین اعتبارسنجی در نسخه‌های مختلف یکسان باقی می‌مانند، اما شش مقدار CriterionError enum در نسخه ۲۶ تغییر نام داده‌اند، همان‌طور که در جدول زیر نشان داده شده است:

سناریو نسخه ۲۵ و قدیمی‌تر نسخه ۲۶ و جدیدتر
طول محدوده رزرو با معیار موجود هم‌پوشانی دارد HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION
محدوده پنجره رزرو ازپیش با معیار موجود هم‌پوشانی دارد HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION
محدوده تاریخ شروع با معیار موجود هم‌پوشانی دارد HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION
‫start_date زودتر از دیروز (به‌وقت ساعت هماهنگ جهانی) HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_START_DATE_TOO_EARLY
‫end_date بیش‌از ۳۳۰ روز در آینده (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 بزرگ‌تر از ۳۳۰، 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: تلاش برای افزودن تعدیل‌کننده قیمت پیشنهادی سفر در نوع پویش پشتیبانی‌نشده یا پویش «شبکه جستجو» فاقدشرایط.