Crea aggiustamenti della stagionalità

Gli aggiustamenti della stagionalità sono uno strumento avanzato che può essere utilizzato per indicare a Smart Bidding le variazioni previste nei tassi di conversione per i prossimi eventi futuri. Per ulteriori dettagli su come funzionano gli aggiustamenti della stagionalità, consulta la pagina di assistenza sugli aggiustamenti della stagionalità.

Crea l'aggiustamento della stagionalità in modo programmatico utilizzando BiddingSeasonalityAdjustments.

Ambito

BiddingSeasonalityAdjustments hanno un elemento scope obbligatorio che può essere impostato sui seguenti valori. Vengono impostate ulteriori opzioni di configurazione specifiche in base all'ambito utilizzato.

  • CAMPAIGN: l'aggiustamento viene applicato a campagne specifiche. Imposta il campo campaigns su un elenco di nomi delle risorse della campagna a cui verrà applicato l'aggiustamento.
    • Il numero massimo di campagne per BiddingSeasonalityAdjustment è 2000.
  • CHANNEL: l'aggiustamento viene applicato alle campagne che appartengono a tipi di canali specifici. Imposta il campo advertising_channel_types su un elenco di AdvertisingChannelTypes a cui verrà applicato l'aggiustamento.

Dispositivi

Oltre al loro ambito, gli aggiustamenti della stagionalità possono essere configurati con un elenco facoltativo dei tipi di dispositivi a cui verrà applicato l'aggiustamento. Se viene impostato devices, l'aggiustamento della stagionalità verrà applicato solo al traffico proveniente dai tipi di dispositivi specificati. 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à include start_date_time, end_date_time e conversion_rate_modifier. La data e le ore definiscono l'intervallo futuro a cui si applica l'aggiustamento e il modificatore è il moltiplicatore del tasso di conversione previsto da applicare. Le date ore sono nel fuso orario dell'account.

Esempio

L'esempio seguente mostra come creare un aggiustamento della stagionalità con l'ambito CHANNEL. Le sezioni commentate mostrano come specificare le campagne se invece dovessi 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::V16::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::V16::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};