কাস্টম অডিয়েন্স (যার মধ্যে প্রচলিত কাস্টম ইনটেন্ট এবং কাস্টম অ্যাফিনিটি অডিয়েন্স অন্তর্ভুক্ত) বিজ্ঞাপনদাতাদের তাদের পণ্য বা পরিষেবা সম্পর্কিত প্রাসঙ্গিক কীওয়ার্ড, ইউআরএল এবং অ্যাপ প্রবেশ করিয়ে আদর্শ টার্গেট অডিয়েন্সের কাছে পৌঁছানোর সুযোগ দেয়। গুগল অ্যাডস ক্যাম্পেইনের ধরন, বিডিং কৌশল এবং অপটিমাইজেশনের লক্ষ্যের উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সবচেয়ে উপযুক্ত অডিয়েন্স টার্গেটিং নির্ধারণ করে।
এই নির্দেশিকাটিতে গুগল অ্যাডস এপিআই ব্যবহার করে কীওয়ার্ড এবং ইউআরএল-এর সাহায্যে কীভাবে কাস্টম অডিয়েন্স তৈরি ও পরিচালনা করতে হয়, তার একটি সম্পূর্ণ বিবরণ দেওয়া হয়েছে।
১. কাস্টম অডিয়েন্স বুঝুন
গুগল অ্যাডস এপিআই-তে, কাস্টম ইনটেন্ট এবং কাস্টম অ্যাফিনিটির মতো পুরোনো ধারণাগুলোকে একীভূত করে কাস্টম অডিয়েন্স নামক একটি একক ও ব্যাপক রিসোর্স তৈরি করা হয়েছে।
আপনি যখন কাস্টম অডিয়েন্সকে টার্গেট করেন, তখন গুগল অ্যাডস ডিসপ্লে, ডিমান্ড জেন, জিমেইল, ভিডিও এবং পারফরম্যান্স ম্যাক্স ক্যাম্পেইনে সেইসব ব্যবহারকারীদের বিজ্ঞাপন দেখায় যাদের এই আগ্রহ বা কেনার উদ্দেশ্য রয়েছে:
- কীওয়ার্ড সদস্য: সেইসব ব্যবহারকারীর কাছে পৌঁছান যারা গুগলে নির্দিষ্ট শব্দ অনুসন্ধান করেন, অথবা যাদের আগ্রহ সেই কীওয়ার্ডগুলোর সাথে সম্পর্কিত।
- ইউআরএল সদস্য: সেইসব ব্যবহারকারীদের কাছে পৌঁছান যারা নির্দিষ্ট ইউআরএলগুলোর অনুরূপ ওয়েবসাইট ব্রাউজ করেন।
- অ্যাপ সদস্য: নির্দিষ্ট মোবাইল অ্যাপ্লিকেশন ব্যবহারকারীগণের কাছে পৌঁছান।
২. পূর্বশর্তসমূহ
কাস্টম অডিয়েন্স তৈরি করার আগে, নিশ্চিত করুন যে আপনার কাছে নিম্নলিখিত বিষয়গুলো রয়েছে:
- এপিআই অনবোর্ডিং সম্পন্ন হয়েছে: ডেভেলপার টোকেন সংগ্রহ, গুগল ক্লাউড সেট আপ এবং OAuth 2.0 কনফিগার করার নির্দেশাবলীর জন্য অনবোর্ডিং গাইড দেখুন।
- টার্গেট কাস্টমার আইডি: ১০-সংখ্যার গুগল অ্যাডস ক্লায়েন্ট অ্যাকাউন্ট আইডি, যেখানে কাস্টম অডিয়েন্স তৈরি করা হবে।
- ইনস্টল করা ক্লায়েন্ট লাইব্রেরি: অফিসিয়াল গুগল অ্যাডস ক্লায়েন্ট লাইব্রেরি (যেমন, পাইথনের জন্য
google-ads)।
৩. মূল এপিআই রিসোর্স এবং আর্কিটেকচার
কাস্টম অডিয়েন্স পরিচালনা করতে গুগল অ্যাডস এপিআই-এর অন্তর্গত বেশ কয়েকটি স্বতন্ত্র প্রোটোকল বাফার (প্রোটোবাফ) এনটিটি জড়িত থাকে:
CustomAudienceService
কাস্টম অডিয়েন্স পরিচালনার জন্য দায়ী gRPC সার্ভিস। এর প্রধান মেথডগুলোর মধ্যে রয়েছে MutateCustomAudiences , যা অডিয়েন্স তৈরি, আপডেট বা অপসারণ করার জন্য অপারেশনের একটি তালিকা গ্রহণ করে।
CustomAudience
দর্শকগোষ্ঠীর প্রতিনিধিত্বকারী প্রাথমিক রিসোর্স ( CustomAudience )। মূল ক্ষেত্রসমূহ:
-
name: কাস্টম অডিয়েন্সের জন্য একটি অনন্য ও বর্ণনামূলক নাম। -
description: ঐচ্ছিক লেখা যা উদ্দিষ্ট দর্শকের লক্ষ্য বর্ণনা করে। -
status: দর্শকদের সক্রিয় এবং ব্যবহারযোগ্য করতে 'সক্ষম'ENABLEDএ সেট করুন। -
type: কাস্টম অডিয়েন্সের ধরণ (AUTOঅথবাSEARCH)।
-
members: লক্ষ্য সংকেতগুলো নির্ধারণকারীCustomAudienceMemberঅবজেক্টগুলোর একটি তালিকা।
CustomAudienceMember
অডিয়েন্সের ( CustomAudienceMember ) মধ্যে একটি স্বতন্ত্র টার্গেটিং সিগন্যাল।
-
member_type: সিগন্যালের ধরন নির্দিষ্টকারী enum (KEYWORD,URL,APP)। -
keyword/url/app: সদস্যের প্রকারের সাথে সঙ্গতিপূর্ণ স্ট্রিং মান।
৪. ধাপে ধাপে বাস্তবায়ন
ধাপ ১: ক্লায়েন্ট চালু করুন
আপনার কনফিগার করা google-ads.yaml ফাইল ব্যবহার করে GoogleAdsClient ইনস্ট্যানশিয়েট করুন।
from google.ads.googleads.client import GoogleAdsClient
# Initialize the Google Ads client library
client = GoogleAdsClient.load_from_storage()
custom_audience_service = client.get_service("CustomAudienceService")
ধাপ ২: কাস্টম অডিয়েন্স তৈরি করুন
একটি নতুন CustomAudience ইনস্ট্যান্স তৈরি করুন এবং এর মেটাডেটা (নাম, বিবরণ, প্রকার, অবস্থা) কনফিগার করুন।
# Construct the CustomAudience resource
custom_audience = client.get_type("CustomAudience")
custom_audience.name = "Target Audience Name"
custom_audience.description = "Description of the target audience."
custom_audience.type_ = client.enums.CustomAudienceTypeEnum.AUTO
custom_audience.status = client.enums.CustomAudienceStatusEnum.ENABLED
ধাপ ৩: কীওয়ার্ড সদস্যদের পূরণ করুন
CustomAudienceMember অবজেক্টগুলো ইনস্ট্যানশিয়েট করুন, member_type CustomAudienceMemberTypeEnum.KEYWORD এ সেট করুন, এবং keyword স্ট্রিং ফিল্ডটি আপনার টার্গেটিং টার্মগুলো দিয়ে পূরণ করুন।
# Create and append a keyword member
keyword_member = client.get_type("CustomAudienceMember")
keyword_member.member_type = client.enums.CustomAudienceMemberTypeEnum.KEYWORD
keyword_member.keyword = "marathon training"
custom_audience.members.append(keyword_member)
ধাপ ৪: URL সদস্যদের পূরণ করুন
CustomAudienceMember অবজেক্ট ইনস্ট্যানশিয়েট করুন, member_type CustomAudienceMemberTypeEnum.URL এ সেট করুন, এবং url স্ট্রিং ফিল্ডটি প্রতিযোগী বা ইন্ডাস্ট্রির ওয়েবসাইট দিয়ে পূরণ করুন।
# Create and append a URL member
url_member = client.get_type("CustomAudienceMember")
url_member.member_type = client.enums.CustomAudienceMemberTypeEnum.URL
url_member.url = "https://www.runnersworld.com"
custom_audience.members.append(url_member)
ধাপ ৫: মিউটেশনটি সম্পাদন করুন
CustomAudience একটি CustomAudienceOperation মধ্যে রাখুন, এটিকে create ফিল্ডে সেট করুন এবং CustomAudienceService.mutate_custom_audiences() কল করুন।
# Wrap in an operation and execute the mutation request
operation = client.get_type("CustomAudienceOperation")
operation.create = custom_audience
response = custom_audience_service.mutate_custom_audiences(
customer_id="1234567890", operations=[operation]
)
print(f"Created custom audience: {response.results[0].resource_name}")
৫. সম্পূর্ণ পাইথন কোডের উদাহরণ
নিচে একটি সম্পূর্ণ কার্যকরী পাইথন স্ক্রিপ্ট দেওয়া হলো, যা কীওয়ার্ড এবং ইউআরএল উভয় ধরনের সদস্য নিয়ে একটি কাস্টম অডিয়েন্স তৈরি করার পদ্ধতি প্রদর্শন করে।
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
def create_custom_intent_audience(client: GoogleAdsClient, customer_id: str):
"""Creates a custom audience using keywords and URLs."""
# 1. Get the CustomAudienceService
custom_audience_service = client.get_service("CustomAudienceService")
# 2. Create the CustomAudience resource
custom_audience = client.get_type("CustomAudience")
custom_audience.name = "Running Enthusiasts & Gear Shoppers"
custom_audience.description = "Targeting users actively researching running shoes and visiting marathon websites."
# Use AUTO for standard custom audiences (combines intent and affinity signals)
custom_audience.type_ = client.enums.CustomAudienceTypeEnum.AUTO
custom_audience.status = client.enums.CustomAudienceStatusEnum.ENABLED
# 3. Add Keyword Members (Search Terms / Purchase Intent Keywords)
keywords = [
"best marathon running shoes",
"carbon plate running shoes",
"marathon training plan",
"trail running gear"
]
for kw in keywords:
member = client.get_type("CustomAudienceMember")
member.member_type = client.enums.CustomAudienceMemberTypeEnum.KEYWORD
member.keyword = kw
custom_audience.members.append(member)
# 4. Add URL Members (Relevant websites/competitors)
urls = [
"https://www.runnersworld.com",
"https://www.marathonrunning.com",
"https://www.trailrunnermag.com"
]
for url in urls:
member = client.get_type("CustomAudienceMember")
member.member_type = client.enums.CustomAudienceMemberTypeEnum.URL
member.url = url
custom_audience.members.append(member)
# 5. Create the Operation
operation = client.get_type("CustomAudienceOperation")
operation.create = custom_audience
# 6. Issue the Mutate Request
try:
response = custom_audience_service.mutate_custom_audiences(
customer_id=customer_id, operations=[operation]
)
created_resource_name = response.results[0].resource_name
print(f"Successfully created Custom Audience with resource name: '{created_resource_name}'")
except GoogleAdsException as ex:
print(f"Request failed with status {ex.error.code().name} and includes the following errors:")
for error in ex.failure.errors:
print(f"\tError with message '{error.message}'.")
if error.location:
for field_path_element in error.location.field_path_elements:
print(f"\t\tOn field: {field_path_element.field_name}")
sys.exit(1)
if __name__ == "__main__":
# Ensure the client is configured correctly (loads from google-ads.yaml)
try:
googleads_client = GoogleAdsClient.load_from_storage()
# Replace with your actual Google Ads Customer ID (without hyphens)
target_customer_id = "1234567890"
create_custom_intent_audience(googleads_client, target_customer_id)
except GoogleAdsException as ex:
print(f"Failed to initialize client or execute request: {ex}")
sys.exit(1)
৬. ক্যাম্পেইনে কাস্টম অডিয়েন্স প্রয়োগ করুন
একবার একটি কাস্টম অডিয়েন্স তৈরি হয়ে গেলে, সেটি আপনার অ্যাকাউন্টের অডিয়েন্স লাইব্রেরিতে থাকে, কিন্তু কোনো অ্যাড গ্রুপ বা ক্যাম্পেইনের সাথে সংযুক্ত না হওয়া পর্যন্ত সক্রিয়ভাবে ব্যবহারকারীদের টার্গেট করে না।
AdGroupCriterion বলতে কী বোঝায়?
গুগল অ্যাডস এপিআই আর্কিটেকচারে, টার্গেটিং নিয়মগুলো (যেমন কীওয়ার্ড, অডিয়েন্স, প্লেসমেন্ট এবং ডেমোগ্রাফিক্স) সরাসরি অ্যাড গ্রুপ অবজেক্টে কনফিগার করা হয় না। এর পরিবর্তে, গুগল অ্যাডস সমস্ত টার্গেটিং পদ্ধতিকে AdGroupCriterion ) নামক একটি একক স্বতন্ত্র সত্তার অধীনে একত্রিত করে।
একটি AdGroupCriterion একটি সার্বজনীন ধারক হিসেবে কাজ করে। আপনি নির্দিষ্ট করে দেন এটি কোন Ad Group-এর জন্য প্রযোজ্য হবে, এবং তারপর এর নির্দিষ্ট টার্গেটিং ফিল্ডগুলোর (যেমন, keyword , custom_audience , বা placement ) মধ্যে ঠিক একটি পূরণ করেন। একটি AdGroupCriterion তৈরি করে এবং এর custom_audience ফিল্ডটি কনফিগার করার মাধ্যমে, আপনি Google Ads-কে নির্দেশ দেন যেন আপনার Custom Audience-এর সদস্যদের উপর ভিত্তি করে সেই Ad Group-এর জন্য বিজ্ঞাপন পরিবেশন সীমাবদ্ধ বা পর্যবেক্ষণ করা হয়।
ধাপে ধাপে বিশ্লেষণ (সুস্পষ্ট দুই-ধাপের গঠন)
টার্গেটিং কনফিগারেশন এবং এপিআই রিকোয়েস্ট কন্টেইনারের মধ্যে সুস্পষ্ট পার্থক্য করার জন্য, আমরা এক্সপ্লিসিট টু-স্টেপ ক্রিয়েশন প্যাটার্ন ব্যবহার করি:
- একটি
AdGroupCriterionরিসোর্স ইনস্ট্যানশিয়েট করুন: একটি স্বতন্ত্রAdGroupCriterionঅবজেক্ট তৈরি করুন। এই রিসোর্সটি টার্গেটিং সম্পর্ককে প্রতিনিধিত্ব করে। - টার্গেট
ad_groupসেট করুন: ক্রাইটেরিয়নেরad_groupফিল্ডে আপনার অ্যাড গ্রুপের ফরম্যাট করা রিসোর্স নামটি (যেমন,customers/{customer_id}/adGroups/{ad_group_id}) অ্যাসাইন করুন। -
custom_audienceফিল্ডটি পূরণ করুন: আপনার পূর্বে তৈরি করা কাস্টম অডিয়েন্সেরresource_nameটিad_group_criterion.custom_audience.custom_audienceএ অ্যাসাইন করুন। -
AdGroupCriterionOperationমধ্যে প্যাকেজ করুন: এই নতুন ক্রাইটেরিয়নটি API-তে পাঠাতে, একটিAdGroupCriterionOperationকন্টেইনার ইনস্ট্যানশিয়েট করুন এবং আপনার স্বতন্ত্র ক্রাইটেরিয়ন অবজেক্টটিoperation.createএ অ্যাসাইন করুন। -
AdGroupCriterionServiceব্যবহার করে পাঠান: তৈরির কাজটি সম্পাদন করতেmutate_ad_group_criteria()ফাংশনে অপারেশন কন্টেইনারটি পাস করুন।
import sys
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException
def attach_custom_audience_to_ad_group(
client: GoogleAdsClient, customer_id: str, ad_group_id: str, custom_audience_resource_name: str
):
"""Attaches a Custom Audience to an Ad Group using explicit two-step creation."""
ad_group_criterion_service = client.get_service("AdGroupCriterionService")
# Step 1: Instantiate the standalone AdGroupCriterion resource
ad_group_criterion = client.get_type("AdGroupCriterion")
# Step 2: Set the target Ad Group
ad_group_criterion.ad_group = client.get_service("AdGroupService").ad_group_path(
customer_id, ad_group_id
)
# Step 3: Set the custom audience targeting information
ad_group_criterion.custom_audience.custom_audience = custom_audience_resource_name
# Step 4: Package the resource into an AdGroupCriterionOperation
operation = client.get_type("AdGroupCriterionOperation")
operation.create = ad_group_criterion
# Step 5: Issue the API Request
try:
response = ad_group_criterion_service.mutate_ad_group_criteria(
customer_id=customer_id, operations=[operation]
)
print(
"Successfully attached custom audience to Ad Group. "
f"New criterion resource name: '{response.results[0].resource_name}'"
)
except GoogleAdsException as ex:
print(f"Request failed with status {ex.error.code().name} and includes the following errors:")
for error in ex.failure.errors:
print(f"\tError with message '{error.message}'.")
sys.exit(1)
৭. কাস্টম অডিয়েন্স সুপারিশ
আপনি CUSTOM_AUDIENCE_OPT_IN ধরনের সুপারিশ পেতে পারেন, যা একটি কাস্টম অডিয়েন্স তৈরি করার পরামর্শ দেয়। এটি বিশেষত উপযোগী যদি আপনি এমন কোনো থার্ড-পার্টি বিজ্ঞাপনদাতা হন, যা তার ব্যবহারকারীদের অডিয়েন্স সেগমেন্ট তৈরি ও পরিচালনা করার সুযোগ দেয়। যখন ব্যবহারকারীরা কাস্টম অডিয়েন্স তৈরির সুপারিশ অনুযায়ী কাজ করে, তখন তা অ্যাকাউন্টের সামগ্রিক অপটিমাইজেশন স্কোর উন্নত করতে সাহায্য করে।
আরও তথ্যের জন্য, অপটিমাইজেশন স্কোর এবং সুপারিশ নির্দেশিকাটি দেখুন।
৮. সর্বোত্তম অনুশীলন এবং সীমাবদ্ধতা
পরিমাণের চেয়ে গুণমান বেশি গুরুত্বপূর্ণ
অত্যন্ত সুনির্দিষ্ট ও প্রাসঙ্গিক কীওয়ার্ড এবং ইউআরএল-এর উপর মনোযোগ দিন। শত শত সাধারণ কীওয়ার্ড যোগ করলে উদ্দেশ্য দুর্বল হয়ে পড়ে এবং ক্যাম্পেইনের কার্যকারিতা কমে যায়।
URL ফরম্যাটিং নিয়ম
- URL অবশ্যই বৈধ ওয়েবসাইটের ঠিকানা হতে হবে (যেমন,
https://www.example.com)। - কম ট্র্যাফিকযুক্ত গভীর ও অত্যন্ত সুনির্দিষ্ট সাব-পেজ পরিহার করুন; ডোমেইন-স্তর বা ক্যাটাগরি-স্তরের ইউআরএল আরও ভালো রিচ এনে দেয়।
সদস্যদের সীমা
কাস্টম অডিয়েন্সে অসংখ্য সদস্য থাকতে পারলেও, প্রতিটি কাস্টম অডিয়েন্সের জন্য তালিকাগুলোকে একটিমাত্র সুসংহত থিম বা পার্সোনার ওপর কেন্দ্র করে রাখুন।
নীতি ও গোপনীয়তা
গুগল ব্যক্তিগত বিজ্ঞাপন সংক্রান্ত কঠোর নীতিমালা প্রয়োগ করে। স্বাস্থ্যগত অবস্থা, আর্থিক সংকট বা ধর্মীয় বিশ্বাসের মতো সংবেদনশীল বিষয়গুলোকে লক্ষ্য করে কাস্টম অডিয়েন্স ব্যবহার করবেন না।
৯. তালিকার কার্যকারিতা পর্যালোচনা করুন
পারফরম্যান্স পর্যালোচনা করার আগে, আপনাকে অবশ্যই প্রথমে 'কাস্টম অডিয়েন্স টার্গেট করুন' বিভাগে বর্ণিত পদ্ধতি অনুযায়ী আপনার কাস্টম অডিয়েন্স টার্গেটিংকে একটি ক্যাম্পেইন বা অ্যাড গ্রুপের সাথে সংযুক্ত করতে হবে।
আপনার অডিয়েন্স সেগমেন্টগুলোর পারফরম্যান্স ডেটা সংগ্রহ করার জন্য, ad_group_audience_view অথবা campaign_audience_view রিসোর্সের বিপরীতে একটি সার্চ রিকোয়েস্ট পাঠান। উদাহরণস্বরূপ, অডিয়েন্স সেগমেন্টটিকে টার্গেট করার ফলে প্রকৃতপক্ষে আরও বেশি কনভার্সন হচ্ছে কিনা তা নির্ধারণ করতে আপনি conversions বা cost_per_conversion দেখতে পারেন, এবং তারপর সেই অনুযায়ী আপনার বিড মডিফায়ারগুলো অ্যাডজাস্ট করতে পারেন।
SELECT
ad_group_criterion.criterion_id,
metrics.conversions,
metrics.cost_per_conversion
FROM ad_group_audience_view
১০. সম্পদ ও তথ্যসূত্র
- অফিসিয়াল গাইড: গুগল অ্যাডস এপিআই - কাস্টম অডিয়েন্স
- এপিআই রেফারেন্স: কাস্টমঅডিয়েন্স প্রোটোবাফ সংজ্ঞা
- গিটহাব স্যাম্পল: গুগল অ্যাডস পাইথন ক্লায়েন্ট লাইব্রেরির স্যাম্পল