پیکربندی تنظیمات هدف‌یابی

از تنظیمات هدف‌یابی در گروه‌های آگهی یا پویش‌هایتان استفاده کنید تا مشخص کنید که آیا آگهی‌هایتان را محدود کنید تا فقط به بخش‌های مخاطب خاص یا روی محتوای خاصی که انتخاب کرده‌اید نمایش داده شوند.

تنظیمات هدف‌یابی را راه‌اندازی کنید

با تنظیم کردن فیلد TargetingSetting با آرایه‌ای از target_restrictions (یا با اعمال کردن به‌روزرسانی‌های افزایشی بااستفاده از target_restriction_operations)، می‌توانید جزئیات مربوط به نحوه استفاده از انواع معیارهای مختلف برای هدف‌یابی را تنظیم کنید. هر TargetRestriction به شما امکان می‌دهد کنترل کنید که آیا TargetingDimension (AUDIENCE، TOPIC، GENDER، AGE_RANGE، PLACEMENT، PARENTAL_STATUS، یا INCOME_RANGE) از گزینه bid_only استفاده می‌کند یا نه.

وقتی bid_only را روی true تنظیم می‌کنید، تنظیم هدف‌یابی روی «مشاهده» تنظیم می‌شود و از معیارها برای محدود کردن ترافیک استفاده نخواهد شد، اما به شما امکان می‌دهد برای کاربران مختلف در فهرست‌هایتان به‌طور متفاوتی پیشنهاد قیمت دهید. تنظیم bid_only به false تنظیم هدف‌یابی را روی «هدف‌یابی» تنظیم می‌کند و معیارها را فعال می‌کند تا ترافیک گروه آگهی را فقط به کاربران فهرست هدف محدود کند.

تفاوت‌های کلیدی در جدول زیر خلاصه شده است:

تنظیم bid_only تأثیر بر دسترسی تأثیر پیشنهاد قیمت
هدف‌گیری false دسترسی را به فقط معیارهای انتخاب‌شده محدود می‌کند می‌تواند قیمت‌های پیشنهادی خاصی را برای معیارها تنظیم کند
مشاهده true دسترسی را محدود نمی‌کند؛ آگهی‌ها به‌طور عادی نشان داده می‌شوند امکان تعدیل قیمت پیشنهادی براساس معیارها را فراهم می‌کند

سناریوهای عملی

در اینجا نمونه‌های کوتاهی از زمان استفاده از «حالت مشاهده» در مقابل «حالت هدف‌یابی» آورده شده است:

مشاهده
اگر کمپین «جستجو» اجرا می‌کنید و می‌خواهید بدانید مخاطب خاصی (برای مثال، «طرفداران ورزش») درمقایسه با عموم مردم چقدر خوب تبدیل می‌شود، بدون اینکه آگهی‌هایتان را فقط به آن مخاطب محدود کنید، از حالت «مشاهده» استفاده کنید. می‌توانید «طرفداران ورزش» را به‌عنوان معیار «مخاطب» با bid_only = true (مشاهده) اضافه کنید و تعدیل قیمت پیشنهادی ۱۰٪+ را اعمال کنید. این کار به شما امکان می‌دهد داده‌های عملکرد را برای آن مخاطب جمع‌آوری کنید و اگر عملکرد خوبی داشتند، به‌صورت رقابتی‌تری برای آن‌ها پیشنهاد قیمت دهید، بدون اینکه ترافیک کاربران خارج از آن مخاطب را ازدست بدهید.
هدف‌گیری
اگر پویش «شبکه تبلیغات» را برای بازاریابی مجدد به کاربرانی که قبلاً از وب‌سایتتان بازدید کرده‌اند اما تبدیل نداشته‌اند اجرا می‌کنید، و فقط می‌خواهید کاربران فهرست کاربر «ترک‌کنندگان سبد خرید» شما این آگهی‌های ویژه را ببینند، از «حالت هدف‌یابی» استفاده کنید. در این مورد، فهرست «رهاکنندگان سبد خرید» را به‌عنوان معیار UserList با bid_only = false (هدف‌یابی) اضافه می‌کنید. این کار تضمین می‌کند که بودجه گروه آگهی‌تان فقط برای دسترسی به این بخش مخاطب با قصد بالا صرف شود.

