Gli aggiustamenti della stagionalità sono uno strumento avanzato che consente di adattare Offerte basate sulle variazioni previste dei tassi di conversione per eventi futuri futuri. Per per saperne di più su come funzionano gli aggiustamenti della stagionalità, consulta la stagionalità pagina di assistenza relativa agli aggiustamenti.
Crea in modo programmatico l'aggiustamento della stagionalità utilizzando
BiddingSeasonalityAdjustments
Ambito
BiddingSeasonalityAdjustments
hanno un campo obbligatorio
scope
che può essere impostato su
i valori seguenti. Sono state impostate ulteriori opzioni di configurazione specifiche per l'ambito
in base all'ambito utilizzato.
CAMPAIGN
: l'aggiustamento viene applicato a campagne specifiche. Imposta il parametrocampaigns
a un elenco di nomi di risorse campagna a cui verrà applicato l'aggiustamento.- Il numero massimo di campagne per
BiddingSeasonalityAdjustment
è 2000.
- Il numero massimo di campagne per
CHANNEL
- L'aggiustamento viene applicato alle campagne che appartengono a specifiche tipi di canali. Imposta il parametroadvertising_channel_types
in un elenco diAdvertisingChannelTypes
a cui verrà applicato l'aggiustamento.
Dispositivi
Oltre al loro ambito, gli aggiustamenti della stagionalità possono essere configurati con una
elenco facoltativo di tipi di dispositivi a cui verrà applicato l'aggiustamento. Se
devices
è impostato, il parametro
l'aggiustamento della stagionalità verrà applicato solo al traffico proveniente dal dispositivo specificato
di testo. Se non specificato, tutti i tipi di dispositivi sono inclusi nell'aggiustamento.
Date, ore e modificatore del tasso di conversione
A parte l'ambito e i dispositivi facoltativi, ogni aggiustamento della stagionalità ha
start_date_time
e end_date_time
e un
conversion_rate_modifier
La data e l'ora definiscono l'intervallo futuro a cui si applica l'aggiustamento,
e il modificatore è il moltiplicatore del tasso di conversione previsto. Data
orari sono nel fuso orario dell'account.
Esempio
L'esempio seguente mostra come creare un aggiustamento della stagionalità con
CHANNEL
ambito. Le sezioni con commenti indicano come specificare le campagne se
dovevi invece impostare un ambito 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}'")
Ruby
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};