数据排除是一款高级工具,可用于告知智能出价忽略转化跟踪出现问题期间的所有数据。如需详细了解数据排除功能的工作原理,请参阅 数据排除帮助页面。
您可以使用
BiddingDataExclusions以编程方式创建数据排除项。您无法在经理账号中设置 BiddingDataExclusions,只能在广告系列级设置。
范围
BiddingDataExclusions 具有必需的
scope,可以设置为以下值。其他特定于范围的配置选项会根据所使用的范围进行设置。
CAMPAIGN- 排除项应用于特定广告系列。将campaigns字段设置为此 排除项将应用到的广告系列资源名称列表。- 每个
BiddingDataExclusion的广告系列数量上限为 2,000 个。
- 每个
CHANNEL- 排除项应用于属于特定 渠道类型的广告系列。将advertising_channel_types字段设置为此 排除项将应用到的AdvertisingChannelTypes列表。
设备
除了范围之外,您还可以为数据排除项配置一个可选的设备类型列表,以指定排除项将应用到的设备类型。如果设置了
devices,则只会排除指定设备类型的
转化数据。如果未指定,则会排除所有设备类型的转化数据。
日期和时间
除了范围和可选设备之外,每个数据排除项都必须具有开始日期和时间以及结束日期和时间。数据排除项是回顾性的,应适用于
start_date_time 位于
过去且 end_date_time
位于过去或将来的事件。时间采用账号的时区。
限制
在使用出价数据排除项时,请注意以下限制:
- 当范围设置为
CAMPAIGN时,单个BiddingDataExclusion最多可以应用于 2,000 个广告系列。 - 每个客户账号(包括经理账号和测试账号)在任何给定时间最多可以有 500 个有效出价数据排除项。超出此限制会导致
RESOURCE_LIMIT错误。
示例
以下示例展示了如何创建具有 CHANNEL 范围的数据排除项。
注释掉的部分展示了如何指定广告系列(如果您要改为设置 CAMPAIGN 范围)。
Java
BiddingDataExclusion DataExclusion = BiddingDataExclusion.newBuilder() // A unique name is required for every data exclusion. .setName("Data exclusion #" + getPrintableDateTime()) // The CHANNEL scope applies the data exclusion to all campaigns of specific // advertising channel types. In this example, the exclusion will only apply to // Search campaigns. Use the CAMPAIGN scope to instead limit the scope to specific // campaigns. .setScope(SeasonalityEventScope.CHANNEL) .addAdvertisingChannelTypes(AdvertisingChannelType.SEARCH) // If setting scope CAMPAIGN, add individual campaign resource name(s) according to // the commented out line below. // .addCampaigns("INSERT_CAMPAIGN_RESOURCE_NAME_HERE") .setStartDateTime(startDateTime) .setEndDateTime(endDateTime) .build(); BiddingDataExclusionOperation operation = BiddingDataExclusionOperation.newBuilder().setCreate(DataExclusion).build(); MutateBiddingDataExclusionsResponse response = DataExclusionServiceClient.mutateBiddingDataExclusions( customerId.toString(), ImmutableList.of(operation)); System.out.printf( "Added data exclusion with resource name: %s%n", response.getResults(0).getResourceName());
C#
BiddingDataExclusion dataExclusion = new BiddingDataExclusion() { // A unique name is required for every data exclusion. Name = "Data exclusion #" + ExampleUtilities.GetRandomString(), // The CHANNEL scope applies the data exclusion to all campaigns of specific // advertising channel types. In this example, the the exclusion will only apply to // Search campaigns. Use the CAMPAIGN scope to instead limit the scope to specific // campaigns. Scope = SeasonalityEventScope.Channel, AdvertisingChannelTypes = { AdvertisingChannelType.Search }, // The date range should be less than 14 days. StartDateTime = startDateTime, EndDateTime = endDateTime, }; BiddingDataExclusionOperation operation = new BiddingDataExclusionOperation() { Create = dataExclusion }; try { MutateBiddingDataExclusionsResponse response = biddingDataExclusionService.MutateBiddingDataExclusions( customerId.ToString(), new[] { operation }); Console.WriteLine($"Added data exclusion with resource name: " + $"{response.Results[0].ResourceName}"); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; }
PHP
// Creates a bidding data exclusion. $dataExclusion = new BiddingDataExclusion([ // A unique name is required for every data exclusion. 'name' => 'Data exclusion #' . Helper::getPrintableDatetime(), // The CHANNEL scope applies the data exclusion to all campaigns of specific // advertising channel types. In this example, the exclusion will only apply to // Search campaigns. Use the CAMPAIGN scope to instead limit the scope to specific // campaigns. 'scope' => SeasonalityEventScope::CHANNEL, 'advertising_channel_types' => [AdvertisingChannelType::SEARCH], // If setting scope CAMPAIGN, add individual campaign resource name(s) according to // the commented out line below. // 'campaigns' => ['INSERT_CAMPAIGN_RESOURCE_NAME_HERE'], 'start_date_time' => $startDateTime, 'end_date_time' => $endDateTime ]); // Creates a bidding data exclusion operation. $biddingDataExclusionOperation = new BiddingDataExclusionOperation(); $biddingDataExclusionOperation->setCreate($dataExclusion); // Submits the bidding data exclusion operation to add the bidding data exclusion. $biddingDataExclusionServiceClient = $googleAdsClient->getBiddingDataExclusionServiceClient(); $response = $biddingDataExclusionServiceClient->mutateBiddingDataExclusions( MutateBiddingDataExclusionsRequest::build($customerId, [$biddingDataExclusionOperation]) ); printf( "Added bidding data exclusion with resource name: '%s'.%s", $response->getResults()[0]->getResourceName(), PHP_EOL );
Python
bidding_data_exclusion_service: BiddingDataExclusionServiceClient = ( client.get_service("BiddingDataExclusionService") ) operation: BiddingDataExclusionOperation = client.get_type( "BiddingDataExclusionOperation" ) bidding_data_exclusion: BiddingDataExclusion = operation.create # A unique name is required for every data exclusion bidding_data_exclusion.name = f"Data exclusion #{uuid4()}" # The CHANNEL scope applies the data exclusion to all campaigns of specific # advertising channel types. In this example, the exclusion will only # apply to Search campaigns. Use the CAMPAIGN scope to instead limit the # scope to specific campaigns. bidding_data_exclusion.scope = ( client.enums.SeasonalityEventScopeEnum.CHANNEL ) bidding_data_exclusion.advertising_channel_types.append( client.enums.AdvertisingChannelTypeEnum.SEARCH ) # If setting scope CAMPAIGN, add individual campaign resource name(s) # according to the commented out line below. # # bidding_data_exclusion.campaigns.append( # "INSERT_CAMPAIGN_RESOURCE_NAME_HERE" # ) bidding_data_exclusion.start_date_time = start_date_time bidding_data_exclusion.end_date_time = end_date_time response: MutateBiddingDataExclusionsResponse = ( bidding_data_exclusion_service.mutate_bidding_data_exclusions( customer_id=customer_id, operations=[operation] ) ) resource_name: str = response.results[0].resource_name print(f"Added data exclusion with resource name: '{resource_name}'")
Ruby
client = Google::Ads::GoogleAds::GoogleAdsClient.new operation = client.operation.create_resource.bidding_data_exclusion do |bda| # A unique name is required for every data excluseion. bda.name = "Seasonality Adjustment #{(Time.new.to_f * 1000).to_i}" # The CHANNEL scope applies the data exclusion to all campaigns of specific # advertising channel types. In this example, the conversion_rate_modifier # will only apply to Search campaigns. Use the CAMPAIGN scope to instead # limit the scope to specific campaigns. bda.scope = :CHANNEL bda.advertising_channel_types << :SEARCH # If setting scope CAMPAIGN, add individual campaign resource name(s) # according to the commented out line below. # # bda.campaigns << "INSERT_CAMPAIGN_RESOURCE_NAME_HERE" bda.start_date_time = start_date_time bda.end_date_time = end_date_time end response = client.service.bidding_data_exclusion.mutate_bidding_data_exclusions( customer_id: customer_id, operations: [operation], ) puts "Added data exclusion with resource name #{response.results.first.resource_name}."
Perl
my $data_exclusion = Google::Ads::GoogleAds::V23::Resources::BiddingDataExclusion->new({ # A unique name is required for every data exclusion. name => "Data exclusion #" . uniqid(), # The CHANNEL scope applies the data exclusion to all campaigns of specific # advertising channel types. In this example, the exclusion will only apply # to Search campaigns. Use the CAMPAIGN scope to instead limit the scope to # specific campaigns. scope => CHANNEL, advertisingChannelTypes => [SEARCH], # If setting scope CAMPAIGN, add individual campaign resource name(s) # according to the commented out line below. # campaigns => ["INSERT_CAMPAIGN_RESOURCE_NAME_HERE"], startDateTime => $start_date_time, endDateTime => $end_date_time }); my $operation = Google::Ads::GoogleAds::V23::Services::BiddingDataExclusionService::BiddingDataExclusionOperation ->new({ create => $data_exclusion }); my $response = $api_client->BiddingDataExclusionService()->mutate({ customerId => $customer_id, operations => [$operation]}); printf "Added data exclusion with resource name: '%s'.\n", $response->{results}[0]{resourceName};