زيادة الطلب

تتيح لك حملات زيادة الطلب مشاركة قصة علامتك التجارية مع المستخدمين على مساحات العرض المرئية من Google، وهي YouTube (بما في ذلك Shorts) و"اقتراحات" وGmail و"خرائط Google" و"شبكة Google الإعلانية". تصل "حملات زيادة الطلب" إلى العملاء عبر نقاط اتصال متعددة وتستخدم ذكاء Google الاصطناعي لعرض تصاميم الإعلانات على شرائح الجمهور ذات الصلة وتحسين عروض الأسعار على مستوى مسار التسويق، مع منحك التحكّم الكامل في مواد عرض حملتك ومواضع إعلاناتك.

المراجع الرئيسية لواجهة برمجة التطبيقات

عند إدارة "حملات زيادة الطلب" في Google Ads API، يمكنك استخدام الموارد والإعدادات التالية:

المصدر الأساسي الحقول والإعدادات الرئيسية في "حملات زيادة الطلب"
CampaignBudget ‫explicitly_shared = false: تتيح هذه السمة استخدام الميزانيات اليومية (amount_micros) أو الميزانيات الإجمالية المخصّصة (total_amount_micros مع period = CUSTOM_PERIOD).
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 و"خرائط Google" والشبكة الإعلانية).
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,
)
      

Perl

# 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
my $campaign_budget_operation =
  create_campaign_budget_operation($budget_resource_name);
my $campaign_operation =
  create_demand_gen_campaign_operation($campaign_resource_name,
  $budget_resource_name);
my $ad_group_operation =
  create_ad_group_operation($ad_group_resource_name, $campaign_resource_name);
my $asset_operations =
  create_asset_operations($video_asset_resource_name, $video_id,
  $logo_resource_name);
my $demand_gen_ad_operation =
  create_demand_gen_ad_operation($ad_group_resource_name,
  $video_asset_resource_name, $logo_resource_name);

# Send the operations in a single mutate request.
my $response = $api_client->GoogleAdsService()->mutate({
    customerId       => $customer_id,
    mutateOperations => [(
        $campaign_budget_operation, $campaign_operation,
        $ad_group_operation,        @$asset_operations,
        $demand_gen_ad_operation
      )]});
      

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

للاطّلاع على طلبات البحث عن تفاصيل الإحالات الناجحة ومواد العرض والإعلانات، يُرجى مراجعة تقارير "حملات زيادة الطلب".

الخطوات التالية