최소 요구사항이 충족되는지 확인: 디맨드젠 캠페인 확장 소재는 디스커버 및 YouTube와 같이 시각적인 엔터테인먼트 중심의 플랫폼에 게재되므로 매우 높은 품질 기준을 충족해야 합니다.
디맨드젠 캠페인을 만드는 단계는 다음과 같습니다.
- 예산을 책정합니다.
- 적절한 입찰 전략으로 디맨드젠 캠페인을 만듭니다.
- 유형이 없는 광고 그룹을 만듭니다.
- 잠재고객을 만듭니다.
- 애셋 및 디맨드젠 광고를 만듭니다.
예산 만들기
예산을 만듭니다. 디맨드젠 캠페인에서는 공유 예산을 사용할 수 없습니다. 일일 예산이 예상 타겟 CPA 입찰가의 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; } }
C#
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(); }
Python
# 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)
Ruby
# 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], )
Perl
# 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]});
캠페인 및 입찰 전략 만들기
예산이 생성되면 캠페인 만들기를 진행할 수 있습니다.
Google Ads API v17부터 디맨드젠 캠페인의 AdvertisingChannelType
는 DEMAND_GEN
입니다. AdvertisingChannelSubType
를 설정하면 안 됩니다.
캠페인에 전환 목표를 설정합니다.
지원되는 입찰 전략은 클릭수 최대화, 타겟 CPA, 전환수 최대화, 타겟 ROAS입니다.
광고그룹 만들기
유형이 없는 광고 그룹을 만들고 디스커버리 캠페인에 연결합니다.
잠재고객 만들기
AdGroupCriterion
를 사용하여 잠재고객을 만들고 연결합니다.
확장 소재 및 광고 만들기
디맨드젠 캠페인에는 다음과 같은 세 가지 유형의 광고를 사용할 수 있습니다.
먼저 이러한 광고 유형에 대한 애셋을 만듭니다. 디맨드젠 캠페인 확장 소재 사양 및 권장사항 가이드에서 각 디맨드젠 광고 유형에 사용할 수 있는 확장 소재 목록을 확인하세요. 이 가이드에서는 필요한 확장 소재와 권장 확장 소재 수를 안내합니다. 확장 소재 실적을 평가하여 광고 소재를 미세 조정하는 것도 좋습니다. 보고 섹션에서는 디맨드젠 캠페인의 실적 측정항목을 가져오는 방법을 설명합니다.
DemandGenCarouselAdInfo
에는 AdDemandGenCarouselCardAsset
라는 추가 전문 확장 소재가 있습니다.
확장 소재와 광고가 생성된 후 광고를 광고 그룹에 추가합니다.