افزایش تقاضا

پویش‌های «تولید تقاضا» به شما امکان می‌دهد داستان نمانامتان را با افراد در سراسر سطوح دیداری Google هم‌رسانی کنید: YouTube (شامل «کوته‌ویدیوها»)، «کاوش»، Gmail،‏ Google Maps، و «شبکه تبلیغات Google». «تولید تقاضا» ازطریق چندین نقطه تماس به مشتریان دسترسی پیدا می‌کند و از «هوش مصنوعی Google» برای ارائه طرح‌های آگهی به مخاطبان مرتبط و بهینه‌سازی پیشنهاد قیمت در سراسر قیف استفاده می‌کند، درحالی‌که کنترل کامل دارایی‌ها و جای آگهی‌های پویش را به شما می‌دهد.

منابع کلیدی میانای برنامه‌سازی کاربردی

هنگام مدیریت پویش‌های «تولید تقاضا» در Google Ads API، با منابع و تنظیمات زیر کار می‌کنید:

منبع اصلی فیلدها و تنظیمات کلیدی «تولید تقاضا»
CampaignBudget ‫explicitly_shared = false؛ از بودجه‌های کل سفارشی (total_amount_micros با period = CUSTOM_PERIOD) یا روزانه (amount_micros) پشتیبانی می‌کند.
Campaign ‫advertising_channel_type = DEMAND_GEN؛ راهبرد پیشنهاد قیمت (maximize_conversions، maximize_conversion_value، target_cpa، target_roas، target_spend، یا target_cpc)؛ shopping_setting اختیاری برای فیدهای محصول.
AdGroup audience_setting.use_audience_grouped؛ demand_gen_ad_group_settings.channel_controls (YouTube، «کاوش»، Gmail،‏ Maps، «شبکه تبلیغاتی»).
AdGroupCriterion audience (AudienceInfo)، location، language، و listing_group ( ListingGroupInfo).
AdGroupAd و Asset ‫ad.demand_gen_multi_asset_ad، ad.demand_gen_carousel_ad، ad.demand_gen_video_responsive_ad، یا ad.demand_gen_product_ad.

ساختن پویش «تولید تقاضا»

توصیه می‌کنیم بودجه، پویش، گروه آگهی، دارایی‌ها، و آگهی «تولید تقاضا» را به‌صورت اتمی در یک درخواست GoogleAdsService.Mutate بسازید بااستفاده از شناسه‌های منبع موقت منفی تا منابع وابسته بتوانند به یکدیگر ارجاع دهند:

جاوا

// The below methods create and return MutateOperations that we later provide to
// the GoogleAdsService.Mutate method in order to create the entities in a single
// request. Since the entities for a Demand Gen campaign are closely tied to one-another
// it's considered a best practice to create them in a single Mutate request; the
// entities will either all complete successfully or fail entirely, leaving no
// orphaned entities. See:
// https://developers.google.com/google-ads/api/docs/mutating/overview
List<MutateOperation> operations = new ArrayList<>();
// A utility to create temporary IDs for the resources.
AtomicLong tempId = new AtomicLong(-1);

// Creates a new campaign budget operation and adds it to the list of operations.
String budgetResourceName = ResourceNames.campaignBudget(customerId, tempId.getAndDecrement());
operations.add(
    MutateOperation.newBuilder()
        .setCampaignBudgetOperation(createCampaignBudgetOperation(budgetResourceName))
        .build());

// Creates a new campaign operation and adds it to the list of operations.
String campaignResourceName = ResourceNames.campaign(customerId, tempId.getAndDecrement());
operations.add(
    MutateOperation.newBuilder()
        .setCampaignOperation(
            createDemandGenCampaignOperation(campaignResourceName, budgetResourceName))
        .build());

// Creates a new ad group operation and adds it to the list of operations.
String adGroupResourceName = ResourceNames.adGroup(customerId, tempId.getAndDecrement());
operations.add(
    MutateOperation.newBuilder()
        .setAdGroupOperation(
            createDemandGenAdGroupOperation(adGroupResourceName, campaignResourceName))
        .build());

// Creates the asset operations for the ad.
Map<String, String> assetResourceNames = new HashMap<>();
operations.addAll(
    createAssetOperations(customerId, youTubeVideoId, tempId, assetResourceNames));

// Creates a new ad group ad operation and adds it to the list of operations.
operations.add(
    MutateOperation.newBuilder()
        .setAdGroupAdOperation(
            createDemandGenAdGroupAdOperation(adGroupResourceName, assetResourceNames))
        .build());

