입찰가 조정

입찰가 조정을 사용하면 캠페인 또는 광고 그룹의 타겟팅을 변경하지 않고도 특정 기준에 따라 입찰가를 조정할 수 있습니다. 예를 들어 휴대기기에 대한 광고 그룹 입찰가 조정은 다른 기기 유형의 노출을 제외하지 않지만 휴대기기 노출에 대한 입찰가를 높이거나 낮출 수 있습니다.

수정자는 bid_modifier 필드에서 부동 소수점 승수로 설정됩니다. 예를 들어 1.2 값은 입찰가를 20% 늘리고 0.8은 20% 줄입니다. 지원되는 기준 (예: 기기 유형 제외)의 경우 0.0 값(Google Ads UI의 -100% 입찰가 조정에 해당)은 기준을 선택 해제합니다. 노출에 여러 입찰가 조정이 적용되는 경우 이를 곱하여 최종 입찰가 조정을 계산합니다. 유효한 값 범위는 CampaignBidModifier 및 AdGroupBidModifier 참고 문서를 참조하세요.

입찰 작동 방식과 입찰가 조정 설정 방법에 대한 자세한 내용은 입찰 개요 및 입찰가 조정 관리 가이드를 참고하세요.

캠페인 입찰가 조정

CampaignBidModifierService를 사용하여 다음 기준 유형의 캠페인 수준에서 입찰가 조정을 지정할 수 있습니다.

InteractionTypeInfo
사전 정의된 InteractionType enum 중 하나를 사용하여 InteractionTypeInfo 기준을 정의합니다. CALL은 캠페인 입찰가 조정에 지원되는 유일한 enum 값입니다. 다른 값을 지정하면 CriterionError가 반환됩니다.

광고 그룹 입찰가 조정

AdGroupBidModifierService를 사용하여 다음 기준 유형의 광고 그룹 수준에서 입찰가 조정을 지정할 수 있습니다.

DeviceInfo
사전 정의된 Device enum 중 하나를 사용하여 DeviceInfo 기준을 정의합니다.
다양한 여행 기준
v26 이상에서는 카테고리에 구애받지 않는 기준(UserSetDatesInfo, AdvanceBookingWindowInfo, LengthOfBookingInfo, StartDayOfWeekInfo, StartDateRangeInfo)을 사용하여 여행 일정 기준의 수정자를 설정합니다. v25 이하에서는 HotelDateSelectionTypeInfo, HotelAdvanceBookingWindowInfo, HotelLengthOfStayInfo, HotelCheckInDayInfo, HotelCheckInDateRangeInfo에 호텔별 수정자를 설정합니다. 이 기준은 호텔 캠페인 및 여행용 검색 캠페인의 호텔 광고에만 적용됩니다. 자세한 내용은 입찰가 조정으로 입찰가 조정을 참고하세요.

기준 수준 입찰가 조정

전용 입찰가 조정 서비스 외에도 CampaignCriterion 또는 AdGroupCriterion 리소스에 설정된 특정 기준은 bid_modifier 필드를 직접 설정하는 것을 지원합니다(CampaignCriterion.bid_modifier 또는 AdGroupCriterion.bid_modifier, 예: 위치, 광고 일정 또는 인구통계 기준).

코드 예

다음 코드 예는 광고 그룹 수준의 휴대기기 입찰가 조정 기능을 추가하는 방법을 보여줍니다.

자바

private void runExample(
    GoogleAdsClient googleAdsClient, long customerId, long adGroupId, double bidModifier) {

  // Creates an ad group bid modifier for mobile devices with the specified ad group ID and
  // bid modifier value.
  AdGroupBidModifier adGroupBidModifier =
      AdGroupBidModifier.newBuilder()
          .setAdGroup(ResourceNames.adGroup(customerId, adGroupId))
          .setBidModifier(bidModifier)
          .setDevice(DeviceInfo.newBuilder().setType(Device.MOBILE))
          .build();

  // Creates an ad group bid modifier operation for creating an ad group bid modifier.
  AdGroupBidModifierOperation adGroupBidModifierOperation =
      AdGroupBidModifierOperation.newBuilder().setCreate(adGroupBidModifier).build();

  // Issues a mutate request to add the ad group bid modifier.
  try (AdGroupBidModifierServiceClient adGroupBidModifierServiceClient =
      googleAdsClient.getLatestVersion().createAdGroupBidModifierServiceClient()) {
    MutateAdGroupBidModifiersResponse response =
        adGroupBidModifierServiceClient.mutateAdGroupBidModifiers(
            Long.toString(customerId), ImmutableList.of(adGroupBidModifierOperation));

    System.out.printf("Added %d ad group bid modifiers:%n", response.getResultsCount());
    for (MutateAdGroupBidModifierResult mutateAdGroupBidModifierResult :
        response.getResultsList()) {
      System.out.printf("\t%s%n", mutateAdGroupBidModifierResult.getResourceName());
    }
  }
}
      

C#

