Создайте кампанию по формированию спроса

Убедитесь, что соблюдены минимальные требования : ресурсы кампании по формированию спроса должны соответствовать очень высоким стандартам качества, поскольку они будут отображаться на очень визуальных, ориентированных на развлечения платформах, таких как Discover и YouTube.

Вот шаги по созданию кампании по формированию спроса:

  1. Создайте бюджет.
  2. Создайте кампанию по формированию спроса с соответствующими стратегиями назначения ставок.
  3. Создайте группу объявлений без типа.
  4. Создавайте аудитории.
  5. Создавайте активы и рекламу, создающую спрос.

Создать бюджет

Создайте бюджет . Обратите внимание, что кампания по формированию спроса не может использовать общий бюджет. Мы рекомендуем иметь достаточный дневной бюджет, чтобы он превышал ожидаемую целевую цену за конверсию как минимум в 15 раз. Узнать больше .

Ява

private static String addCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) {
  CampaignBudget budget =
      CampaignBudget.newBuilder()
          .setName("Interplanetary Cruise Budget #" + getPrintableDateTime())
          .setDeliveryMethod(BudgetDeliveryMethod.STANDARD)
          .setAmountMicros(500_000)
          .build();

  CampaignBudgetOperation op = CampaignBudgetOperation.newBuilder().setCreate(budget).build();

  try (CampaignBudgetServiceClient campaignBudgetServiceClient =
      googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) {
    MutateCampaignBudgetsResponse response =
        campaignBudgetServiceClient.mutateCampaignBudgets(
            Long.toString(customerId), ImmutableList.of(op));
    String budgetResourceName = response.getResults(0).getResourceName();
    System.out.printf("Added budget: %s%n", budgetResourceName);
    return budgetResourceName;
  }
}
      

С#

private static string CreateBudget(GoogleAdsClient client, long customerId)
{
    // Get the BudgetService.
    CampaignBudgetServiceClient budgetService = client.GetService(
        Services.V18.CampaignBudgetService);

    // Create the campaign budget.
    CampaignBudget budget = new CampaignBudget()
    {
        Name = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString(),
        DeliveryMethod = BudgetDeliveryMethod.Standard,
        AmountMicros = 500000
    };

    // Create the operation.
    CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation()
    {
        Create = budget
    };

    // Create the campaign budget.
    MutateCampaignBudgetsResponse response = budgetService.MutateCampaignBudgets(
        customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation });
    return response.Results[0].ResourceName;
}
      

PHP

private static function addCampaignBudget(GoogleAdsClient $googleAdsClient, int $customerId)
{
    // Creates a campaign budget.
    $budget = new CampaignBudget([
        'name' => 'Interplanetary Cruise Budget #' . Helper::getPrintableDatetime(),
        'delivery_method' => BudgetDeliveryMethod::STANDARD,
        'amount_micros' => 500000
    ]);

    // Creates a campaign budget operation.
    $campaignBudgetOperation = new CampaignBudgetOperation();
    $campaignBudgetOperation->setCreate($budget);

    // Issues a mutate request.
    $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient();
    $response = $campaignBudgetServiceClient->mutateCampaignBudgets(
        MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation])
    );

    /** @var CampaignBudget $addedBudget */
    $addedBudget = $response->getResults()[0];
    printf("Added budget named '%s'%s", $addedBudget->getResourceName(), PHP_EOL);

    return $addedBudget->getResourceName();
}
      

Питон

# Create a budget, which can be shared by multiple campaigns.
campaign_budget_operation = client.get_type("CampaignBudgetOperation")
campaign_budget = campaign_budget_operation.create
campaign_budget.name = f"Interplanetary Budget {uuid.uuid4()}"
campaign_budget.delivery_method = (
    client.enums.BudgetDeliveryMethodEnum.STANDARD
)
campaign_budget.amount_micros = 500000

# Add budget.
try:
    campaign_budget_response = (
        campaign_budget_service.mutate_campaign_budgets(
            customer_id=customer_id, operations=[campaign_budget_operation]
        )
    )
except GoogleAdsException as ex:
    handle_googleads_exception(ex)
      

Руби

# Create a budget, which can be shared by multiple campaigns.
campaign_budget = client.resource.campaign_budget do |cb|
  cb.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"
  cb.delivery_method = :STANDARD
  cb.amount_micros = 500000
end

operation = client.operation.create_resource.campaign_budget(campaign_budget)

# Add budget.
return_budget = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id: customer_id,
  operations: [operation],
)
      

