季節性調整是一項進階工具,可用於 根據近期活動的預期轉換率變化出價。適用對象 如要進一步瞭解季節性調整的運作方式,請參閱季節性調整 調整項說明頁面。
使用以下方法,透過程式輔助方式建立季節性調整:
BiddingSeasonalityAdjustments
。
範圍
「BiddingSeasonalityAdjustments
」具有必要項目
scope
可設為
後續的值已設定其他範圍專屬的設定選項
取決於您使用的範圍
CAMPAIGN
- 調整項會套用至特定廣告活動。將campaigns
敬上 欄位加進廣告活動資源名稱清單, 將會套用調整。- 每個
BiddingSeasonalityAdjustment
最多可有 2,000 個廣告活動。
- 每個
CHANNEL
- 系統會將調整項套用至隸屬於特定廣告活動的廣告活動 頻道類型。將advertising_channel_types
敬上 欄位附加至AdvertisingChannelTypes
清單 將會套用調整。
裝置
除了範圍外,您也能使用
(選擇性) 要套用調整項的裝置類型清單。如果
devices
已設定完成,
季節性調整隻會套用至指定裝置的流量
。如未指定,系統會將所有裝置類型納入調整項。
日期、時間和轉換率調節係數
除了範圍和選用裝置以外,每項季節性調整還有
start_date_time
敬上
和 end_date_time
和
conversion_rate_modifier
。
日期和時間會定義要套用調整項的未來間隔,
,然後是套用的預期轉換率調節係數日期
時間以帳戶時區為準。
範例
下例顯示如何建立季節性調整
CHANNEL
範圍。將註解排除區段示範如何指定廣告活動,
改為設定 CAMPAIGN
範圍
Java
BiddingSeasonalityAdjustment seasonalityAdjustment = BiddingSeasonalityAdjustment.newBuilder() // A unique name is required for every seasonality adjustment. .setName("Seasonality adjustment #" + getPrintableDateTime()) // The CHANNEL scope applies the conversionRateModifier to all campaigns of specific // advertising channel types. In this example, the conversionRateModifier 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) // The conversionRateModifier is the expected future conversion rate change. When this // field is unset or set to 1.0, no adjustment will be applied to traffic. The allowed // range is 0.1 to 10.0. .setConversionRateModifier(conversionRateModifier) .build(); BiddingSeasonalityAdjustmentOperation operation = BiddingSeasonalityAdjustmentOperation.newBuilder() .setCreate(seasonalityAdjustment) .build(); MutateBiddingSeasonalityAdjustmentsResponse response = seasonalityAdjustmentServiceClient.mutateBiddingSeasonalityAdjustments( customerId.toString(), ImmutableList.of(operation)); System.out.printf( "Added seasonality adjustment with resource name: %s%n", response.getResults(0).getResourceName());
C#
BiddingSeasonalityAdjustment seasonalityAdjustment = new BiddingSeasonalityAdjustment() { // A unique name is required for every seasonality adjustment. Name = "Seasonality adjustment #" + ExampleUtilities.GetRandomString(), // The CHANNEL scope applies the conversionRateModifier to all campaigns of // specific advertising channel types. In this example, the // conversionRateModifier will only apply to Search campaigns. Use the // CAMPAIGN scope to instead limit the scope to specific campaigns. Scope = SeasonalityEventScope.Channel, AdvertisingChannelTypes = { 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" }, // The date range should be less than 14 days. StartDateTime = startDateTime, EndDateTime = endDateTime, // The conversionRateModifier is the expected future conversion rate change. // When this field is unset or set to 1.0, no adjustment will be applied to // traffic. The allowed range is 0.1 to 10.0. ConversionRateModifier = conversionRateModifier }; BiddingSeasonalityAdjustmentOperation operation = new BiddingSeasonalityAdjustmentOperation() { Create = seasonalityAdjustment }; try { MutateBiddingSeasonalityAdjustmentsResponse response = biddingSeasonalityAdjustmentService.MutateBiddingSeasonalityAdjustments( customerId.ToString(), new[] { operation }); Console.WriteLine($"Added seasonality adjustment 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 seasonality adjustment. $seasonalityAdjustment = new BiddingSeasonalityAdjustment([ // A unique name is required for every seasonality adjustment. 'name' => 'Seasonality adjustment #' . Helper::getPrintableDatetime(), // The CHANNEL scope applies the conversionRateModifier to all campaigns of specific // advertising channel types. In this example, the conversionRateModifier 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, // The conversionRateModifier is the expected future conversion rate change. When this // field is unset or set to 1.0, no adjustment will be applied to traffic. The allowed // range is 0.1 to 10.0. 'conversion_rate_modifier' => $conversionRateModifier ]); // Creates a bidding seasonality adjustment operation. $biddingSeasonalityAdjustmentOperation = new BiddingSeasonalityAdjustmentOperation(); $biddingSeasonalityAdjustmentOperation->setCreate($seasonalityAdjustment); // Submits the bidding seasonality adjustment operation to add the bidding seasonality // adjustment. $biddingSeasonalityAdjustmentServiceClient = $googleAdsClient->getBiddingSeasonalityAdjustmentServiceClient(); $response = $biddingSeasonalityAdjustmentServiceClient->mutateBiddingSeasonalityAdjustments( MutateBiddingSeasonalityAdjustmentsRequest::build( $customerId, [$biddingSeasonalityAdjustmentOperation] ) ); printf( "Added seasonality adjustment with resource name: '%s'.%s", $response->getResults()[0]->getResourceName(), PHP_EOL );
Python
bidding_seasonality_adjustment_service = client.get_service( "BiddingSeasonalityAdjustmentService" ) operation = client.get_type("BiddingSeasonalityAdjustmentOperation") bidding_seasonality_adjustment = operation.create # A unique name is required for every seasonality adjustment. bidding_seasonality_adjustment.name = f"Seasonality adjustment #{uuid4()}" # The CHANNEL scope applies the conversion_rate_modifier 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. bidding_seasonality_adjustment.scope = ( client.enums.SeasonalityEventScopeEnum.CHANNEL ) bidding_seasonality_adjustment.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_seasonality_adjustment.campaigns.append( # "INSERT_CAMPAIGN_RESOURCE_NAME_HERE" # ) bidding_seasonality_adjustment.start_date_time = start_date_time bidding_seasonality_adjustment.end_date_time = end_date_time # The conversion_rate_modifier is the expected future conversion rate # change. When this field is unset or set to 1.0, no adjustment will be # applied to traffic. The allowed range is 0.1 to 10.0. bidding_seasonality_adjustment.conversion_rate_modifier = ( conversion_rate_modifier ) response = bidding_seasonality_adjustment_service.mutate_bidding_seasonality_adjustments( customer_id=customer_id, operations=[operation] ) resource_name = response.results[0].resource_name print(f"Added seasonality adjustment with resource name: '{resource_name}'")
小茹
client = Google::Ads::GoogleAds::GoogleAdsClient.new operation = client.operation.create_resource.bidding_seasonality_adjustment do |bsa| # A unique name is required for every seasonality adjustment. bsa.name = "Seasonality Adjustment #{(Time.new.to_f * 1000).to_i}" # The CHANNEL scope applies the conversion_rate_modifier 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. bsa.scope = :CHANNEL bsa.advertising_channel_types << :SEARCH # If setting scope CAMPAIGN, add individual campaign resource name(s) # according to the commented out line below. # # bsa.campaigns << "INSERT_CAMPAIGN_RESOURCE_NAME_HERE" bsa.start_date_time = start_date_time bsa.end_date_time = end_date_time # The conversion_rate_modifier is the expected future conversion rate # change. When this field is unset or set to 1.0, no adjustment will be # applied to traffic. The allowed range is 0.1 to 10.0. bsa.conversion_rate_modifier = conversion_rate_modifier end response = client.service.bidding_seasonality_adjustment.mutate_bidding_seasonality_adjustments( customer_id: customer_id, operations: [operation], ) puts "Added seasonality adjustment with resource name #{response.results.first.resource_name}"
Perl
my $seasonality_adjustment = Google::Ads::GoogleAds::V17::Resources::BiddingSeasonalityAdjustment->new({ # A unique name is required for every seasonality adjustment. name => "Seasonality adjustment #" . uniqid(), # The CHANNEL scope applies the conversion_rate_modifier 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. 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, # The conversion_rate_modifier is the expected future conversion rate change. # When this field is unset or set to 1.0, no adjustment will be applied to traffic. # The allowed range is 0.1 to 10.0. conversionRateModifier => $conversion_rate_modifier }); my $operation = Google::Ads::GoogleAds::V17::Services::BiddingSeasonalityAdjustmentService::BiddingSeasonalityAdjustmentOperation ->new({ create => $seasonality_adjustment }); my $response = $api_client->BiddingSeasonalityAdjustmentService()->mutate({ customerId => $customer_id, operations => [$operation]}); printf "Added seasonality adjustment with resource name: '%s'.\n", $response->{results}[0]{resourceName};