W artykule Jak uzyskać sugestie pokazaliśmy
jak pobrać zestaw obiektów
KeywordThemeConstant za pomocą
słowa lub wyrażenia. W tym kroku używamy tych samych stałych grup tematycznych słów kluczowych, aby
utworzyć zestaw obiektów CampaignCriterion
do kierowania w kampanii inteligentnej.
Podobnie jak w przypadku tworzenia budżetu, gdy korzystaliśmy z kwoty budżetu sugerowanej przez
SmartCampaignSuggestService gdy tworzyliśmy
budżet, zalecamy tworzenie
kryteriów kampanii na podstawie stałych grup tematycznych słów kluczowych pobranych z
KeywordThemeConstantService w
Jak uzyskać sugestie.
Oto najważniejsze wymagania dotyczące kryteriów kampanii inteligentnej:
Kampanie inteligentne obsługują tylko te typy kryteriów:
W przypadku kierowania na lokalizację, jeśli lokalizacja nie zostanie określona, kierowanie domyślnie będzie obejmować wszystkie regiony.
Z kampanią inteligentną można powiązać wiele
locationkryteriów, ale można użyć tylko 1proximitykryterium.Nie można używać jednocześnie kierowania na
locationiproximity.
W poniższym przykładzie stałe grupy tematyczne słów kluczowych zostały przekonwertowane na
KeywordThemeInfo obiekty przez ustawienie ich
nazwy zasobu w polu
KeywordThemeInfo.keyword_theme_constant. Pole campaign ustawiamy za pomocą tymczasowej nazwy zasobu ustawionej w kampanii w poprzednim kroku.
Java
/** * Creates {@link com.google.ads.googleads.v25.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: GoogleAdsClient, customer_id: str, keyword_theme_infos: List[KeywordThemeInfo], suggestion_info: SmartCampaignSuggestionInfo, ) -> List[MutateOperation]: """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: CampaignServiceClient = client.get_service( "CampaignService" ) operations: List[MutateOperation] = [] info: KeywordThemeInfo for info in keyword_theme_infos: mutate_operation: MutateOperation = client.get_type("MutateOperation") campaign_criterion_operation: CampaignCriterionOperation = ( mutate_operation.campaign_criterion_operation ) campaign_criterion: CampaignCriterion = ( 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.CopyFrom(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 location_info: LocationInfo for location_info in suggestion_info.location_list.locations: mutate_operation: MutateOperation = client.get_type("MutateOperation") campaign_criterion_operation: CampaignCriterionOperation = ( mutate_operation.campaign_criterion_operation ) campaign_criterion: CampaignCriterion = ( 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.CopyFrom(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::V25::Services::GoogleAdsService::MutateOperation ->new({ campaignCriterionOperation => Google::Ads::GoogleAds::V25::Services::CampaignCriterionService::CampaignCriterionOperation ->new({ create => Google::Ads::GoogleAds::V25::Resources::CampaignCriterion->new({ # Set the campaign ID to a temporary ID. campaign => Google::Ads::GoogleAds::V25::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::V25::Services::GoogleAdsService::MutateOperation ->new({ campaignCriterionOperation => Google::Ads::GoogleAds::V25::Services::CampaignCriterionService::CampaignCriterionOperation ->new({ create => Google::Ads::GoogleAds::V25::Resources::CampaignCriterion->new({ # Set the campaign ID to a temporary ID. campaign => Google::Ads::GoogleAds::V25::Utils::ResourceNames::campaign( $customer_id, SMART_CAMPAIGN_TEMPORARY_ID ), # Set the location to the given location. location => $location_info })})}); } return $campaign_criterion_operations; }
curl
Kryteria kampanii dotyczące grup tematycznych wykluczających słów kluczowych
Aby wykluczyć kryterium kampanii dotyczące grupy tematycznej słów kluczowych w kampanii inteligentnej, musisz użyć grupy tematycznej słów kluczowych w postaci swobodnej, ustawiając pole free_form_keyword_theme w instancji KeywordThemeInfo.
Kryteria dotyczące grup tematycznych wykluczających słów kluczowych działają inaczej niż kryteria dotyczące grup tematycznych niewykluczających słów kluczowych. Kryterium dotyczące grupy tematycznej niewykluczających słów kluczowych jest automatycznie dostosowywane do kierowania na inne podobne kryteria, natomiast kryterium dotyczące grupy tematycznej wykluczających słów kluczowych jest ograniczone do wykluczania tylko dokładnie podanego terminu. Działanie jest takie samo jak w przypadku wykluczającego słowa kluczowego w dopasowaniu do wyrażenia .