কীওয়ার্ড ধারণা তৈরি করুন

KeywordPlanIdeaService ব্যবহার করে, আপনি সিড টার্ম বা ওয়েবসাইট ইউআরএল-এর উপর ভিত্তি করে প্রোগ্রাম্যাটিকভাবে কীওয়ার্ড সুপারিশ খুঁজে বের করতে এবং ঐতিহাসিক সার্চ মেট্রিক্স (যেমন গড় মাসিক সার্চ ভলিউম এবং কম্পিটিশন স্কোর) সংগ্রহ করতে পারেন। এই কার্যকারিতাটি হলো গুগল অ্যাডস-এর Keyword Planner UI টুলের প্রোগ্রাম্যাটিক সমতুল্য রূপ।


১. কাস্টম অডিয়েন্সের সাথে সার্বিক ধারণা ও সমন্বয়

যদিও কীওয়ার্ড প্ল্যানিং সাধারণত স্ট্যান্ডার্ড সার্চ ক্যাম্পেইন তৈরি করতে ব্যবহৃত হয়, এটি কাস্টম অডিয়েন্সের সাথেও শক্তিশালী সমন্বয় সাধন করে।

  • ডেটা-নির্ভর সংকেত: আপনার টার্গেট অডিয়েন্স কোন কীওয়ার্ড দিয়ে সার্চ করে তা ম্যানুয়ালি অনুমান করার পরিবর্তে, আপনি KeywordPlanIdeaService ব্যবহার করে সাধারণ ইন্ডাস্ট্রি-সম্পর্কিত শব্দ বা প্রতিযোগীর ইউআরএল ইনপুট করতে পারেন এবং উচ্চ-কার্যকরী ও প্রাসঙ্গিক সার্চ টার্ম খুঁজে বের করতে পারেন।
  • স্বয়ংক্রিয় পাইপলাইন: আপনি প্রোগ্রাম্যাটিকভাবে এই আবিষ্কৃত কীওয়ার্ড সুপারিশগুলো ফিল্টার করতে পারেন (যেমন, ন্যূনতম মাসিক সার্চ ভলিউম অনুযায়ী) এবং সরাসরি সেগুলোকে একটি CustomAudience তৈরির সার্ভিসে ফিড করতে পারেন। এটি নিশ্চিত করে যে আপনার কাস্টম অডিয়েন্সগুলো যাচাইকৃত এবং উচ্চ-উদ্দেশ্যমূলক টার্গেটিং সিগন্যাল দ্বারা পূর্ণ থাকে।

২. পূর্বশর্তসমূহ

কীওয়ার্ড আইডিয়া তৈরি করার আগে নিশ্চিত করুন যে আপনার কাছে নিম্নলিখিত বিষয়গুলো রয়েছে:

  1. কনফিগার করা এপিআই ক্রেডেনশিয়াল: আপনার গুগল ক্লাউড প্রজেক্ট, OAuth 2.0, এবং ডেভেলপার টোকেন সেট আপ করার নির্দেশাবলীর জন্য অনবোর্ডিং গাইড দেখুন।
  2. টার্গেট কাস্টমার আইডি: ১০-সংখ্যার গুগল অ্যাডস ক্লায়েন্ট অ্যাকাউন্ট আইডি।
  3. ধ্রুবক আইডিগুলোকে লক্ষ্য করা:
    • ভাষা আইডি: ভাষাটির প্রতিনিধিত্বকারী সাংখ্যিক ক্রাইটেরিয়ন আইডি (যেমন, ইংরেজির জন্য 1000 )। সম্পূর্ণ লুকআপ টেবিলের জন্য ল্যাঙ্গুয়েজ কনস্ট্যান্টস ডকুমেন্টেশন দেখুন।
    • জিও টার্গেট আইডি: ভৌগোলিক অবস্থান নির্দেশকারী সাংখ্যিক মানদণ্ড আইডি (যেমন, মার্কিন যুক্তরাষ্ট্রের জন্য 2840 )। ভৌগোলিক মানদণ্ডের সম্পূর্ণ তালিকার জন্য জিও টার্গেটস ডকুমেন্টেশন দেখুন।

৩. মূল এপিআই রিসোর্স এবং আর্কিটেকচার

KeywordPlanIdeaService

