ปรับราคาเสนอด้วยตัวปรับราคาเสนอ

คุณใช้ Google Ads API เพื่อตั้งค่าการปรับราคาเสนอ (หรือที่เรียกว่าตัวปรับราคาเสนอ) สำหรับโฆษณาโรงแรมได้ ดูรายละเอียดเกี่ยวกับวิธีการทำงานของการปรับราคาเสนอได้ที่เกี่ยวกับการปรับราคาเสนอสำหรับโฆษณาโรงแรม

การปรับราคาเสนอระดับแคมเปญ

หากต้องการใช้ Google Ads API เพื่อตั้งค่าการปรับราคาเสนอที่ระดับแคมเปญ โปรดดูจัดการตัวปรับราคาเสนอ

การปรับราคาเสนอระดับกลุ่มโฆษณา

ตั้งแต่ v26 เป็นต้นไป เกณฑ์เฉพาะโรงแรม 5 รายการใน AdGroupBidModifier จะเปลี่ยนชื่อเป็นชื่อที่ไม่ขึ้นอยู่กับประเภทธุรกิจ (เช่น วันเริ่มต้นของสัปดาห์และระยะเวลาการจอง) โดยแทนที่เกณฑ์เฉพาะโรงแรมจากเวอร์ชันก่อนหน้า การปรับราคาเสนอเหล่านี้ยังคงรองรับเฉพาะโฆษณาโรงแรม ทั้งในแคมเปญโรงแรมและแคมเปญ Search สำหรับการท่องเที่ยว ตัวปรับราคาเสนอที่มีอยู่ซึ่งสร้างใน v25 หรือเวอร์ชันก่อนหน้าจะส่งต่อโดยอัตโนมัติพร้อมรหัสเกณฑ์และชื่อทรัพยากรที่เหมือนกัน ดูสรุปการเปลี่ยนแปลงที่ส่งผลกับส่วนอื่นในระบบทั้งหมดของ v26 ได้ที่บันทึกประจำรุ่น

หากต้องการตั้งค่าการปรับราคาเสนอที่ระดับกลุ่มโฆษณา ให้สร้างออบเจ็กต์เกณฑ์สำหรับมิติข้อมูลที่ต้องการกำหนดเป้าหมาย และตั้งค่าช่องเป็นค่าที่เหมาะสม ใน v26 ขึ้นไป ให้ใช้ออบเจ็กต์เกณฑ์ที่ไม่ขึ้นอยู่กับประเภทธุรกิจ ได้แก่ AdvanceBookingWindowInfo, UserSetDatesInfo, StartDayOfWeekInfo, LengthOfBookingInfo หรือ StartDateRangeInfo ใน v25 และเวอร์ชันก่อนหน้า ให้ใช้ออบเจ็กต์เกณฑ์เฉพาะโรงแรม ได้แก่ HotelAdvanceBookingWindowInfo, HotelDateSelectionTypeInfo, HotelCheckInDayInfo, HotelLengthOfStayInfo หรือ HotelCheckInDateRangeInfo

ตารางต่อไปนี้สรุปช่องเกณฑ์ AdGroupBidModifier, ประเภทข้อความ, ช่องย่อย และช่วง bid_modifier ที่ถูกต้องใน API เวอร์ชันต่างๆ