// Creates the service client.
try (GoogleAdsServiceClient googleAdsServiceClient =
    googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {
  // Sends the mutate request.
  MutateGoogleAdsResponse response =
      googleAdsServiceClient.mutate(String.valueOf(customerId), operations);

  // Prints the results.
  System.out.printf(
      "Created campaign with resource name: %s%n",
      response
          .getMutateOperationResponses(1)
          .getCampaignResult()
          .getResourceName());
  System.out.printf(
      "Created ad group with resource name: %s%n",
      response
          .getMutateOperationResponses(2)
          .getAdGroupResult()
          .getResourceName());
  for (Map.Entry<String, String> entry : assetResourceNames.entrySet()) {
    System.out.printf(
        "Created asset with temporary resource name '%s' and final resource name '%s'.%n",
        entry.getValue(),
        response
            .getMutateOperationResponses(
                operations.indexOf(getOperationForAsset(operations, entry.getValue())))
            .getAssetResult()
            .getResourceName());
  }
  System.out.printf(
      "Created ad group ad with resource name: %s%n",
      response
          .getMutateOperationResponses(operations.size() - 1)
          .getAdGroupAdResult()
          .getResourceName());
}
      

C#‎

// The below methods create and return MutateOperations that we later provide to
// the GoogleAdsService.Mutate method in order to create the entities in a single
// request. Since the entities for a Demand Gen campaign are closely tied to one-another
// it's considered a best practice to create them in a single Mutate request; the
// entities will either all complete successfully or fail entirely, leaving no
// orphaned entities. See:
// https://developers.google.com/google-ads/api/docs/mutating/overview
MutateOperation campaignBudgetOperation =
    CreateCampaignBudgetOperation(budgetResourceName);
MutateOperation campaignOperation =
    CreateDemandGenCampaignOperation(campaignResourceName, budgetResourceName);
MutateOperation adGroupOperation =
    CreateAdGroupOperation(adGroupResourceName, campaignResourceName);

// Send the operations in a single mutate request.
MutateGoogleAdsRequest mutateGoogleAdsRequest = new MutateGoogleAdsRequest
{
    CustomerId = customerId.ToString()
};
// It's important to create these entities in this order because they depend on
// each other, for example the ad group depends on the
// campaign, and the ad group ad depends on the ad group.
mutateGoogleAdsRequest.MutateOperations.Add(campaignBudgetOperation);
mutateGoogleAdsRequest.MutateOperations.Add(campaignOperation);
mutateGoogleAdsRequest.MutateOperations.Add(adGroupOperation);

mutateGoogleAdsRequest.MutateOperations.AddRange(
    CreateAssetOperations(
        videoAssetResourceName,
        videoId,
        logoResourceName,
        client.Config
    )
);

mutateGoogleAdsRequest.MutateOperations.Add(
    CreateDemandGenAdOperation(
        adGroupResourceName,
        videoAssetResourceName,
        logoResourceName
    )
);

MutateGoogleAdsResponse response =
        googleAdsServiceClient.Mutate(mutateGoogleAdsRequest);
      

PHP

This example is not yet available in PHP; you can take a look at the other languages.
    

Python

# The below methods create and return MutateOperations that we later provide
# to the GoogleAdsService.Mutate method in order to create the entities in a
# single request. Since the entities for a Demand Gen campaign are closely
# tied to one-another it's considered a best practice to create them in a
# single Mutate request; the entities will either all complete successfully
# or fail entirely, leaving no orphaned entities. See:
# https://developers.google.com/google-ads/api/docs/mutating/overview
mutate_operations: List[MutateOperation] = [
    # It's important to create these entities in this order because they
    # depend on each other, for example the ad group depends on the
    # campaign, and the ad group ad depends on the ad group.
    create_campaign_budget_operation(client, budget_resource_name),
    create_demand_gen_campaign_operation(
        client, campaign_resource_name, budget_resource_name
    ),
    create_ad_group_operation(
        client, ad_group_resource_name, campaign_resource_name
    ),
    *create_asset_operations(  # Use iterable unpacking
        client,
        video_asset_resource_name,
        video_id,
        logo_asset_resource_name,
    ),
    create_demand_gen_ad_operation(
        client,
        ad_group_resource_name,
        video_asset_resource_name,
        logo_asset_resource_name,
    ),
]

# Send the operations in a single mutate request.
googleads_service.mutate(
    customer_id=customer_id, mutate_operations=mutate_operations
)
      

Ruby

operations = []

operations << client.operation.mutate do |m|
  m.campaign_budget_operation = create_campaign_budget_operation(client, budget_resource_name)
end

operations << client.operation.mutate do |m|
  m.campaign_operation = create_demand_gen_campaign_operation(client, campaign_resource_name, budget_resource_name)
end

operations << client.operation.mutate do |m|
  m.ad_group_operation = create_ad_group_operation(client, ad_group_resource_name, campaign_resource_name)
end

operations += create_asset_operations(client, video_asset_resource_name, video_id, logo_asset_resource_name).map do |asset_op|
  client.operation.mutate do |m|
    m.asset_operation = asset_op
  end
end

operations << client.operation.mutate do |m|
  m.ad_group_ad_operation = create_demand_gen_ad_operation(client, ad_group_resource_name, video_asset_resource_name, logo_asset_resource_name)
end

response = client.service.google_ads.mutate(
  customer_id: customer_id,
  mutate_operations: operations,
)
      

پرل

This example is not yet available in Perl; you can take a look at the other languages.
    

curl

برای دستورالعمل‌های گام‌به‌گام درباره بودجه‌ها، استراتژی‌های پیشنهاد قیمت، و قالب‌های آگهی، ایجاد پویش «تولید تقاضا» را ببینید.

کمپین‌های «تولید تقاضا» پُرسمان

از GoogleAdsService.SearchStream برای بازیابی مشخصه‌های پویش «تولید تقاضا» و سنجه‌های عملکرد بخش‌بندی‌شده براساس شبکه و سطح YouTube استفاده کنید (segments.ad_network_type و segments.ad_sub_network_type باید باهم انتخاب شوند):

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  campaign.bidding_strategy_type,
  segments.ad_network_type,
  segments.ad_sub_network_type,
  metrics.impressions,
  metrics.clicks,
  metrics.conversions,
  metrics.cost_micros
FROM campaign
WHERE campaign.advertising_channel_type = DEMAND_GEN
  AND segments.date DURING LAST_30_DAYS

برای پُرسمان‌های تفکیک در سطح آگهی، سطح دارایی، و تبدیل، به گزارش‌دهی «تولید تقاضا» مراجعه کنید.

مراحل بعدی