কীওয়ার্ড তৈরির জন্য দায়ী gRPC সার্ভিস। এর প্রধান মেথডটি হলো generate_keyword_ideas() , যা একটি GenerateKeywordIdeasRequest গ্রহণ করে এবং কীওয়ার্ড আইডিয়ার একটি ইটারেবল স্ট্রিম রিটার্ন করে।

GenerateKeywordIdeasRequest

জেনারেশন প্যারামিটার কনফিগার করার জন্য প্রোটোবাফ রিকোয়েস্ট অবজেক্ট ( GenerateKeywordIdeasRequest )। মূল ফিল্ডগুলো হলো:

  • customer_id : ক্লায়েন্ট অ্যাকাউন্ট আইডি।
  • language : ফরম্যাট করা ভাষা রিসোর্সের নাম (যেমন, languageConstants/1000 )।
  • geo_target_constants : ফরম্যাট করা জিও টার্গেট রিসোর্স নামগুলির একটি তালিকা (যেমন, geoTargetConstants/2840 )।
  • keyword_plan_network : অনুসন্ধান নেটওয়ার্কের পরিধি ( GOOGLE_SEARCH অথবা GOOGLE_SEARCH_AND_PARTNERS )।
  • include_adult_keywords : প্রাপ্তবয়স্কদের জন্য উপযুক্ত শব্দ অন্তর্ভুক্ত করা হবে কিনা তা নির্দেশকারী বুলিয়ান (ডিফল্ট মান False )।

বীজের প্রকারভেদ ( oneof seed )

ধারণা তৈরি করতে, আপনাকে অবশ্যই ঠিক একটি বীজ কনফিগারেশন ক্ষেত্র পূরণ করতে হবে:

  1. keyword_seed : কিছু বীজ শব্দ বা বাক্যাংশের তালিকার উপর ভিত্তি করে ধারণা তৈরি করে। KeywordSeed ব্যবহার করুন।
  2. url_seed : একটি নির্দিষ্ট ওয়েবপেজ ইউআরএল-এর বিষয়বস্তু এবং থিমের উপর ভিত্তি করে ধারণা তৈরি করে। UrlSeed ব্যবহার করুন।
  3. keyword_and_url_seed : অত্যন্ত সুনির্দিষ্ট ধারণা তৈরি করার জন্য এটি সিড টার্ম এবং একটি ওয়েবপেজের ইউআরএল উভয়কে একত্রিত করে। KeywordAndUrlSeed ব্যবহার করুন।
  4. site_seed : একটি সম্পূর্ণ টপ-লেভেল ওয়েবসাইট ডোমেইনের উপর ভিত্তি করে আইডিয়া তৈরি করে। SiteSeed ব্যবহার করুন।

৪. ধাপে ধাপে বাস্তবায়ন

ধাপ ১: ক্লায়েন্ট এবং পরিষেবাগুলি শুরু করুন

ক্লায়েন্ট কনফিগারেশন লোড করুন এবং KeywordPlanIdeaServiceGoogleAdsService এর ইনস্ট্যান্সগুলো সংগ্রহ করুন।

from google.ads.googleads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage()
keyword_plan_idea_service = client.get_service("KeywordPlanIdeaService")
google_ads_service = client.get_service("GoogleAdsService")

ধাপ ২: টার্গেটিং রিসোর্সের নামগুলো ফরম্যাট করুন

কাঁচা সংখ্যাসূচক আইডিগুলোকে বৈধ প্রোটোবাফ রিসোর্স নামে রূপান্তর করতে GoogleAdsService এর হেল্পার মেথডগুলো ব্যবহার করুন।

language_rn = google_ads_service.language_constant_path("1000") # English
geo_rn = google_ads_service.geo_target_constant_path("2840")   # United States

ধাপ ৩: অনুরোধ অবজেক্টটি তৈরি করুন

GenerateKeywordIdeasRequest ইনস্ট্যানশিয়েট করুন এবং টার্গেটিং প্যারামিটারগুলো সেট করুন।

request = client.get_type("GenerateKeywordIdeasRequest")
request.customer_id = "1234567890"
request.language = language_rn
request.geo_target_constants.append(geo_rn)
request.keyword_plan_network = client.enums.KeywordPlanNetworkEnum.GOOGLE_SEARCH

ধাপ ৪: সিড কনফিগার করুন

নির্বাচিত বীজ পাত্রটি (যেমন, keyword_seed ) পূরণ করুন।

request.keyword_seed.keywords.extend(["marathon training", "running shoes"])