روال‌های مطلوب

به‌طور پیش‌فرض، bid_only روی false تنظیم شده است، یعنی تنظیم هدف‌یابی روی «هدف‌یابی» تنظیم خواهد شد. اگر محدودیت هدف برای بُعد هدف‌یابی خاصی (مثل AUDIENCE) در آرایه target_restrictions از TargetingSetting حذف شده باشد یا وجود نداشته باشد، سیستم رفتار پیش‌فرض «هدف‌یابی» (bid_only به‌طور ضمنی false است) را برای آن بُعد اتخاذ می‌کند.

این رفتار سطح پایین «میانای برنامه‌سازی کاربردی» می‌تواند با «میانای کاربر Google Ads» متفاوت باشد، زیرا «میانای کاربر Google Ads» ممکن است به‌طور خودکار «مشاهده» (bid_only true است) را به‌طور پیش‌فرض برای برخی‌از ابعاد هدف‌یابی (مثل AUDIENCE برای پویش‌های «جستجو») هنگام ایجاد پویش‌ها یا گروه‌های آگهی اعمال کند. برای مثال، پویش‌های Shopping ایجادشده ازطریق میانای کاربری ممکن است به‌طور پیش‌فرض تنظیمات بُعد AUDIENCE را از دیدگاه میانای برنامه‌سازی کاربردی حذف کنند، یعنی به‌طور ضمنی رفتار پیش‌فرض میانای برنامه‌سازی کاربردی «هدف‌یابی» (bid_only برابر با false است) را به ارث می‌برند.

اگر بخش‌های مخاطب را به پویش «جستجو» یا Shopping اضافه می‌کنید، تنظیمات هدف‌یابی bid_only را به‌طور صریح روی true پیکربندی کنید تا آن را روی «مشاهده» تنظیم کنید.

اگر پویش تکراری برای بخش‌های مخاطب برای آگهی‌های جستجو راه‌اندازی می‌کنید، هدف‌یابی bid_only را روی false تنظیم کنید.

محدودیت‌ها

اگر targeting_setting در پویش اصلی تنظیم شده باشد، نمی‌توانید targeting_setting را در AdGroup اضافه یا به‌روز کنید. اگر targeting_setting روی Campaign اصلی تنظیم شده باشد، باید ابتدا targeting_setting را از روی Campaign اصلی بردارید. به‌همین ترتیب، ابتدا باید targeting_setting را از AdGroup بردارید تا بتوانید آن را روی Campaign تنظیم کنید.

برای برداشتن targeting_setting از Campaign یا AdGroup، update عملیاتی ارسال کنید که در آن targeting_setting.target_restrictions پاک شده باشد (روی فهرست خالی تنظیم شده باشد) و targeting_setting.target_restrictions را در update_mask بگنجانید.

بازیابی کردن تنظیم هدف‌یابی

برای اینکه مطمئن شوید هدف‌یابی‌تان همان‌طور که می‌خواهید راه‌اندازی شده است، با درخواست کردن فیلد ad_group.targeting_setting.target_restrictions از منبع ad_group یا فیلد campaign.targeting_setting.target_restrictions از منبع campaign در پُرسمان جستجو، targeting_setting را در گروه‌های آگهی یا پویش‌ها بررسی کنید.

مثال

این مثال targeting_setting را در گروه آگهی به‌روز می‌کند تا bid_only برای TargetRestriction نمونه با targeting_dimension AUDIENCE true باشد، که به شما امکان می‌دهد عملکرد را مشاهده کنید و بدون محدود کردن دسترسی، تعدیل‌های قیمت پیشنهادی را برای کاربران در بخش مخاطب تنظیم کنید.

ابتدا، همه ad_group.targeting_setting.target_restrictions را از گروه آگهی با شناسه ارائه‌شده بازیابی کنید.

جاوا

String searchQuery =
    "SELECT ad_group.id, ad_group.name, ad_group.targeting_setting.target_restrictions "
        + "FROM ad_group "
        + "WHERE ad_group.id = "
        + adGroupId;
      

C#‎

string query = $@"
    SELECT ad_group.id, ad_group.name, ad_group.targeting_setting.target_restrictions
    FROM ad_group
    WHERE ad_group.id = {adGroupId}";
      

PHP