v25 และเก่ากว่า v26 ขึ้นไป ฟิลด์ย่อยและประเภท คำอธิบายและช่วงที่ถูกต้อง
hotel_date_selection_type (HotelDateSelectionTypeInfo) user_set_dates (UserSetDatesInfo) type: DateSelectionType ใน v26 (HotelDateSelectionType ใน v25) ค่า: DEFAULT_SELECTION (รหัสเกณฑ์ 50), USER_SELECTED (รหัสเกณฑ์ 51) IMMUTABLE วันที่เริ่มต้นเทียบกับวันที่ที่ผู้ใช้เลือก ช่วง bid_modifier ที่ถูกต้อง: 0.5 ถึง 2.0 (ไม่รองรับการเลือกไม่รับ 0)
hotel_advance_booking_window (HotelAdvanceBookingWindowInfo) advance_booking_window (AdvanceBookingWindowInfo) min_days, max_days (int64, 0–330) IMMUTABLE ต้องระบุ จำนวนวันก่อนวันที่เริ่มต้นการจอง ช่วง bid_modifier ที่ถูกต้อง: 0.1 ถึง 10.0 หรือ 0 เพื่อเลือกไม่ใช้
hotel_length_of_stay (HotelLengthOfStayInfo) length_of_booking (LengthOfBookingInfo) min_days, max_days ใน v26 (min_nights, max_nights ใน v25) (int64, 1–30) IMMUTABLE, ต้องระบุ ระยะเวลาการจอง ช่วง bid_modifier ที่ถูกต้อง: 0.1 ถึง 10.0 หรือ 0 เพื่อเลือกไม่ใช้
hotel_check_in_day (HotelCheckInDayInfo) start_day_of_week (StartDayOfWeekInfo) day_of_week (DayOfWeek, รหัสเกณฑ์ 60–66 สำหรับ MONDAY–SUNDAY) IMMUTABLE วันในสัปดาห์ของวันที่เริ่มต้นการจอง ช่วง bid_modifier ที่ถูกต้อง: 0.1 ถึง 10.0 หรือ 0 เพื่อเลือกไม่ใช้
hotel_check_in_date_range (HotelCheckInDateRangeInfo) start_date_range (StartDateRangeInfo) start_date, end_date (string, YYYY-MM-DD) IMMUTABLE ต้องระบุ ช่วงวันที่ของวันที่เริ่มต้นการจอง ช่วง bid_modifier ที่ถูกต้อง: 0.1 ถึง 10.0 หรือ 0 เพื่อเลือกไม่ใช้

ตัวอย่างเช่น หากต้องการสร้างตัวปรับราคาเสนอระดับกลุ่มโฆษณาโดยใช้ระยะเวลาการจองล่วงหน้าระหว่าง 30 ถึง 60 วันใน v26 ขึ้นไป ให้สร้างออบเจ็กต์ AdvanceBookingWindowInfo (หรือ HotelAdvanceBookingWindowInfo ใน v25 ลงไป) แล้วตั้งค่า min_days เป็น 30 และ max_days เป็น 60

เชื่อมโยงออบเจ็กต์เกณฑ์กับออบเจ็กต์ AdGroupBidModifier โดยใช้ช่องเกณฑ์ที่เกี่ยวข้อง (advance_booking_window, user_set_dates, start_day_of_week, length_of_booking หรือ start_date_range) ระบุชื่อทรัพยากรของกลุ่มโฆษณาเป้าหมายโดยใช้ ad_group และตั้งค่าช่อง bid_modifier เป็นตัวคูณ ดังนี้

  • advance_booking_window, length_of_booking, start_day_of_week, start_date_range และ device: ระบุตัวคูณตั้งแต่ 0.1 ถึง 10.0 (เช่น 1.5 สำหรับการปรับ +50% หรือ 0.5 สำหรับการปรับ -50%) หรือตั้งค่า bid_modifier เป็น 0 (0.0) เพื่อเลือกไม่ใช้ (-100%) เกณฑ์
  • user_set_dates: ระบุตัวคูณตั้งแต่ 0.5 ถึง 2.0 ไม่รองรับการตั้งค่า bid_modifier เป็น 0 สำหรับ user_set_dates และจะแสดงผลเป็น RangeError.TOO_LOW

ดูรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของการปรับแต่ละประเภทได้ที่เกี่ยวกับการปรับราคาเสนอสำหรับโฆษณาโรงแรม

