Gunakan setelan penargetan di grup iklan atau kampanye Anda untuk menentukan apakah akan mempersempit iklan agar hanya ditampilkan kepada segmen audiens tertentu, atau pada konten tertentu yang telah Anda pilih.
Menyiapkan setelan penargetan
Anda dapat menyiapkan detail tentang cara berbagai jenis kriteria digunakan untuk penargetan
dengan menetapkan kolom TargetingSetting dengan array
target_restrictions (atau dengan menerapkan pembaruan inkremental
menggunakan target_restriction_operations). Setiap
TargetRestriction memungkinkan Anda mengontrol apakah TargetingDimension (AUDIENCE, TOPIC, GENDER,
AGE_RANGE, PLACEMENT, PARENTAL_STATUS, atau INCOME_RANGE) menggunakan opsi
bid_only atau tidak.
Jika bid_only ditetapkan ke true, setelan penargetan akan ditetapkan ke "Pengamatan", dan kriteria tidak akan digunakan untuk membatasi traffic, tetapi akan memungkinkan Anda melakukan bidding secara berbeda untuk pengguna yang berbeda dalam daftar Anda. Menetapkan bid_only ke false akan menetapkan setelan penargetan ke "Penargetan" dan memungkinkan kriteria membatasi traffic grup iklan hanya untuk pengguna dalam daftar yang ditargetkan.
Perbedaan utamanya diringkas dalam tabel berikut:
| Setelan | bid_only |
Efek pada jangkauan | Dampak bidding |
|---|---|---|---|
| Penargetan | false |
Mempersempit jangkauan hanya ke kriteria yang dipilih | Dapat menetapkan bid tertentu pada kriteria |
| Pengamatan | true |
Tidak mempersempit jangkauan; iklan ditampilkan seperti biasa | Memungkinkan penyesuaian bid pada kriteria |
Skenario praktis
Berikut adalah contoh singkat kapan menggunakan mode Pengamatan versus mode Penargetan:
- Pengamatan
- Gunakan mode Pengamatan jika Anda menjalankan kampanye Penelusuran dan ingin mengetahui seberapa baik audiens tertentu (misalnya, "penggemar olahraga") melakukan konversi dibandingkan dengan masyarakat umum, tanpa membatasi iklan Anda hanya untuk audiens tersebut. Anda dapat menambahkan "penggemar olahraga" sebagai kriteria Audiens dengan
bid_only = true(Pengamatan) dan menerapkan penyesuaian bid +10%. Hal ini memungkinkan Anda mengumpulkan data performa untuk audiens tersebut dan melakukan bidding yang lebih kompetitif untuk mereka jika performanya bagus, tanpa kehilangan traffic dari pengguna di luar audiens tersebut. - Penargetan
- Gunakan mode Penargetan jika Anda menjalankan kampanye Display untuk melakukan pemasaran ulang kepada pengguna yang sebelumnya mengunjungi situs Anda tetapi tidak melakukan konversi, dan Anda hanya ingin pengguna dalam daftar pengguna "Pengunjung yang Tidak Menyelesaikan Pembelian" melihat iklan tertentu ini. Dalam hal ini, Anda menambahkan daftar "Pengabaian Keranjang" sebagai kriteria
UserListdenganbid_only = false(Penargetan). Hal ini memastikan anggaran grup iklan Anda hanya dibelanjakan untuk menjangkau segmen audiens dengan niat tinggi ini.
Praktik terbaik
Secara default, bid_only ditetapkan ke false, yang berarti setelan penargetan akan ditetapkan ke "Penargetan". Jika batasan target untuk dimensi penargetan tertentu (seperti AUDIENCE) dihilangkan dari atau tidak ada dalam array target_restrictions dari TargetingSetting, sistem akan mengadopsi perilaku default "Penargetan" (bid_only secara implisit adalah false) untuk dimensi tersebut.
Perilaku API tingkat rendah ini dapat berbeda dengan UI Google Ads, yang mungkin secara otomatis menerapkan "Pengamatan" (bid_only adalah true) secara default untuk beberapa dimensi penargetan (seperti AUDIENCE untuk kampanye Penelusuran) saat kampanye atau grup iklan dibuat. Misalnya, kampanye Shopping yang dibuat melalui UI mungkin menghilangkan setelan dimensi AUDIENCE secara default dari perspektif API, yang berarti kampanye tersebut secara implisit mewarisi perilaku API default "Penargetan" (bid_only adalah false).
Jika Anda menambahkan segmen audiens ke kampanye Penelusuran atau kampanye Shopping, sebaiknya konfigurasi setelan penargetan bid_only secara eksplisit ke true untuk menetapkannya ke "Pengamatan".
Jika Anda menyiapkan kampanye duplikat untuk segmen audiens untuk iklan penelusuran, pertahankan penargetan bid_only yang ditetapkan ke false.
Pembatasan
Anda tidak dapat menambahkan atau memperbarui targeting_setting di
AdGroup jika targeting_setting ditetapkan di
kampanye induk. Jika targeting_setting ditetapkan di Campaign induk, Anda harus menghapus targeting_setting di Campaign induk terlebih dahulu. Demikian pula, Anda harus menghapus targeting_setting di AdGroup terlebih dahulu agar dapat menetapkannya di Campaign.
Untuk menghapus targeting_setting dari Campaign atau AdGroup, kirim operasi update
update dengan targeting_setting.target_restrictions dihapus (ditetapkan ke daftar
kosong) dan sertakan targeting_setting.target_restrictions di
update_mask.
Mengambil setelan penargetan
Untuk memverifikasi bahwa penargetan Anda telah disiapkan sesuai keinginan, periksa
targeting_setting di grup iklan atau kampanye dengan meminta
ad_group.targeting_setting.target_restrictions
kolom dari resource ad_group atau
campaign.targeting_setting.target_restrictions
kolom dari resource campaign dalam kueri penelusuran.
Contoh
Contoh ini memperbarui targeting_setting di grup iklan sehingga bid_only
adalah true untuk instance TargetRestriction dengan targeting_dimension
AUDIENCE, yang memungkinkan Anda mengamati performa dan menetapkan
penyesuaian bid untuk pengguna di segmen audiens tanpa membatasi jangkauan.
Pertama, ambil semua ad_group.targeting_setting.target_restrictions dari grup iklan dengan ID yang diberikan.
Java
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
Perl
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
Selanjutnya, buat loop melalui batasan target dan buat ulang objek TargetingSetting. Jika kode menemukan TargetRestriction dengan targeting_dimension AUDIENCE dan nilai bid_only false, kode tersebut akan memperbarui kolom bid_only objek TargetRestriction ke true (atau "Pengamatan") dan menambahkannya ke objek TargetingSetting. Jika tidak, tambahkan objek TargetRestriction seperti yang ditampilkan dari server ke TargetingSetting.
Java
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
Perl
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
Terakhir, jika kode menemukan batasan target yang perlu diperbarui, kode tersebut akan memperbarui grup iklan dengan setelan penargetan baru.
Java
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
Perl
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
Proses untuk menetapkan kolom bid_only untuk kampanye hampir sama.
Langkah berikutnya
- Pelajari jenis kriteria yang didukung dalam panduan Kriteria.