Перл

# Create a campaign budget, which can be shared by multiple campaigns.
my $campaign_budget =
  Google::Ads::GoogleAds::V18::Resources::CampaignBudget->new({
    name           => "Interplanetary budget #" . uniqid(),
    deliveryMethod => STANDARD,
    amountMicros   => 500000
  });

# Create a campaign budget operation.
my $campaign_budget_operation =
  Google::Ads::GoogleAds::V18::Services::CampaignBudgetService::CampaignBudgetOperation
  ->new({create => $campaign_budget});

# Add the campaign budget.
my $campaign_budgets_response = $api_client->CampaignBudgetService()->mutate({
    customerId => $customer_id,
    operations => [$campaign_budget_operation]});
      

Создайте кампанию и стратегию назначения ставок.

После того, как бюджет создан, можно переходить к созданию кампании.

Начиная с версии 17 Google Ads API, кампании Demand Gener имеют тип AdvertisingChannelType , равный DEMAND_GEN . Не следует задавать AdvertisingChannelSubType .

Настройте цели конверсии для своей кампании.

Поддерживаемые стратегии назначения ставок : максимальное количество кликов, целевая цена за конверсию, максимальное количество конверсий и целевая рентабельность инвестиций в рекламу.

Создать группу объявлений

Создайте группу объявлений без типа и прикрепите ее к кампании Discovery.

Создание аудиторий

Создайте и прикрепите аудитории с помощью AdGroupCriterion .

Создавайте объекты и рекламу

Для кампаний по формированию спроса доступны три типа объявлений:

Сначала создайте объекты для этих типов объявлений. Ознакомьтесь со спецификациями ресурсов кампании по формированию спроса и руководством по передовому опыту, чтобы узнать список ресурсов, доступных для каждого типа объявлений, создающих спрос. В руководстве содержится информация о том, какие ресурсы необходимы и сколько ресурсов рекомендуется. Мы также рекомендуем оценивать эффективность активов для точной настройки креативов: в разделе отчетов рассказывается, как получить показатели эффективности для кампаний по формированию спроса.

DemandGenCarouselAdInfo имеет дополнительный специализированный актив под названием AdDemandGenCarouselCardAsset .

После создания объектов и объявлений добавьте их в группу объявлений.

,

Убедитесь, что соблюдены минимальные требования : ресурсы кампании по формированию спроса должны соответствовать очень высоким стандартам качества, поскольку они будут отображаться на очень визуальных, ориентированных на развлечения платформах, таких как Discover и YouTube.

Вот шаги по созданию кампании по формированию спроса:

  1. Создайте бюджет.
  2. Создайте кампанию по формированию спроса с соответствующими стратегиями назначения ставок.
  3. Создайте группу объявлений без типа.
  4. Создавайте аудитории.
  5. Создавайте активы и рекламу, создающую спрос.

Создать бюджет

Создайте бюджет . Обратите внимание, что кампания по формированию спроса не может использовать общий бюджет. Мы рекомендуем иметь достаточный дневной бюджет, чтобы он превышал ожидаемую целевую цену за конверсию как минимум в 15 раз. Узнать больше .

Ява

private static String addCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) {
  CampaignBudget budget =
      CampaignBudget.newBuilder()
          .setName("Interplanetary Cruise Budget #" + getPrintableDateTime())
          .setDeliveryMethod(BudgetDeliveryMethod.STANDARD)
          .setAmountMicros(500_000)
          .build();

  CampaignBudgetOperation op = CampaignBudgetOperation.newBuilder().setCreate(budget).build();

  try (CampaignBudgetServiceClient campaignBudgetServiceClient =
      googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) {
    MutateCampaignBudgetsResponse response =
        campaignBudgetServiceClient.mutateCampaignBudgets(
            Long.toString(customerId), ImmutableList.of(op));
    String budgetResourceName = response.getResults(0).getResourceName();
    System.out.printf("Added budget: %s%n", budgetResourceName);
    return budgetResourceName;
  }
}
      

С#

private static string CreateBudget(GoogleAdsClient client, long customerId)
{
    // Get the BudgetService.
    CampaignBudgetServiceClient budgetService = client.GetService(
        Services.V18.CampaignBudgetService);

    // Create the campaign budget.
    CampaignBudget budget = new CampaignBudget()
    {
        Name = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString(),
        DeliveryMethod = BudgetDeliveryMethod.Standard,
        AmountMicros = 500000
    };

    // Create the operation.
    CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation()
    {
        Create = budget
    };

    // Create the campaign budget.
    MutateCampaignBudgetsResponse response = budgetService.MutateCampaignBudgets(
        customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation });
    return response.Results[0].ResourceName;
}
      