$query = "SELECT ad_group.id, ad_group.name, " .
    "ad_group.targeting_setting.target_restrictions " .
    "FROM ad_group " .
    "WHERE ad_group.id = $adGroupId";
      

Python

query: str = f"""
    SELECT
      ad_group.id,
      ad_group.name,
      ad_group.targeting_setting.target_restrictions
    FROM ad_group
    WHERE ad_group.id = {ad_group_id}"""
      

Ruby

query = <<~QUERY
  SELECT ad_group.id, ad_group.name,
         ad_group.targeting_setting.target_restrictions
  FROM ad_group
  WHERE ad_group.id = #{ad_group_id}
QUERY
      

پرل

my $query =
  "SELECT ad_group.id, ad_group.name, " .
  "ad_group.targeting_setting.target_restrictions FROM ad_group " .
  "WHERE ad_group.id = $ad_group_id";
      

curl

سپس، محدودیت‌های هدف را حلقه بزنید و TargetingSetting شیء را بازسازی کنید. اگر کد با TargetRestriction با targeting_dimension از AUDIENCE و مقدار bid_only از false مواجه شود، فیلد bid_only شیء TargetRestriction را به true (یا "Observation") به‌روزرسانی می‌کند و آن را به شیء TargetingSetting اضافه می‌کند. درغیراین‌صورت، شیء TargetRestriction را که از سرور برگردانده شده است به TargetingSetting اضافه کنید.

جاوا

for (TargetRestriction targetRestriction : targetRestrictions) {
  TargetingDimension targetingDimension = targetRestriction.getTargetingDimension();
  boolean bidOnly = targetRestriction.getBidOnly();
  System.out.printf(
      "- Targeting restriction with targeting dimension '%s' and bid only set to '%b'.%n",
      targetingDimension, bidOnly);
  // Adds the target restriction to the TargetingSetting object as is if the targeting
  // dimension has a value other than AUDIENCE because those should not change.
  if (!targetingDimension.equals(TargetingDimension.AUDIENCE)) {
    targetingSettingBuilder.addTargetRestrictions(targetRestriction);
  } else if (!bidOnly) {
    shouldUpdateTargetingSetting = true;
    // Adds an AUDIENCE target restriction with bid_only set to true to the targeting
    // setting object. This has the effect of setting the AUDIENCE target restriction to
    // "Observation". For more details about the targeting setting, visit
    // https://support.google.com/google-ads/answer/7365594.
    targetingSettingBuilder.addTargetRestrictions(
        TargetRestriction.newBuilder()
            .setTargetingDimensionValue(TargetingDimension.AUDIENCE_VALUE)
            .setBidOnly(true));
  }
}
      

C#‎

foreach (TargetRestriction targetRestriction in targetRestrictions)
{
    TargetingDimension targetingDimension =
        targetRestriction.TargetingDimension;
    bool bidOnly = targetRestriction.BidOnly;

    Console.WriteLine("\tTargeting restriction with targeting dimension " +
        $"'{targetingDimension}' and bid only set to '{bidOnly}'.");

    // Add the target restriction to the TargetingSetting object as is if the
    // targeting dimension has a value other than AUDIENCE because those should
    // not change.
    if (targetingDimension != TargetingDimension.Audience)
    {
        targetingSetting.TargetRestrictions.Add(targetRestriction);
    }
    else if (!bidOnly)
    {
        shouldUpdateTargetingSetting = true;

        // Add an AUDIENCE target restriction with bid_only set to true to the
        // targeting setting object. This has the effect of setting the AUDIENCE
        // target restriction to "Observation". For more details about the
        // targeting setting, visit
        // https://support.google.com/google-ads/answer/7365594.
        targetingSetting.TargetRestrictions.Add(new TargetRestriction
        {
            TargetingDimension = TargetingDimension.Audience,
            BidOnly = true
        });
    }
}
      

PHP

