ایجاد تنظیمات فصلی

تنظیمات فصلی ابزاری پیشرفته است که می‌تواند برای اطلاع‌رسانی به Smart Bidding از تغییرات مورد انتظار در نرخ تبدیل برای رویدادهای آینده مورد استفاده قرار گیرد. برای جزئیات بیشتر در مورد نحوه عملکرد تنظیمات فصلی، به صفحه راهنمای تنظیمات فصلی مراجعه کنید.

با استفاده از BiddingSeasonalityAdjustments ، تنظیمات فصلی را به صورت برنامه‌نویسی شده ایجاد کنید.

محدوده

تنظیمات BiddingSeasonalityAdjustments دارای یک scope الزامی هستند که می‌توان آن را روی مقادیر زیر تنظیم کرد. گزینه‌های پیکربندی اضافی مختص محدوده، بر اساس محدوده مورد استفاده تنظیم می‌شوند.

  • CAMPAIGN - این تنظیم برای کمپین‌های خاصی اعمال می‌شود. فیلد campaigns را روی فهرستی از نام‌های منابع کمپین که این تنظیم برای آنها اعمال خواهد شد، تنظیم کنید.
    • حداکثر تعداد کمپین‌ها به ازای هر BiddingSeasonalityAdjustment ، ۲۰۰۰ است.
  • CHANNEL - این تنظیم برای کمپین‌هایی که به انواع کانال‌های خاصی تعلق دارند اعمال می‌شود. فیلد advertising_channel_types را روی لیستی از AdvertisingChannelTypes که این تنظیم برای آنها اعمال خواهد شد، تنظیم کنید.

دستگاه‌ها

علاوه بر دامنه آنها، تنظیمات فصلی را می‌توان با یک لیست اختیاری از انواع دستگاه‌هایی که این تنظیم روی آنها اعمال می‌شود، پیکربندی کرد. اگر devices تنظیم شوند، تنظیم فصلی فقط روی ترافیک از انواع دستگاه‌های مشخص شده اعمال می‌شود. در صورت عدم تعیین، همه انواع دستگاه‌ها در این تنظیم گنجانده می‌شوند.

تاریخ‌ها، زمان‌ها و اصلاح‌کننده نرخ تبدیل

گذشته از محدوده و دستگاه‌های اختیاری، هر تنظیم فصلی دارای start_date_time و end_date_time و یک conversion_rate_modifier است. تاریخ و زمان، بازه زمانی آینده‌ای را که تنظیم در آن اعمال می‌شود، تعریف می‌کنند و اصلاح‌کننده، ضریب نرخ تبدیل مورد انتظار برای اعمال است. تاریخ‌ها و زمان‌ها در منطقه زمانی حساب هستند.

مثال

مثال زیر نحوه ایجاد تنظیم فصلی با دامنه CHANNEL را نشان می‌دهد. بخش‌های کامنت‌گذاری شده نحوه مشخص کردن کمپین‌ها را در صورت تنظیم دامنه CAMPAIGN نشان می‌دهند.

جاوا

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());
      

سی شارپ

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;
}
      

پی اچ پی

// 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
);
      

پایتون

bidding_seasonality_adjustment_service: (
    BiddingSeasonalityAdjustmentServiceClient
) = client.get_service("BiddingSeasonalityAdjustmentService")
operation: BiddingSeasonalityAdjustmentOperation = client.get_type(
    "BiddingSeasonalityAdjustmentOperation"
)
bidding_seasonality_adjustment: BiddingSeasonalityAdjustment = (
    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: MutateBiddingSeasonalityAdjustmentsResponse = (
    bidding_seasonality_adjustment_service.mutate_bidding_seasonality_adjustments(
        customer_id=customer_id, operations=[operation]
    )
)

resource_name: str = 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}"
      

پرل

my $seasonality_adjustment =
  Google::Ads::GoogleAds::V22::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::V22::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};