ধাপ ৫: ফলাফল সম্পাদন ও বিশ্লেষণ করুন

মেট্রিকগুলো পরীক্ষা করার জন্য generate_keyword_ideas() কল করুন এবং রেসপন্সটির মধ্য দিয়ে পুনরাবৃত্তি করুন।

response = keyword_plan_idea_service.generate_keyword_ideas(request=request)
for idea in response:
    print(f"Idea: {idea.text}, Monthly Searches: {idea.keyword_idea_metrics.avg_monthly_searches}")

৫. সম্পূর্ণ পাইথন কোডের উদাহরণ

নিচে একটি শক্তিশালী ও সম্পূর্ণ কার্যকরী স্ক্রিপ্ট দেওয়া হলো, যা প্রাথমিক শব্দ (সিড টার্ম) থেকে কীওয়ার্ডের ধারণা তৈরি করে এবং সর্বনিম্ন মাসিক সার্চ ভলিউমের ভিত্তিতে সেগুলোকে ফিল্টার করে।

import sys
from typing import List
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException

def generate_keywords(
    client: GoogleAdsClient, customer_id: str, seed_keywords: List[str], min_monthly_searches: int = 1000
) -> List[str]:
    """Generates keyword ideas and filters them by minimum monthly search volume."""
    keyword_plan_idea_service = client.get_service("KeywordPlanIdeaService")
    google_ads_service = client.get_service("GoogleAdsService")

    # 1. Construct resource names for targeting (English, US)
    language_rn = google_ads_service.language_constant_path("1000")
    geo_rn = google_ads_service.geo_target_constant_path("2840")

    # 2. Initialize the request
    request = client.get_type("GenerateKeywordIdeasRequest")
    request.customer_id = customer_id
    request.language = language_rn
    request.geo_target_constants.append(geo_rn)
    request.keyword_plan_network = client.enums.KeywordPlanNetworkEnum.GOOGLE_SEARCH
    request.include_adult_keywords = False

    # 3. Set the keyword seed
    request.keyword_seed.keywords.extend(seed_keywords)

    validated_keywords = []

    # 4. Issue the request and filter results
    try:
        response = keyword_plan_idea_service.generate_keyword_ideas(request=request)
        print(f"\nGenerating keyword ideas for seeds: {seed_keywords}...\n")
        
        for idea in response:
            metrics = idea.keyword_idea_metrics
            searches = metrics.avg_monthly_searches
            competition = client.enums.KeywordPlanCompetitionLevelEnum.to_name(metrics.competition)
            
            # Filter for relevance and volume
            if searches and searches >= min_monthly_searches:
                print(f"Found matching keyword: '{idea.text}' (Volume: {searches} | Competition: {competition})")
                validated_keywords.append(idea.text)
                
        return validated_keywords

    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)

if __name__ == "__main__":
    try:
        googleads_client = GoogleAdsClient.load_from_storage()
        target_customer_id = "1234567890"
        seeds = ["trail running", "ultra marathon"]
        
        results = generate_keywords(googleads_client, target_customer_id, seeds)
        print(f"\nSuccessfully extracted {len(results)} high-volume keywords.")
    except GoogleAdsException as ex:
        print(f"Failed to initialize client: {ex}")
        sys.exit(1)

৬. পাইপলাইন: কাস্টম অডিয়েন্সে কীওয়ার্ড আইডিয়া যুক্ত করুন

একবার আপনি উচ্চ-মানের কীওয়ার্ড আইডিয়া তৈরি ও ফিল্টার করে নিলে, একটি সম্পূর্ণ কীওয়ার্ড আবিষ্কার এবং টার্গেটিং পাইপলাইন তৈরি করার জন্য সেগুলোকে সরাসরি কাস্টম অডিয়েন্স তৈরির ফাংশনে পাঠাতে পারেন।

নিম্নলিখিত স্ক্রিপ্টটি দেখায় কিভাবে কাস্টম অডিয়েন্স গাইডে বর্ণিত কাস্টম অডিয়েন্স ওয়ার্কফ্লো-এর সাথে generate_keywords() ফাংশনকে সংযুক্ত করা যায়:

def create_audience_from_keyword_ideas(client: GoogleAdsClient, customer_id: str, seed_keywords: List[str]):
    """Generates keyword ideas and immediately builds a Custom Audience from them."""
    
    # 1. Fetch high-volume keyword ideas
    generated_keywords = generate_keywords(client, customer_id, seed_keywords, min_monthly_searches=5000)
    
    if not generated_keywords:
        print("No valid keywords found matching criteria. Aborting audience creation.")
        return
        
    # 2. Initialize CustomAudienceService and resource
    custom_audience_service = client.get_service("CustomAudienceService")
    custom_audience = client.get_type("CustomAudience")
    custom_audience.name = f"Automated Intent: {seed_keywords[0].title()}"
    custom_audience.description = "Audience dynamically populated from Keyword Planner API recommendations."
    custom_audience.type_ = client.enums.CustomAudienceTypeEnum.AUTO
    custom_audience.status = client.enums.CustomAudienceStatusEnum.ENABLED
    
    # 3. Populate Custom Audience Members with the generated keywords
    for kw in generated_keywords:
        member = client.get_type("CustomAudienceMember")
        member.member_type = client.enums.CustomAudienceMemberTypeEnum.KEYWORD
        member.keyword = kw
        custom_audience.members.append(member)
        
    # 4. Mutate and create the Custom Audience
    operation = client.get_type("CustomAudienceOperation")
    operation.create = custom_audience
    
    try:
        response = custom_audience_service.mutate_custom_audiences(
            customer_id=customer_id, operations=[operation]
        )
        print(f"\nSuccessfully created Custom Audience: '{response.results[0].resource_name}'")
    except GoogleAdsException as ex:
        print(f"Audience creation failed: {ex.error.code().name}")

৭. সর্বোত্তম অনুশীলন এবং সীমাবদ্ধতা

বীজের সীমা

  • কীওয়ার্ড সিড: প্রতি অনুরোধে সর্বোচ্চ ২০টি সিড কীওয়ার্ড।
  • ইউআরএল / সাইট সিড: প্রতি অনুরোধে ঠিক ১টি ইউআরএল বা ডোমেইন।

পৃষ্ঠা সংখ্যা এবং প্রতিক্রিয়ার আকার

` generate_keyword_ideas() স্ট্রিমটি ডিফল্টরূপে সর্বোচ্চ ৭০০টি কীওয়ার্ড আইডিয়া ফেরত দেয় (সঠিক সংখ্যাটি সিড ব্রেডথের উপর নির্ভর করে)। আপনার যদি আরও ব্যাপক অনুসন্ধানের প্রয়োজন হয়, তবে বিভিন্ন সিড থিমের অধীনে একাধিক অনুরোধ চালান, বিচ্ছিন্ন কীওয়ার্ডগুলোকে একটি অনুরোধে একত্রিত না করে।

মেট্রিক ব্যাখ্যা

ঐতিহাসিক সার্চ ভলিউম মেট্রিক ( avg_monthly_searches ) হলো ১২-মাসের গড় এবং এটি আকস্মিক মৌসুমী বৃদ্ধিকে প্রতিফলিত নাও করতে পারে। যদি আপনার মাস-ভিত্তিক সূক্ষ্ম প্রবণতার প্রয়োজন হয়, তাহলে KeywordIdeaMetrics মধ্যে monthly_search_volumes ব্যবহার করুন।


৮. UI-তে ম্যাপ করুন

KeywordPlanIdeaService.GenerateKeywordIdeas এর অন্তর্ভুক্ত সার্ভিস এবং ফিল্ডগুলো Google Ads UI-এর Keyword Planner টুলের বিভিন্ন উপাদানের সাথে সঙ্গতিপূর্ণ।

কীওয়ার্ড প্ল্যানার UI গুগল অ্যাডস এপিআই
কীওয়ার্ড এবং ইউআরএল লিখুন
অবস্থান GenerateKeywordIdeasRequest.geo_target_constants
প্রাপ্তবয়স্কদের কীওয়ার্ড GenerateKeywordIdeasRequest.include_adult_keywords
ভাষা GenerateKeywordIdeasRequest.language
অনুসন্ধান নেটওয়ার্ক GenerateKeywordIdeasRequest.keyword_plan_network
কীওয়ার্ড পরিমার্জন করুন GenerateKeywordIdeasRequest.keyword_annotation
তারিখের পরিসর GenerateKeywordIdeasRequest.historical_metrics_options
ফলাফল: কীওয়ার্ড GenerateKeywordIdeaResult.text
ফলাফল: মেট্রিক্স GenerateKeywordIdeaResult.keyword_idea_metrics