foreach (
    $adGroup->getTargetingSetting()->getTargetRestrictions() as $targetRestriction
) {
    // Prints the results.
    $targetingDimension = $targetRestriction->getTargetingDimension();
    $bidOnly = $targetRestriction->getBidOnly();
    printf(
        "- Targeting restriction with targeting dimension '%s' and bid only set to " .
        "'%s'.%s",
        TargetingDimension::name($targetingDimension),
        $bidOnly ? 'true' : 'false',
        PHP_EOL
    );

    // Adds the target restriction to the TargetingSetting object as is if the targeting
    // dimension has a value other than AUDIENCE because those should not change.
    if ($targetingDimension !== TargetingDimension::AUDIENCE) {
        $targetRestrictions[] = $targetRestriction;
    } elseif (!$bidOnly) {
        $shouldUpdateTargetingSetting = true;

        // Adds an AUDIENCE target restriction with bid_only set to true to the
        // targeting setting object. This has the effect of setting the AUDIENCE
        // target restriction to "Observation".
        // For more details about the targeting setting, visit
        // https://support.google.com/google-ads/answer/7365594.
        $targetRestrictions[] = new TargetRestriction(
            [
            'targeting_dimension' => TargetingDimension::AUDIENCE,
            'bid_only' => true
            ]
        );
    }
}
      

Python

target_restriction: TargetRestriction
for target_restriction in target_restrictions:
    targeting_dimension: TargetingDimensionEnum.TargetingDimension = (
        target_restriction.targeting_dimension
    )
    bid_only: bool = target_restriction.bid_only

    print(
        "\tTargeting restriction with targeting dimension "
        f"'{targeting_dimension.name}' "
        f"and bid only set to '{bid_only}'."
    )

    # Add the target restriction to the TargetingSetting object as
    # is if the targeting dimension has a value other than audience
    # because those should not change.
    if targeting_dimension != targeting_dimension_enum.AUDIENCE:
        targeting_setting.target_restrictions.append(target_restriction)
    elif not bid_only:
        should_update_targeting_setting: bool = True

        # Add an audience target restriction with bid_only set to
        # true to the targeting setting object. This has the effect
        # of setting the audience target restriction to
        # "Observation". For more details about the targeting
        # setting, visit
        # https://support.google.com/google-ads/answer/7365594.
        new_target_restriction: TargetRestriction = (
            targeting_setting.target_restrictions.add()
        )
        new_target_restriction.targeting_dimension = (
            targeting_dimension_enum.AUDIENCE
        )
        new_target_restriction.bid_only = True
      

Ruby

ad_group.targeting_setting.target_restrictions.each do |r|
  # Prints the results.
  targeting_dimension = r.targeting_dimension
  bid_only = r.bid_only
  puts "- Targeting restriction with targeting dimension " \
    "#{targeting_dimension} and bid only set to #{bid_only}."

  # Adds the target restriction to the TargetingSetting object as is if the
  # targeting dimension has a value other than AUDIENCE because those should
  # not change.
  if targeting_dimension != :AUDIENCE
    target_restrictions << r
  elsif !bid_only
    should_update_targeting_setting = true

    # Adds an AUDIENCE target restriction with bid_only set to true to the
    # targeting setting object. This has the effect of setting the AUDIENCE
    # target restriction to "Observation".
    # For more details about the targeting setting, visit
    # https://support.google.com/google-ads/answer/7365594.
    target_restrictions << client.resource.target_restriction do |tr|
      tr.targeting_dimension = :AUDIENCE
      tr.bid_only = true
    end
  end
end
      

پرل

foreach my $target_restriction (@target_restrictions) {
  my $targeting_dimension = $target_restriction->{targetingDimension};

  printf
    "\tTargeting restriction with targeting dimension '%s' and bid " .
    "only set to '%s'.\n",
    $targeting_dimension,
    $target_restriction->{bidOnly} ? "TRUE" : "FALSE";

  # Add the target restriction to the TargetingSetting object as is if the
  # targeting dimension has a value other than AUDIENCE because those
  # should not change.
  if ($targeting_dimension ne AUDIENCE) {
    $target_restriction->{bidOnly} =
      $target_restriction->{bidOnly} ? "true" : "false";
    push @{$targeting_setting->{targetRestrictions}}, $target_restriction;
  } elsif (!$target_restriction->{bidOnly}) {
    $should_update_target_setting = 1;

    # Add an AUDIENCE target restriction with bid_only set to true to the
    # targeting setting object. This has the effect of setting the
    # AUDIENCE target restriction to "Observation". For more details about
    # the targeting setting, visit
    # https://support.google.com/google-ads/answer/7365594.
    my $new_restriction =
      Google::Ads::GoogleAds::V25::Common::TargetRestriction->new({
        targetingDimension => AUDIENCE,
        bidOnly            => "true"
      });
    push @{$targeting_setting->{targetRestrictions}}, $new_restriction;
  }
}
      