public void Run(GoogleAdsClient client, long customerId, long adGroupId,
    double bidModifierValue)
{
    // Get the AdGroupBidModifierService.
    AdGroupBidModifierServiceClient adGroupBidModifierService =
        client.GetService(Services.V26.AdGroupBidModifierService);

    // Creates an ad group bid modifier for mobile devices with the specified ad group
    // ID and bid modifier value.
    AdGroupBidModifier adGroupBidModifier = new AdGroupBidModifier()
    {
        AdGroup = ResourceNames.AdGroup(customerId, adGroupId),
        BidModifier = bidModifierValue,
        Device = new DeviceInfo()
        {
            Type = Device.Mobile
        }
    };

    // Creates an ad group bid modifier operation for creating an ad group bid modifier.
    AdGroupBidModifierOperation adGroupBidModifierOperation =
        new AdGroupBidModifierOperation()
        {
            Create = adGroupBidModifier
        };

    // Send the operation in a mutate request.
    try
    {
        MutateAdGroupBidModifiersResponse response =
            adGroupBidModifierService.MutateAdGroupBidModifiers(customerId.ToString(),
                new AdGroupBidModifierOperation[] { adGroupBidModifierOperation });
        Console.WriteLine("Added {0} ad group bid modifiers:", response.Results.Count);
        foreach (MutateAdGroupBidModifierResult result in response.Results)
        {
            Console.WriteLine($"\t{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,
        float $bidModifierValue
    ) {
        // Creates an ad group bid modifier for mobile devices with the specified ad group ID and
        // bid modifier value.
        $adGroupBidModifier = new AdGroupBidModifier(
            [
            'ad_group' => ResourceNames::forAdGroup($customerId, $adGroupId),
            'bid_modifier' => $bidModifierValue,
            'device' => new DeviceInfo(['type' => Device::MOBILE])
            ]
        );

        // Creates an ad group bid modifier operation for creating an ad group bid modifier.
        $adGroupBidModifierOperation = new AdGroupBidModifierOperation();
        $adGroupBidModifierOperation->setCreate($adGroupBidModifier);

        // Issues a mutate request to add the ad group bid modifier.
        $adGroupBidModifierServiceClient = $googleAdsClient->getAdGroupBidModifierServiceClient();
        $response = $adGroupBidModifierServiceClient->mutateAdGroupBidModifiers(
            MutateAdGroupBidModifiersRequest::build($customerId, [$adGroupBidModifierOperation])
        );

        printf("Added %d ad group bid modifier:%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,
    bid_modifier_value: float,
) -> None:
    ad_group_service: AdGroupServiceClient = client.get_service(
        "AdGroupService"
    )
    ad_group_bm_service: AdGroupBidModifierServiceClient = client.get_service(
        "AdGroupBidModifierService"
    )

    # Create ad group bid modifier for mobile devices with the specified ad
    # group ID and bid modifier value.
    ad_group_bid_modifier_operation: AdGroupBidModifierOperation = (
        client.get_type("AdGroupBidModifierOperation")
    )
    ad_group_bid_modifier: AdGroupBidModifier = (
        ad_group_bid_modifier_operation.create
    )

    # Set the ad group.
    ad_group_bid_modifier.ad_group = ad_group_service.ad_group_path(
        customer_id, ad_group_id
    )

    # Set the bid modifier.
    ad_group_bid_modifier.bid_modifier = bid_modifier_value

    # Sets the device.
    device_enum: DeviceEnum = client.enums.DeviceEnum
    ad_group_bid_modifier.device.type_ = device_enum.MOBILE

    # Add the ad group bid modifier.
    ad_group_bm_response: MutateAdGroupBidModifiersResponse = (
        ad_group_bm_service.mutate_ad_group_bid_modifiers(
            customer_id=customer_id,
            operations=[ad_group_bid_modifier_operation],
        )
    )
      

Ruby

def add_ad_group_bid_modifier(customer_id, ad_group_id, bid_modifier_value)
  # GoogleAdsClient will read a config file from
  # ENV['HOME']/google_ads_config.rb when called without parameters
  client = Google::Ads::GoogleAds::GoogleAdsClient.new

  # Creates an ad group bid modifier for mobile devices with the specified
  # ad group ID and bid modifier value.
  ad_group_bid_modifier = client.resource.ad_group_bid_modifier do |mod|
    # Sets the ad group.
    mod.ad_group = client.path.ad_group(customer_id, ad_group_id)

    # Sets the Bid Modifier.
    mod.bid_modifier = bid_modifier_value

    # Sets the Device.
    mod.device = client.resource.device_info do |device|
      device.type = :MOBILE
    end
  end

  # Create the operation.
  operation = client.operation.create_resource.ad_group_bid_modifier(ad_group_bid_modifier)

  # Add the ad group ad.
  response = client.service.ad_group_bid_modifier.mutate_ad_group_bid_modifiers(
    customer_id: customer_id,
    operations: [operation]
  )

  puts "Added #{response.results.size} 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_ad_group_bid_modifier {
  my ($api_client, $customer_id, $ad_group_id, $bid_modifier_value) = @_;

  # Create an ad group bid modifier for mobile devices with the specified ad group ID and
  # bid modifier value.
  my $ad_group_bid_modifier =
    Google::Ads::GoogleAds::V26::Resources::AdGroupBidModifier->new({
      adGroup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::ad_group(
        $customer_id, $ad_group_id
      ),
      bidModifier => $bid_modifier_value,
      device      => Google::Ads::GoogleAds::V26::Common::DeviceInfo->new({
          type => MOBILE
        })});

  # Create an ad group bid modifier operation.
  my $ad_group_bid_modifier_operation =
    Google::Ads::GoogleAds::V26::Services::AdGroupBidModifierService::AdGroupBidModifierOperation
    ->new({
      create => $ad_group_bid_modifier
    });

  # Add the ad group bid modifier.
  my $ad_group_bid_modifiers_response =
    $api_client->AdGroupBidModifierService()->mutate({
      customerId => $customer_id,
      operations => [$ad_group_bid_modifier_operation]});

  printf "Created ad group bid modifier '%s'.\n",
    $ad_group_bid_modifiers_response->{results}[0]{resourceName};

  return 1;
}
      

curl