התאמות של הצעת מחיר

התאמות של הצעות מחיר מאפשרות לכם לשנות את הצעות המחיר לקריטריון מסוים בלי לשנות את הטירגוט של הקמפיין או של קבוצת המודעות. לדוגמה, התאמה של הצעת מחיר לקבוצת מודעות במכשירים ניידים לא מחריגה חשיפות בסוגי מכשירים אחרים, אבל היא מאפשרת לכם להגדיל או להקטין את הצעות המחיר לחשיפות בניידים.

הגורמים לשינוי מוגדרים כמכפילים של נקודה צפה (floating-point) בשדה bid_modifier. לדוגמה, הערך 1.2 מגדיל את הצעת המחיר ב-20%, והערך 0.8 מקטין אותה ב-20%. לגבי קריטריונים נתמכים (כמו החרגה של סוג מכשיר), ערך של 0.0 (ששווה להתאמה של הצעת מחיר בשיעור של ‎-100% בממשק של Google Ads) מבטל את ההסכמה לקריטריון. כשכמה משני הצעות מחיר חלים על חשיפה, הם מוכפלים זה בזה כדי לחשב את התאמת הצעת המחיר הסופית. במאמרי העזרה של CampaignBidModifier ו-AdGroupBidModifier מפורטים טווחי הערכים התקינים.

במדריכים סקירה כללית על בידינג וניהול של התאמות הצעות מחיר מוסבר איך פועל הבידינג ואיך מגדירים התאמות של הצעות מחיר.

התאמות של הצעות מחיר בקמפיין

אפשר לציין התאמות של הצעות מחיר ברמת הקמפיין לסוג הקריטריון הבא באמצעות CampaignBidModifierService:

InteractionTypeInfo
מגדירים קריטריונים של InteractionTypeInfo באמצעות אחד מהערכים המוגדרים מראש של InteractionType. ‫CALL הוא ערך ה-enum היחיד שנתמך בהתאמות של הצעות מחיר בקמפיין. אם תציינו ערך אחר, תוחזר השגיאה CriterionError.

התאמות של הצעות מחיר לקבוצות של מודעות

אפשר לציין התאמות של הצעות מחיר ברמת קבוצת המודעות לסוגי הקריטריונים הבאים באמצעות AdGroupBidModifierService:

DeviceInfo
מגדירים את DeviceInfo הקריטריונים באמצעות אחד מהערכים המוגדרים מראש של Device enum.
קריטריונים שונים לנסיעות
בגרסה 26 ואילך, מגדירים משתנים לקריטריונים של מסלול נסיעה באמצעות קריטריונים שלא תלויים בתחום: UserSetDatesInfo, AdvanceBookingWindowInfo, LengthOfBookingInfo, StartDayOfWeekInfo ו- StartDateRangeInfo. בגרסה 25 ובגרסאות קודמות, אפשר להגדיר משנים ספציפיים למלונות עבור HotelDateSelectionTypeInfo,‏ HotelAdvanceBookingWindowInfo,‏ HotelLengthOfStayInfo,‏ HotelCheckInDayInfo ו-HotelCheckInDateRangeInfo. פרטים נוספים זמינים במדריך בנושא התאמות של הצעות מחיר במודעות להזמנת חדרים.

התאמות של הצעות מחיר ברמת הקריטריון

בנוסף לשירותים ייעודיים של התאמת הצעת המחיר, קריטריונים מסוימים שמוגדרים במשאבים של CampaignCriterion או AdGroupCriterion תומכים בהגדרה של שדה bid_modifier באופן ישיר (CampaignCriterion.bid_modifier או AdGroupCriterion.bid_modifier, למשל קריטריונים של מיקום, תזמון הצגת מודעות או דמוגרפיה).

קוד לדוגמה

בדוגמת הקוד הבאה אפשר לראות איך מוסיפים התאמה של הצעת מחיר למכשירים ניידים ברמת קבוצת המודעות:

Java

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.V25.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::V25::Resources::AdGroupBidModifier->new({
      adGroup => Google::Ads::GoogleAds::V25::Utils::ResourceNames::ad_group(
        $customer_id, $ad_group_id
      ),
      bidModifier => $bid_modifier_value,
      device      => Google::Ads::GoogleAds::V25::Common::DeviceInfo->new({
          type => MOBILE
        })});

  # Create an ad group bid modifier operation.
  my $ad_group_bid_modifier_operation =
    Google::Ads::GoogleAds::V25::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