PHP

private static function addCampaignBudget(GoogleAdsClient $googleAdsClient, int $customerId)
{
    // Creates a campaign budget.
    $budget = new CampaignBudget([
        'name' => 'Interplanetary Cruise Budget #' . Helper::getPrintableDatetime(),
        'delivery_method' => BudgetDeliveryMethod::STANDARD,
        'amount_micros' => 500000
    ]);

    // Creates a campaign budget operation.
    $campaignBudgetOperation = new CampaignBudgetOperation();
    $campaignBudgetOperation->setCreate($budget);

    // Issues a mutate request.
    $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient();
    $response = $campaignBudgetServiceClient->mutateCampaignBudgets(
        MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation])
    );

    /** @var CampaignBudget $addedBudget */
    $addedBudget = $response->getResults()[0];
    printf("Added budget named '%s'%s", $addedBudget->getResourceName(), PHP_EOL);

    return $addedBudget->getResourceName();
}
      

Питон

# Create a budget, which can be shared by multiple campaigns.
campaign_budget_operation = client.get_type("CampaignBudgetOperation")
campaign_budget = campaign_budget_operation.create
campaign_budget.name = f"Interplanetary Budget {uuid.uuid4()}"
campaign_budget.delivery_method = (
    client.enums.BudgetDeliveryMethodEnum.STANDARD
)
campaign_budget.amount_micros = 500000

# Add budget.
try:
    campaign_budget_response = (
        campaign_budget_service.mutate_campaign_budgets(
            customer_id=customer_id, operations=[campaign_budget_operation]
        )
    )
except GoogleAdsException as ex:
    handle_googleads_exception(ex)
      

Руби

# Create a budget, which can be shared by multiple campaigns.
campaign_budget = client.resource.campaign_budget do |cb|
  cb.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"
  cb.delivery_method = :STANDARD
  cb.amount_micros = 500000
end

operation = client.operation.create_resource.campaign_budget(campaign_budget)

# Add budget.
return_budget = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id: customer_id,
  operations: [operation],
)
      

Перл

# Create a campaign budget, which can be shared by multiple campaigns.
my $campaign_budget =
  Google::Ads::GoogleAds::V18::Resources::CampaignBudget->new({
    name           => "Interplanetary budget #" . uniqid(),
    deliveryMethod => STANDARD,
    amountMicros   => 500000
  });

# Create a campaign budget operation.
my $campaign_budget_operation =
  Google::Ads::GoogleAds::V18::Services::CampaignBudgetService::CampaignBudgetOperation
  ->new({create => $campaign_budget});

# Add the campaign budget.
my $campaign_budgets_response = $api_client->CampaignBudgetService()->mutate({
    customerId => $customer_id,
    operations => [$campaign_budget_operation]});
      

Создайте кампанию и стратегию назначения ставок.

После того, как бюджет создан, можно переходить к созданию кампании.

Начиная с версии 17 Google Ads API, кампании Demand Gener имеют тип AdvertisingChannelType , равный DEMAND_GEN . Не следует задавать AdvertisingChannelSubType .

Настройте цели конверсии для своей кампании.

Поддерживаемые стратегии назначения ставок : максимальное количество кликов, целевая цена за конверсию, максимальное количество конверсий и целевая рентабельность инвестиций в рекламу.

Создать группу объявлений

Создайте группу объявлений без типа и прикрепите ее к кампании Discovery.

Создание аудиторий

Создайте и прикрепите аудитории с помощью AdGroupCriterion .

Создавайте объекты и рекламу

Для кампаний по формированию спроса доступны три типа объявлений:

Сначала создайте объекты для этих типов объявлений. Ознакомьтесь со спецификациями ресурсов кампании по формированию спроса и руководством по передовому опыту, чтобы узнать список ресурсов, доступных для каждого типа объявлений, создающих спрос. В руководстве есть указания о том, какие ресурсы необходимы и сколько ресурсов рекомендуется. Мы также рекомендуем оценивать эффективность активов для точной настройки креативов: в разделе отчетов рассказывается, как получить показатели эффективности для кампаний по формированию спроса.

DemandGenCarouselAdInfo имеет дополнительный специализированный актив под названием AdDemandGenCarouselCardAsset .

После создания объектов и объявлений добавьте их в группу объявлений.