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

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

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

می‌توانید جزئیات مربوط به نحوه استفاده از انواع مختلف معیارهایتان را برای هدف‌یابی با تنظیم فیلد 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 (هدف‌یابی) اضافه می‌کنید. این کار تضمین می‌کند که بودجه گروه آگهی شما فقط برای دسترسی به این بخش مخاطب با قصد جدی هزینه شود.

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

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

این رفتار میانای برنامه‌سازی کاربردی سطح پایین می‌تواند با واسط کاربری 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 اضافه کنید.

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

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

مثال

این مثال 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 (یا «مشاهده») به‌روز می‌کند و آن را به شیء 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::V26::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.V26.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::V26::Resources::AdGroup->new({
      resourceName =>
        Google::Ads::GoogleAds::V26::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::V26::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 برای پویش‌ها تقریباً یکسان است.

قدم بعدی چیست