รายละเอียดกลุ่มการรายงานและขีดจำกัดทรัพยากรต่อไปนี้ยังมีผลใน v26 ด้วย

  • segments.user_set_dates: ใน v26 ขึ้นไป ประเภท enum ของ segments.user_set_dates คือ DateSelectionType (อัปเดตจาก HotelDateSelectionType ใน v25 และก่อนหน้า รายงานแคมเปญโรงแรมที่ใช้ 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 จะยังคงใช้ชื่อเดิมใน 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

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงวิธีค้นหา สร้าง อัปเดต และนําตัวปรับราคาเสนอระดับกลุ่มโฆษณาออกโดยใช้เพย์โหลด GAQL และ REST JSON

การอ่านตัวปรับราคาเสนอด้วย GAQL

คําค้นหาต่อไปนี้แสดงการดึงข้อมูลตัวปรับราคาเสนอตามระยะเวลาการจองใน v25 และเวอร์ชันก่อนหน้าเทียบกับ v26 และเวอร์ชันใหม่กว่า

v25 และเวอร์ชันก่อนหน้า:

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 ขึ้นไป:

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 ต่อไปนี้แสดงการสร้างตัวปรับราคาเสนอระดับกลุ่มโฆษณาใน v26 ขึ้นไป

การสร้างตัวปรับราคาเสนอตามระยะเวลาการจองใน v26:

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

ใน v25 และเวอร์ชันก่อนหน้า จะใช้ hotelLengthOfStay กับ minNights และ maxNights

การสร้างตัวปรับราคาเสนอตามช่วงวันที่เริ่มต้นใน v26:

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

การสร้างตัวปรับราคาเสนอสำหรับวันที่ที่ผู้ใช้ตั้งไว้ใน v26

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

กฎการตรวจสอบและการจัดการข้อผิดพลาด

กฎการตรวจสอบจะยังคงเหมือนเดิมในทุกเวอร์ชัน แต่ค่า enum CriterionError 6 ค่าจะเปลี่ยนชื่อใน v26 ดังที่แสดงในตารางต่อไปนี้

สถานการณ์ v25 และเก่ากว่า v26 ขึ้นไป
ช่วงระยะเวลาการจองทับซ้อนกับเกณฑ์ที่มีอยู่ HOTEL_LENGTH_OF_STAY_OVERLAPS_WITH_EXISTING_CRITERION LENGTH_OF_BOOKING_OVERLAPS_WITH_EXISTING_CRITERION
ช่วงระยะเวลาการจองล่วงหน้าทับซ้อนกับเกณฑ์ที่มีอยู่ HOTEL_ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION ADVANCE_BOOKING_WINDOW_OVERLAPS_WITH_EXISTING_CRITERION
ช่วงวันที่เริ่มต้นทับซ้อนกับเกณฑ์ที่มีอยู่ HOTEL_CHECK_IN_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION START_DATE_RANGE_OVERLAPS_WITH_EXISTING_CRITERION
start_date ก่อนเมื่อวานนี้ (UTC) HOTEL_CHECK_IN_DATE_RANGE_START_DATE_TOO_EARLY START_DATE_RANGE_START_DATE_TOO_EARLY
end_date มากกว่า 330 วันในอนาคต (UTC) HOTEL_CHECK_IN_DATE_RANGE_END_DATE_TOO_LATE START_DATE_RANGE_END_DATE_TOO_LATE
start_date หลังจาก end_date HOTEL_CHECK_IN_DATE_RANGE_REVERSED START_DATE_RANGE_REVERSED

ข้อผิดพลาดในการตรวจสอบต่อไปนี้มีผลกับ API ทุกเวอร์ชัน

  • FieldError.REQUIRED: ไม่มีขอบเขตช่วงที่จำเป็น (เช่น advance_booking_window ที่ไม่มี min_days หรือ max_days)
  • RangeError.TOO_HIGH / RangeError.TOO_LOW: ค่าอยู่นอกขอบเขต เช่น advance_booking_window.max_days มากกว่า 330, min_days มากกว่า max_days ใน advance_booking_window หรือ length_of_booking, bid_modifier อยู่นอก 0.1–10.0 สำหรับ advance_booking_window, length_of_booking, start_day_of_week หรือ start_date_range หรือ bid_modifier อยู่นอก 0.5–2.0 (รวมถึง 0) สำหรับ user_set_dates
  • ResourceCountLimitExceededError.RESOURCE_LIMIT: กลุ่มโฆษณามีตัวปรับราคาเสนอเกินขีดจำกัดต่อกลุ่มโฆษณา
  • MutateError.INCONSISTENT_FIELD_VALUES: ช่องย่อย enum ของรหัสคงที่ (เช่น user_set_dates.type, start_day_of_week.day_of_week หรือ device.type) ไม่ตรงกับรหัสเกณฑ์ที่ระบุใน resource_name
  • ContextError.OPERATION_NOT_PERMITTED_FOR_CONTEXT: พยายามเพิ่มตัวปรับราคาเสนอสำหรับการเดินทางในประเภทแคมเปญที่ไม่รองรับหรือแคมเปญ Search ที่ไม่มีสิทธิ์