curl

درنهایت، اگر کد با محدودیت هدفی مواجه شود که نیاز به به‌روزرسانی دارد، گروه آگهی را با تنظیمات هدف‌یابی جدید به‌روز می‌کند.

جاوا

private void updateTargetingSetting(
    GoogleAdsClient googleAdsClient,
    long customerId,
    long adGroupId,
    TargetingSetting targetingSetting) {
  // Creates the ad group service client.
  try (AdGroupServiceClient adGroupServiceClient =
      googleAdsClient.getLatestVersion().createAdGroupServiceClient()) {
    // Creates an ad group object with the proper resource name and updated targeting setting.
    AdGroup adGroup =
        AdGroup.newBuilder()
            .setResourceName(ResourceNames.adGroup(customerId, adGroupId))
            .setTargetingSetting(targetingSetting)
            .build();
    // Constructs an operation that will update the ad group, using the FieldMasks utility to
    // derive the update mask. This mask tells the Google Ads API which attributes of the
    // ad group you want to change.
    AdGroupOperation operation =
        AdGroupOperation.newBuilder()
            .setUpdate(adGroup)
            .setUpdateMask(FieldMasks.allSetFieldsOf(adGroup))
            .build();
    // Sends the operation in a mutate request.
    MutateAdGroupsResponse response =
        adGroupServiceClient.mutateAdGroups(
            Long.toString(customerId), ImmutableList.of(operation));
    // Prints the resource name of the updated object.
    System.out.printf(
        "Updated targeting setting of ad group with resource name '%s'; set the AUDIENCE "
            + "target restriction to 'Observation'.%n",
        response.getResults(0).getResourceName());
  }
}
      

C#‎

private void UpdateTargetingSetting(GoogleAdsClient client, long customerId, long
    adGroupId, TargetingSetting targetingSetting)
{
    // Get the AdGroupService client.
    AdGroupServiceClient adGroupServiceClient =
        client.GetService(Services.V25.AdGroupService);

    // Create an ad group object with the updated targeting setting.
    AdGroup adGroup = new AdGroup
    {
        ResourceName = ResourceNames.AdGroup(customerId, adGroupId),
        TargetingSetting = targetingSetting
    };

    // Construct an operation that will update the ad group, using the FieldMasks utility
    // to derive the update mask. This mask tells the Google Ads API which attributes of the
    // ad group you want to change.
    AdGroupOperation operation = new AdGroupOperation
    {
        Update = adGroup,
        UpdateMask = FieldMasks.AllSetFieldsOf(adGroup)
    };

    // Send the operation in a mutate request.
    MutateAdGroupsResponse response =
        adGroupServiceClient.MutateAdGroups(customerId.ToString(), new[] { operation });
    // Print the resource name of the updated object.
    Console.WriteLine("Updated targeting setting of ad group with resource name " +
        $"'{response.Results.First().ResourceName}'; set the AUDIENCE target restriction " +
        "to 'Observation'.");
}
      

PHP

private static function updateTargetingSetting(
    GoogleAdsClient $googleAdsClient,
    int $customerId,
    int $adGroupId,
    TargetingSetting $targetingSetting
) {
    // Creates an ad group object with the proper resource name and updated targeting setting.
    $adGroup = new AdGroup(
        [
        'resource_name' => ResourceNames::forAdGroup($customerId, $adGroupId),
        'targeting_setting' => $targetingSetting
        ]
    );

    // Constructs an operation that will update the ad group with the specified resource name,
    // using the FieldMasks utility to derive the update mask. This mask tells the Google Ads
    // API which attributes of the ad group you want to change.
    $adGroupOperation = new AdGroupOperation();
    $adGroupOperation->setUpdate($adGroup);
    $adGroupOperation->setUpdateMask(FieldMasks::allSetFieldsOf($adGroup));

    // Issues a mutate request to update the ad group.
    $adGroupServiceClient = $googleAdsClient->getAdGroupServiceClient();
    $response = $adGroupServiceClient->mutateAdGroups(
        MutateAdGroupsRequest::build($customerId, [$adGroupOperation])
    );

    // Prints the resource name of the updated ad group.
    printf(
        "Updated targeting setting of ad group with resource name '%s'; set the AUDIENCE " .
        "target restriction to 'Observation'.%s",
        $response->getResults()[0]->getResourceName(),
        PHP_EOL
    );
}
      

