Trong bài viết Nhận đề xuất, chúng tôi đã trình bày
cách truy xuất một tập hợp các
KeywordThemeConstant đối tượng bằng một
từ hoặc cụm từ. Trong bước này, chúng tôi sử dụng các hằng số chủ đề từ khoá đó để
tạo một tập hợp các đối tượng CampaignCriterion
cho chiến dịch Thông minh nhắm mục tiêu.
Tương tự như cách chúng tôi sử dụng số tiền ngân sách do
SmartCampaignSuggestService đề xuất khi tạo
ngân sách, bạn nên tạo
tiêu chí chiến dịch dựa trên các hằng số chủ đề từ khoá được truy xuất từ
KeywordThemeConstantService trong
bài viết Nhận đề xuất.
Dưới đây là các yêu cầu chính đối với tiêu chí chiến dịch Thông minh:
Chiến dịch Thông minh chỉ hỗ trợ các loại tiêu chí sau:
Đối với tiêu chí nhắm mục tiêu theo vị trí, nếu vị trí không được chỉ định, thì tiêu chí nhắm mục tiêu sẽ mặc định bao gồm tất cả các khu vực.
Bạn có thể liên kết nhiều tiêu chí
locationvới một chiến dịch Thông minh, nhưng chỉ có thể sử dụng một tiêu chíproximity.Bạn không thể sử dụng cả tiêu chí nhắm mục tiêu
locationvàproximity.
Trong ví dụ sau, các hằng số chủ đề từ khoá đã được chuyển đổi thành
KeywordThemeInfo đối tượng bằng cách đặt tên tài nguyên của các hằng số đó vào trường
KeywordThemeInfo.keyword_theme_constant. Chúng tôi đặt trường campaign bằng tên tài nguyên tạm thời được đặt trên chiến dịch trong bước trước.
Java
/** * Creates {@link com.google.ads.googleads.v24.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::V24::Services::GoogleAdsService::MutateOperation ->new({ campaignCriterionOperation => Google::Ads::GoogleAds::V24::Services::CampaignCriterionService::CampaignCriterionOperation ->new({ create => Google::Ads::GoogleAds::V24::Resources::CampaignCriterion->new({ # Set the campaign ID to a temporary ID. campaign => Google::Ads::GoogleAds::V24::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::V24::Services::GoogleAdsService::MutateOperation ->new({ campaignCriterionOperation => Google::Ads::GoogleAds::V24::Services::CampaignCriterionService::CampaignCriterionOperation ->new({ create => Google::Ads::GoogleAds::V24::Resources::CampaignCriterion->new({ # Set the campaign ID to a temporary ID. campaign => Google::Ads::GoogleAds::V24::Utils::ResourceNames::campaign( $customer_id, SMART_CAMPAIGN_TEMPORARY_ID ), # Set the location to the given location. location => $location_info })})}); } return $campaign_criterion_operations; }
curl
Tiêu chí chiến dịch chủ đề từ khoá phủ định
Để nhắm mục tiêu phủ định đến một tiêu chí chiến dịch chủ đề từ khoá trong chiến dịch Thông minh, bạn
phải sử dụng một
chủ đề từ khoá dạng tự do
bằng cách đặt trường
free_form_keyword_theme
trên một
KeywordThemeInfo thực thể.
Tiêu chí chủ đề từ khoá phủ định hoạt động khác với tiêu chí chủ đề từ khoá khẳng định. Trong khi tiêu chí chủ đề từ khoá khẳng định được điều chỉnh để tự động nhắm mục tiêu đến các tiêu chí tương tự khác, thì tiêu chí chủ đề từ khoá phủ định chỉ được phép nhắm mục tiêu phủ định đến chính xác cụm từ đã cho. Hành vi này tương đương với cách hoạt động của từ khoá khớp cụm từ phủ định.