Dans la section Obtenir des suggestions, nous avons montré comment récupérer un ensemble d'objets KeywordThemeConstant
à l'aide d'un mot ou d'une expression. Au cours de cette étape, nous utilisons ces mêmes constantes de thème de mots clés pour créer un ensemble d'objets CampaignCriterion
que la campagne intelligente doit cibler.
De la même manière que nous avons utilisé le montant du budget suggéré par SmartCampaignSuggestService
lors de la création d'un budget, nous vous recommandons de créer des critères de campagne basés sur les constantes du thème de mot clé récupérées à partir de KeywordThemeConstantService
dans Obtenir des suggestions.
Voici les principales exigences concernant les critères des campagnes intelligentes:
Les campagnes intelligentes n'acceptent que les types de critères suivants:
Pour le ciblage géographique, si aucune zone n'est spécifiée, le ciblage inclut par défaut toutes les régions.
Vous pouvez associer plusieurs critères
location
à une campagne intelligente, mais un seul critèreproximity
peut être utilisé.Il n'est pas possible d'utiliser à la fois le ciblage
location
et le ciblageproximity
.
Dans l'exemple suivant, les constantes du thème de mots clés ont été converties en objets KeywordThemeInfo
en définissant le nom de leur ressource dans le champ KeywordThemeInfo.keyword_theme_constant
. Nous avons défini le champ campaign
à l'aide du nom de ressource temporaire défini sur la campagne à l'étape précédente.
Java
/** * Creates {@link com.google.ads.googleads.v16.resources.CampaignCriterion} operations for add * each {@link KeywordThemeInfo}. */ private Collection<? extends MutateOperation> createCampaignCriterionOperations( long customerId, List<KeywordThemeInfo> keywordThemeInfos, SmartCampaignSuggestionInfo suggestionInfo) { List<MutateOperation> keywordThemeOperations = keywordThemeInfos.stream() .map( keywordTheme -> { MutateOperation.Builder builder = MutateOperation.newBuilder(); builder .getCampaignCriterionOperationBuilder() .getCreateBuilder() .setCampaign(ResourceNames.campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID)) .setKeywordTheme(keywordTheme); return builder.build(); }) .collect(Collectors.toList()); List<MutateOperation> locationOperations = suggestionInfo.getLocationList().getLocationsList().stream() .map( location -> { MutateOperation.Builder builder = MutateOperation.newBuilder(); builder .getCampaignCriterionOperationBuilder() .getCreateBuilder() .setCampaign(ResourceNames.campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID)) .setLocation(location); return builder.build(); }) .collect(Collectors.toList()); return Stream.concat(keywordThemeOperations.stream(), locationOperations.stream()) .collect(Collectors.toList()); }
C#
/// <summary> /// Creates a list of MutateOperations that create new campaign criteria. /// </summary> /// <param name="customerId">The Google Ads customer ID.</param> /// <param name="keywordThemeInfos">A list of KeywordThemeInfos.</param> /// <param name="suggestionInfo">A SmartCampaignSuggestionInfo instance.</param> /// <returns>A list of MutateOperations that create new campaign criteria.</returns> private IEnumerable<MutateOperation> CreateCampaignCriterionOperations(long customerId, IEnumerable<KeywordThemeInfo> keywordThemeInfos, SmartCampaignSuggestionInfo suggestionInfo) { List<MutateOperation> mutateOperations = keywordThemeInfos.Select( keywordThemeInfo => new MutateOperation { CampaignCriterionOperation = new CampaignCriterionOperation { Create = new CampaignCriterion { // Set the campaign ID to a temporary ID. Campaign = ResourceNames.Campaign( customerId, SMART_CAMPAIGN_TEMPORARY_ID), // Set the keyword theme to each KeywordThemeInfo in turn. KeywordTheme = keywordThemeInfo, } } }).ToList(); // Create a location criterion for each location in the suggestion info. mutateOperations.AddRange( suggestionInfo.LocationList.Locations.Select( locationInfo => new MutateOperation() { CampaignCriterionOperation = new CampaignCriterionOperation() { Create = new CampaignCriterion() { // Set the campaign ID to a temporary ID. Campaign = ResourceNames.Campaign(customerId, SMART_CAMPAIGN_TEMPORARY_ID), // Set the location to the given location. Location = locationInfo } } }).ToList() ); return mutateOperations; }
PHP
private static function createCampaignCriterionOperations( int $customerId, array $keywordThemeInfos, SmartCampaignSuggestionInfo $smartCampaignSuggestionInfo ): array { $operations = []; foreach ($keywordThemeInfos as $info) { // Creates the campaign criterion object. $campaignCriterion = new CampaignCriterion([ // Sets the campaign ID to a temporary ID. 'campaign' => ResourceNames::forCampaign($customerId, self::SMART_CAMPAIGN_TEMPORARY_ID), // Sets the keyword theme to the given KeywordThemeInfo. 'keyword_theme' => $info ]); // Creates the MutateOperation that creates the campaign criterion and adds it to the // list of operations. $operations[] = new MutateOperation([ 'campaign_criterion_operation' => new CampaignCriterionOperation([ 'create' => $campaignCriterion ]) ]); } // Create a location criterion for each location in the suggestion info object to add // corresponding location targeting to the Smart campaign. foreach ($smartCampaignSuggestionInfo->getLocationList()->getLocations() as $location) { // Creates the campaign criterion object. $campaignCriterion = new CampaignCriterion([ // Sets the campaign ID to a temporary ID. 'campaign' => ResourceNames::forCampaign($customerId, self::SMART_CAMPAIGN_TEMPORARY_ID), // Set the location to the given location. 'location' => $location ]); // Creates the MutateOperation that creates the campaign criterion and adds it to the // list of operations. $operations[] = new MutateOperation([ 'campaign_criterion_operation' => new CampaignCriterionOperation([ 'create' => $campaignCriterion ]) ]); } return $operations; }
Python
def create_campaign_criterion_operations( client, customer_id, keyword_theme_infos, suggestion_info ): """Creates a list of MutateOperations that create new campaign criteria. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. keyword_theme_infos: a list of KeywordThemeInfos. suggestion_info: A SmartCampaignSuggestionInfo instance. Returns: a list of MutateOperations that create new campaign criteria. """ campaign_service = client.get_service("CampaignService") operations = [] for info in keyword_theme_infos: mutate_operation = client.get_type("MutateOperation") campaign_criterion = ( mutate_operation.campaign_criterion_operation.create ) # Set the campaign ID to a temporary ID. campaign_criterion.campaign = campaign_service.campaign_path( customer_id, _SMART_CAMPAIGN_TEMPORARY_ID ) # Set the keyword theme to the given KeywordThemeInfo. campaign_criterion.keyword_theme = info # Add the mutate operation to the list of other operations. operations.append(mutate_operation) # Create a location criterion for each location in the suggestion info # object to add corresponding location targeting to the Smart campaign for location_info in suggestion_info.location_list.locations: mutate_operation = client.get_type("MutateOperation") campaign_criterion = ( mutate_operation.campaign_criterion_operation.create ) # Set the campaign ID to a temporary ID. campaign_criterion.campaign = campaign_service.campaign_path( customer_id, _SMART_CAMPAIGN_TEMPORARY_ID ) # Set the location to the given location. campaign_criterion.location = location_info # Add the mutate operation to the list of other operations. operations.append(mutate_operation) return operations
Ruby
# Creates a list of mutate_operations that create new campaign criteria. def create_campaign_criterion_operations( client, customer_id, keyword_theme_infos, suggestion_info) operations = [] keyword_theme_infos.each do |info| operations << client.operation.mutate do |m| m.campaign_criterion_operation = client.operation.create_resource.campaign_criterion do |cc| # Sets the campaign ID to a temporary ID. cc.campaign = client.path.campaign( customer_id, SMART_CAMPAIGN_TEMPORARY_ID) # Sets the keyword theme to the given keyword_theme_info. cc.keyword_theme = info end end end # Create a location criterion for each location in the suggestion info object # to add corresponding location targeting to the Smart campaign suggestion_info.location_list.locations.each do |location| operations << client.operation.mutate do |m| m.campaign_criterion_operation = client.operation.create_resource.campaign_criterion do |cc| # Sets the campaign ID to a temporary ID. cc.campaign = client.path.campaign( customer_id, SMART_CAMPAIGN_TEMPORARY_ID) # Sets the location to the given location. cc.location = location end end end operations end
Perl
# Creates a list of MutateOperations that create new campaign criteria. sub _create_campaign_criterion_operations { my ($customer_id, $keyword_theme_infos, $suggestion_info) = @_; my $campaign_criterion_operations = []; foreach my $keyword_theme_info (@$keyword_theme_infos) { push @$campaign_criterion_operations, Google::Ads::GoogleAds::V16::Services::GoogleAdsService::MutateOperation ->new({ campaignCriterionOperation => Google::Ads::GoogleAds::V16::Services::CampaignCriterionService::CampaignCriterionOperation ->new({ create => Google::Ads::GoogleAds::V16::Resources::CampaignCriterion->new({ # Set the campaign ID to a temporary ID. campaign => Google::Ads::GoogleAds::V16::Utils::ResourceNames::campaign( $customer_id, SMART_CAMPAIGN_TEMPORARY_ID ), # Set the keyword theme to the given KeywordThemeInfo. keywordTheme => $keyword_theme_info })})}); } # Create a location criterion for each location in the suggestion info object # to add corresponding location targeting to the Smart campaign. foreach my $location_info (@{$suggestion_info->{locationList}{locations}}) { push @$campaign_criterion_operations, Google::Ads::GoogleAds::V16::Services::GoogleAdsService::MutateOperation ->new({ campaignCriterionOperation => Google::Ads::GoogleAds::V16::Services::CampaignCriterionService::CampaignCriterionOperation ->new({ create => Google::Ads::GoogleAds::V16::Resources::CampaignCriterion->new({ # Set the campaign ID to a temporary ID. campaign => Google::Ads::GoogleAds::V16::Utils::ResourceNames::campaign( $customer_id, SMART_CAMPAIGN_TEMPORARY_ID ), # Set the location to the given location. location => $location_info })})}); } return $campaign_criterion_operations; }
Critères de la campagne pour le thème de mot clé à exclure
Pour cibler par exclusion un critère de campagne utilisant un thème de mots clés dans une campagne intelligente, vous devez utiliser un thème de mot clé à forme libre en définissant le champ free_form_keyword_theme
sur une instance KeywordThemeInfo
.
Les critères des thèmes de mots clés à exclure se comportent différemment des critères de thèmes de mots clés à inclure. Alors qu'un critère de thème de mot clé à inclure est ajusté pour cibler automatiquement d'autres critères similaires, un critère de thème de mot clé à exclure est limité à un ciblage négatif uniquement sur le terme exact donné. Ce comportement équivaut à celui d'une expression exacte à exclure.