Python

def update_targeting_setting(
    client: GoogleAdsClient,
    customer_id: str,
    ad_group_id: str,
    targeting_setting: TargetingSetting,
) -> None:
    """Updates the given TargetingSetting of an ad group.

    Args:
        client: The Google Ads client.
        customer_id: The Google Ads customer ID.
        ad_group_id: The ad group ID for which to update the audience targeting
            restriction.
        targeting_setting: The updated targeting setting.
    """
    # Get the AdGroupService client.
    ad_group_service: AdGroupServiceClient = client.get_service(
        "AdGroupService"
    )

    # Construct an operation that will update the ad group.
    ad_group_operation: AdGroupOperation = client.get_type("AdGroupOperation")

    # Populate the ad group object with the updated targeting setting.
    ad_group: AdGroup = ad_group_operation.update
    ad_group.resource_name = ad_group_service.ad_group_path(
        customer_id, ad_group_id
    )
    ad_group.targeting_setting.target_restrictions.extend(
        targeting_setting.target_restrictions
    )
    # Use the field_mask utility to derive the update mask. This mask tells the
    # Google Ads API which attributes of the ad group you want to change.
    client.copy_from(
        ad_group_operation.update_mask,
        protobuf_helpers.field_mask(None, ad_group._pb),
    )

    # Send the operation in a mutate request and print the resource name of the
    # updated object.
    mutate_ad_groups_response: MutateAdGroupsResponse = (
        ad_group_service.mutate_ad_groups(
            customer_id=customer_id, operations=[ad_group_operation]
        )
    )
    print(
        "Updated targeting setting of ad group with resource name "
        f"'{mutate_ad_groups_response.results[0].resource_name}'; set the "
        "audience target restriction to 'Observation'."
    )
      

Ruby

def update_targeting_setting(
  client,
  customer_id,
  ad_group_id,
  targeting_setting)
  # Constructs an operation that will update the ad group with the specified
  # resource name.
  ad_group_resource_name = client.path.ad_group(customer_id, ad_group_id)
  operation = client.operation.update_resource.ad_group(ad_group_resource_name) do |ag|
    ag.targeting_setting = targeting_setting
  end

  # Issues a mutate request to update the ad group.
  response = client.service.ad_group.mutate_ad_groups(
    customer_id: customer_id,
    operations: [operation],
  )

  # Prints the resource name of the updated ad group.
  puts "Updated targeting setting of ad group with resource name " \
    "#{response.results.first.resource_name}; set the AUDIENCE target " \
    "restriction to 'Observation'."
end
      

پرل

sub update_targeting_setting {
  my ($api_client, $customer_id, $ad_group_id, $targeting_setting) = @_;

  # Construct an ad group object with the updated targeting setting.
  my $ad_group = Google::Ads::GoogleAds::V25::Resources::AdGroup->new({
      resourceName =>
        Google::Ads::GoogleAds::V25::Utils::ResourceNames::ad_group(
        $customer_id, $ad_group_id
        ),
      targetingSetting => $targeting_setting
    });

  # Create an operation that will update the ad group, using the FieldMasks
  # utility to derive the update mask. This mask tells the Google Ads API which
  # attributes of the ad group you want to change.
  my $ad_group_operation =
    Google::Ads::GoogleAds::V25::Services::AdGroupService::AdGroupOperation->
    new({
      update     => $ad_group,
      updateMask => all_set_fields_of($ad_group)});

  # Send the operation in a mutate request and print the resource name of the
  # updated resource.
  my $ad_groups_response = $api_client->AdGroupService()->mutate({
      customerId => $customer_id,
      operations => [$ad_group_operation]});

  printf "Updated targeting setting of ad group with resourceName " .
    "'%s'; set the AUDIENCE target restriction to 'Observation'.\n",
    $ad_groups_response->{results}[0]{resourceName};
}
      

curl

فرایند تنظیم فیلد bid_only برای پویش‌ها تقریباً یکسان است.

قدم بعدی چیست