ডিমান্ড জেনারেশন ক্যাম্পেন আপনাকে Google-এর ভিজ্যুয়াল সারফেস জুড়ে লোকজনের সাথে আপনার ব্র্যান্ডের গল্প শেয়ার করতে দেয়: YouTube (Shorts সহ), Discover, Gmail, Google Maps এবং Google Display Network। ডিমান্ড জেনারেশন একাধিক টাচপয়েন্ট জুড়ে গ্রাহকদের কাছে পৌঁছায় এবং প্রাসঙ্গিক দর্শকদের ক্রিয়েটিভ দেখাতে ও ফানেল জুড়ে বিডিং অপ্টিমাইজ করতে Google AI ব্যবহার করে, পাশাপাশি আপনার ক্যাম্পেন অ্যাসেট ও প্লেসমেন্টের উপর আপনাকে সম্পূর্ণ নিয়ন্ত্রণ দেয়।
মূল API রিসোর্স
Google Ads API-তে ডিমান্ড জেনারেশন ক্যাম্পেন ম্যানেজ করার সময়, আপনি নিম্নলিখিত রিসোর্স ও সেটিংসের সাথে কাজ করেন:
| প্রাথমিক রিসোর্স | ডিমান্ড জেনারেশন সংক্রান্ত মূল ফিল্ড ও সেটিংস |
|---|---|
CampaignBudget
|
explicitly_shared = false; দৈনিক
(amount_micros) বা কাস্টম মোট বাজেট
(period = CUSTOM_PERIOD-এর সাথে
total_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,
Discover, Gmail, Maps, Display)।
|
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 অনুরোধে
অ্যাটমিকভাবে তৈরি করার সাজেশন দিই যাতে নির্ভরশীল রিসোর্স একে অপরের রেফারেন্স দিতে পারে:
Java
// 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 )]});
কার্ল
বাজেট, বিডিং স্ট্র্যাটেজি ও বিজ্ঞাপন ফর্ম্যাট সম্পর্কে ধাপে ধাপে নির্দেশাবলী পেতে, ডিমান্ড জেনারেশন ক্যাম্পেন তৈরি করুন নিবন্ধটি দেখুন।
ডিমান্ড জেনারেশন ক্যাম্পেন কোয়েরি করুন
নেটওয়ার্ক ও YouTube সারফেস (segments.ad_network_type ও segments.ad_sub_network_type
একসাথে বেছে নিতে হবে) অনুযায়ী ভাগ করা ডিমান্ড জেনারেশন ক্যাম্পেন অ্যাট্রিবিউট ও পারফর্ম্যান্স মেট্রিক
পেতে GoogleAdsService.SearchStream ব্যবহার করুন:
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
বিজ্ঞাপন-লেভেল, অ্যাসেট-লেভেল এবং কনভার্সন ব্রেকডাউন কোয়েরির জন্য, ডিমান্ড জেনারেশন রিপোর্টিং দেখুন।
পরবর্তী ধাপ
- ডিমান্ড জেনারেশন ক্যাম্পেন তৈরি করা
- দর্শক টার্গেটিং সেট-আপ করা
- ডিমান্ড জেনারেশনের সাথে প্রোডাক্ট ফিড ব্যবহার করা
- চ্যানেল কন্ট্রোল কনফিগার করা
- ডিমান্ড জেনারেশন রিপোর্ট ফিরিয়ে আনা