Utilizza l'impostazione di targeting nei gruppi di annunci o nelle campagne per specificare se limitare la pubblicazione degli annunci solo a segmenti di pubblico specifici o a contenuti specifici che hai selezionato.
Configura l'impostazione di targeting
Puoi configurare i dettagli su come vengono utilizzati i vari tipi di criteri per il targeting impostando il campo TargetingSetting con un array di target_restrictions (o applicando aggiornamenti incrementali utilizzando target_restriction_operations). Ogni TargetRestriction ti consente di controllare se un TargetingDimension (AUDIENCE, TOPIC, GENDER, AGE_RANGE, PLACEMENT, PARENTAL_STATUS o INCOME_RANGE) utilizza o meno l'opzione bid_only.
Se imposti bid_only su true, l'impostazione di targeting verrà impostata su"Osservazione" e i criteri non verranno utilizzati per limitare il traffico, ma ti consentiranno di fare offerte diverse per utenti diversi nei tuoi elenchi. Se imposti bid_only su false, l'impostazione di targeting viene impostata su "Targeting" e i criteri vengono attivati per limitare il traffico del gruppo di annunci solo agli utenti nell'elenco scelto come target.
Le principali differenze sono riassunte nella seguente tabella:
| Impostazione | bid_only |
Effetto sulla copertura | Impatto sulle offerte |
|---|---|---|---|
| Targeting | false |
Restringe la copertura solo ai criteri selezionati | Può impostare offerte specifiche in base ai criteri |
| Osservazione | true |
Non limita la copertura; gli annunci vengono mostrati normalmente | Consente gli aggiustamenti delle offerte in base ai criteri |
Scenari pratici
Ecco alcuni brevi esempi di quando utilizzare la modalità Osservazione rispetto alla modalità Targeting:
- Osservazione
- Utilizza la modalità Osservazione se pubblichi una campagna sulla rete di ricerca e vuoi sapere quanto converte un determinato segmento di pubblico (ad esempio, "appassionati di sport") rispetto al pubblico generico, senza limitare i tuoi annunci solo a quel segmento di pubblico. Puoi aggiungere "appassionati di sport" come criterio di pubblico con
bid_only = true(Osservazione) e applicare un aggiustamento delle offerte del +10%. In questo modo, puoi raccogliere dati sul rendimento per quel segmento di pubblico e fare offerte più competitive se il rendimento è positivo, senza perdere il traffico degli utenti al di fuori di quel segmento di pubblico. - Targeting
- Utilizza la modalità Targeting se pubblichi una campagna display per fare il remarketing per gli utenti che hanno visitato il tuo sito web in precedenza, ma non hanno effettuato conversioni, e vuoi che solo gli utenti nell'elenco utenti "Abbandono del carrello" visualizzino questi annunci specifici. In questo caso, aggiungi l'elenco "Abbandono del carrello" come criterio
UserListconbid_only = false(Targeting). In questo modo, il budget del gruppo di annunci viene speso solo per raggiungere questo segmento di pubblico con intenzione di acquisto elevata.
Best practice
Per le dimensioni di targeting non demografico (ad esempio AUDIENCE), bid_only è impostato su false per impostazione predefinita, il che significa che l'impostazione di targeting è impostata su "Targeting".
Se una limitazione di targeting per una di queste dimensioni viene omessa o non è presente nell'array target_restrictions di un TargetingSetting, il sistema adotta il comportamento predefinito di "Targeting" (bid_only è implicitamente false) per quella dimensione.
Questo comportamento dell'API di basso livello può differire da quello dell'interfaccia utente di Google Ads, che potrebbe applicare automaticamente "Osservazione" (bid_only è true) per impostazione predefinita per alcune dimensioni di targeting (ad esempio AUDIENCE per le campagne sulla rete di ricerca) quando vengono create campagne o gruppi di annunci. Ad esempio, le campagne Shopping create tramite l'interfaccia utente
potrebbero omettere le impostazioni della dimensione AUDIENCE per impostazione predefinita dal punto di vista dell'API, il che significa che ereditano implicitamente il comportamento predefinito dell'API di "Targeting" (bid_only è false).
Se aggiungi segmenti di pubblico a una campagna Shopping o sulla rete di ricerca, ti consigliamo di configurare esplicitamente l'impostazione di targeting di bid_only su true per impostarla su "Osservazione".
Se stai configurando una campagna duplicata per i segmenti di pubblico per gli annunci della rete di ricerca,
mantieni il targeting di bid_only impostato su false.
Limitazioni
Non puoi aggiungere o aggiornare targeting_setting in un
AdGroup se targeting_setting è impostato nella
campagna principale. Se targeting_setting è impostato su Campaign principale, devi prima rimuovere targeting_setting su Campaign principale. Analogamente, devi prima rimuovere targeting_setting su AdGroup per impostarlo su Campaign.
Per rimuovere un targeting_setting da un Campaign o AdGroup, invia un'operazione update in cui targeting_setting.target_restrictions viene cancellato (impostato su un elenco vuoto) e includi targeting_setting.target_restrictions in update_mask.
Recupera l'impostazione di targeting
Per verificare che il targeting sia configurato come previsto, controlla
targeting_setting nei gruppi di annunci o nelle campagne richiedendo il campo
ad_group.targeting_setting.target_restrictions
dalla risorsa ad_group o il campo
campaign.targeting_setting.target_restrictions
dalla risorsa campaign in una query di ricerca.
Esempio
Questo esempio aggiorna targeting_setting in un gruppo di annunci in modo che bid_only
sia true per le istanze TargetRestriction con targeting_dimension di
AUDIENCE, il che ti consente di osservare il rendimento e impostare
gli aggiustamenti delle offerte per gli utenti nel segmento di pubblico senza limitare la copertura.
Innanzitutto, recupera tutti i ad_group.targeting_setting.target_restrictions dal gruppo di annunci con l'ID fornito.
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
Successivamente, esegui un loop attraverso le limitazioni di targeting e ricostruisci gli oggetti TargetingSetting. Se il codice rileva un TargetRestriction con un
targeting_dimension di AUDIENCE e un valore bid_only di false, aggiorna il campo bid_only dell'oggetto TargetRestriction in true (o
"Observation") e lo aggiunge all'oggetto TargetingSetting. In caso contrario, aggiungi l'oggetto TargetRestriction restituito dal server a 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::V26::Common::TargetRestriction->new({ targetingDimension => AUDIENCE, bidOnly => "true" }); push @{$targeting_setting->{targetRestrictions}}, $new_restriction; } }
curl
Infine, se il codice rileva una limitazione di targeting che richiede un aggiornamento, aggiorna il gruppo di annunci con le nuove impostazioni di targeting.
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.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
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::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
La procedura per impostare il campo bid_only per le campagne è quasi identica.
Passaggi successivi
- Esplora i tipi di criteri supportati nella guida ai criteri.