Google বিজ্ঞাপন কোয়েরি ভাষা

মূল পরিভাষা

সম্পদ
গুগল অ্যাডস-এর একটি সত্তা, যেমন campaign বা ad_group ।
সেগমেন্ট
ডেটা গ্রুপ করার জন্য ব্যবহৃত একটি ডাইমেনশন, যেমন segments.date বা segments.device । যখন মেট্রিক্সের সাথে SELECT ক্লজে সেগমেন্ট অন্তর্ভুক্ত করা হয়, তখন মেট্রিক্স সেগমেন্ট অনুযায়ী বিভক্ত হয়।
মেট্রিক
পারফরম্যান্সের একটি পরিমাপ, যেমন metrics.impressions বা metrics.clicks ।
আরোপিত সম্পদ
এমন একটি রিসোর্স যা FROM ক্লজে মূল রিসোর্সের সাথে পরোক্ষভাবে যুক্ত থাকে, যার ফলে আপনি মূল রিসোর্সের অ্যাট্রিবিউটগুলোর পাশাপাশি এর অ্যাট্রিবিউটগুলোও নির্বাচন করতে পারেন।

রিসোর্স বা মেটাডেটা তথ্যের জন্য অনুসন্ধান করুন

গুগল অ্যাডস কোয়েরি ল্যাঙ্গুয়েজ নিম্নলিখিত ধরনের তথ্যের জন্য গুগল অ্যাডস এপিআই-কে কোয়েরি করতে পারে:

  • GoogleAdsService Search বা SearchStream ব্যবহার করে রিসোর্স এবং তাদের সম্পর্কিত অ্যাট্রিবিউট, সেগমেন্ট ও মেট্রিক্স: একটি GoogleAdsService কোয়েরির ফলাফল হলো GoogleAdsRow ইনস্ট্যান্সের একটি তালিকা, যেখানে প্রতিটি GoogleAdsRow একটি রিসোর্সকে প্রতিনিধিত্ব করে।

    যদি কোনো অ্যাট্রিবিউট বা মেট্রিক্স অনুরোধ করা হয়, তাহলে সারিটিতে সেই ফিল্ডগুলোও অন্তর্ভুক্ত থাকে। যদি কোনো সেগমেন্ট অনুরোধ করা হয়, তাহলে প্রতিক্রিয়াটিতে প্রতিটি সেগমেন্ট-রিসোর্স টাপলের জন্য একটি অতিরিক্ত সারিও দেখানো হয়।

  • GoogleAdsFieldService এ উপলব্ধ ফিল্ড এবং রিসোর্স সম্পর্কিত মেটাডেটা: এই পরিষেবাটি কোয়েরিযোগ্য ফিল্ডগুলির একটি ক্যাটালগ প্রদান করে, যেখানে তাদের সামঞ্জস্যতা এবং প্রকার সম্পর্কে নির্দিষ্ট তথ্য থাকে।

    GoogleAdsFieldService কোয়েরির ফলাফল হলো GoogleAdsField ইনস্ট্যান্সগুলোর একটি তালিকা, যেখানে প্রতিটি GoogleAdsField অনুরোধ করা ফিল্ডটির বিবরণ থাকে।

কোয়েরি কাঠামো সম্পর্কে আরও বিস্তারিত জানতে, কোয়েরি কাঠামো এবং গুগল অ্যাডস কোয়েরি ল্যাঙ্গুয়েজ ব্যাকরণ দেখুন।

রিসোর্স অ্যাট্রিবিউটের জন্য কোয়েরি

এখানে ক্যাম্পেইন রিসোর্সের অ্যাট্রিবিউটগুলোর জন্য একটি সাধারণ কোয়েরির উদাহরণ দেওয়া হলো, যা দেখায় কীভাবে ক্যাম্পেইন আইডি, নাম এবং স্ট্যাটাস ফেরত আনা যায়:

SELECT
  campaign.id,
  campaign.name,
  campaign.status
FROM campaign
ORDER BY campaign.id

এই কোয়েরিটি ক্যাম্পেইন আইডি অনুসারে সাজায়। এর ফলে প্রাপ্ত প্রতিটি GoogleAdsRow একটি campaign অবজেক্টকে উপস্থাপন করে, যা ক্যাম্পেইনের resource_name সহ নির্বাচিত ফিল্ডগুলো দ্বারা পূর্ণ থাকে।

ক্যাম্পেইন কোয়েরির জন্য আর কী কী ফিল্ড উপলব্ধ আছে তা জানতে, Campaign রেফারেন্স ডকুমেন্টেশন দেখুন।

মেট্রিক্সের জন্য অনুসন্ধান করুন

কোনো নির্দিষ্ট রিসোর্সের জন্য নির্বাচিত অ্যাট্রিবিউটগুলোর পাশাপাশি, আপনি সম্পর্কিত মেট্রিকগুলোর জন্যও কোয়েরি করতে পারেন:

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED'
  AND metrics.impressions > 1000
ORDER BY campaign.id

এই কোয়েরিটি ক্যাম্পেইন আইডি অনুসারে সাজিয়ে শুধুমাত্র সেই ক্যাম্পেইনগুলোকে ফিল্টার করে, যেগুলোর স্ট্যাটাস PAUSED এবং যেগুলোতে ১০০০-এর বেশি ইম্প্রেশন রয়েছে। এর ফলে প্রাপ্ত প্রতিটি GoogleAdsRow একটি metrics ফিল্ড থাকবে, যা নির্বাচিত মেট্রিক্স দ্বারা পূরণ করা হবে।

অনুসন্ধানযোগ্য মেট্রিকগুলোর তালিকার জন্য, Metrics ডকুমেন্টেশন দেখুন।

সেগমেন্টের জন্য কোয়েরি

কোনো নির্দিষ্ট রিসোর্সের নির্বাচিত অ্যাট্রিবিউটগুলোর পাশাপাশি, আপনি সম্পর্কিত সেগমেন্টগুলোর জন্যও কোয়েরি করতে পারেন:

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  metrics.impressions,
  segments.date
FROM campaign
WHERE campaign.status = 'PAUSED'
  AND metrics.impressions > 1000
  AND segments.date DURING LAST_30_DAYS
ORDER BY campaign.id

মেট্রিক্স কোয়েরি করার মতোই, এই কোয়েরিটি শুধুমাত্র সেই ক্যাম্পেইনগুলোকে ফিল্টার করে যাদের স্ট্যাটাস PAUSED এবং যেগুলোতে ১০০০-এর বেশি ইম্প্রেশন রয়েছে। তবে, এই কোয়েরিটি তারিখ অনুযায়ী ডেটা সেগমেন্ট করে। এর ফলে প্রতিটি GoogleAdsRow একটি ক্যাম্পেইন এবং তারিখের সেগমেন্টের একটি টাপল (tuple) হিসেবে উপস্থাপিত হয়। সেগমেন্টেশন নির্বাচিত মেট্রিক্সগুলোকে বিভক্ত করে এবং SELECT ক্লজে প্রতিটি সেগমেন্ট অনুযায়ী গ্রুপ করে।

অনুসন্ধানযোগ্য সেগমেন্টগুলির তালিকার জন্য, Segments ডকুমেন্টেশন দেখুন।

কোনো নির্দিষ্ট রিসোর্সের জন্য কোয়েরি করার সময়, উপলব্ধ থাকলে আপনি অন্যান্য সম্পর্কিত রিসোর্সের সাথে জয়েন করতে পারেন। এই সম্পর্কিত রিসোর্সগুলো 'অ্যাট্রিবিউটেড রিসোর্স' নামে পরিচিত। আপনার কোয়েরিতে একটি অ্যাট্রিবিউট নির্বাচন করার মাধ্যমে আপনি পরোক্ষভাবে অ্যাট্রিবিউটেড রিসোর্সের সাথে জয়েন করতে পারেন।

SELECT
  campaign.id,
  campaign.name,
  campaign.status,
  bidding_strategy.name
FROM campaign
ORDER BY campaign.id

এই কোয়েরিটি শুধু ক্যাম্পেইন অ্যাট্রিবিউটই নির্বাচন করে না, বরং নির্বাচিত প্রতিটি ক্যাম্পেইন থেকে সম্পর্কিত অ্যাট্রিবিউটগুলোও নিয়ে আসে। এর ফলে প্রাপ্ত প্রতিটি GoogleAdsRow একটি campaign অবজেক্টকে প্রতিনিধিত্ব করে, যা নির্বাচিত ক্যাম্পেইন অ্যাট্রিবিউট এবং নির্বাচিত বিডিং স্ট্র্যাটেজি অ্যাট্রিবিউট bidding_strategy.name দ্বারা পূর্ণ থাকে।

ক্যাম্পেইন কোয়েরির জন্য কী কী অ্যাট্রিবিউটেড রিসোর্স উপলব্ধ আছে তা জানতে, Campaign রেফারেন্স ডকুমেন্টেশন দেখুন।

সর্বোত্তম অনুশীলন

  • দীর্ঘ প্রতিক্রিয়া সময় এবং টাইমআউট এড়াতে শুধুমাত্র আপনার প্রয়োজনীয় ফিল্ডগুলো নির্বাচন করুন।
  • উন্নয়ন এবং পরীক্ষার সময় বৃহৎ ফলাফল সেট প্রক্রিয়াকরণ এড়াতে LIMIT ব্যবহার করুন।
  • ডেটা ট্রান্সফার এবং রেসপন্স সাইজ কমাতে WHERE ক্লজে ফিল্টার প্রয়োগ করুন।
  • জটিল কোয়েরি তৈরি করার আগে ফিল্ডের সামঞ্জস্যতা এবং ডেটা টাইপ যাচাই করতে GoogleAdsFieldService ব্যবহার করুন।
  • মনে রাখবেন যে কিছু ফিল্ড, বিশেষ করে যেগুলিতে প্রচুর পরিমাণে ডেটা বা জটিল গণনা জড়িত থাকে, সেগুলি কোয়েরির খরচ বাড়িয়ে দিতে পারে।

কোয়েরির ফলাফলের উপর ভিত্তি করে পরিবর্তন করুন

কোনো নির্দিষ্ট রিসোর্সের জন্য কোয়েরি করার পর, আপনি প্রাপ্ত ফলাফলগুলোকে তাৎক্ষণিকভাবে অবজেক্ট হিসেবে নিয়ে, সেগুলোকে পরিবর্তন করে, এবং সেই রিসোর্সের সার্ভিসের mutate মেথডে ফেরত পাঠাতে পারেন। নিচে একটি নমুনা কর্মপ্রবাহ দেওয়া হলো:

  1. যেসব PAUSED ক্যাম্পেইনের ইম্প্রেশন ১০০০-এর বেশি, সেগুলোর জন্য একটি কোয়েরি চালান।
  2. রেসপন্সের প্রতিটি GoogleAdsRow এর campaign ফিল্ড থেকে Campaign অবজেক্টটি নিন।
  3. প্রতিটি ক্যাম্পেইনের স্ট্যাটাস PAUSED থেকে ENABLED এ পরিবর্তন করুন।
  4. পরিবর্তিত ক্যাম্পেইনগুলো এবং একটি সংশ্লিষ্ট FieldMask সহ CampaignService.MutateCampaigns কল করে সেগুলোকে আপডেট করুন।

ফিল্ড মেটাডেটা

GoogleAdsFieldService এ পাঠানো কোয়েরিগুলো ফিল্ড মেটাডেটা পুনরুদ্ধার করার জন্য ব্যবহৃত হয়। এই তথ্য ব্যবহার করে বোঝা যায় যে, একটি কোয়েরিতে ফিল্ডগুলো কীভাবে একসাথে ব্যবহার করা যেতে পারে। যেহেতু এপিআই (API) থেকে ডেটা পাওয়া যায় এবং এটি একটি কোয়েরি যাচাই বা তৈরি করার জন্য প্রয়োজনীয় মেটাডেটা সরবরাহ করে, তাই ডেভেলপাররা প্রোগ্রাম্যাটিকভাবে এই কাজটি করতে পারেন। মেটাডেটার জন্য একটি সাধারণ কোয়েরি নিচে দেওয়া হলো:

SELECT
  name,
  category,
  selectable,
  filterable,
  sortable,
  selectable_with,
  data_type,
  is_repeated
WHERE name = "<INSERT_RESOURCE_OR_FIELD>"

এই কোয়েরিতে আপনি <INSERT_RESOURCE_OR_FIELD> কে কোনো রিসোর্স (যেমন customer বা campaign ) অথবা ফিল্ড (যেমন campaign.id , metrics.impressions বা ad_group.id ) দিয়ে প্রতিস্থাপন করতে পারেন।

অনুসন্ধানযোগ্য ফিল্ডগুলির তালিকার জন্য, GoogleAdsField ডকুমেন্টেশন দেখুন।

সংস্করণ-নির্দিষ্ট পার্থক্য

যদিও Google Ads Query Language-এর সিনট্যাক্স, ক্লজ এবং অপারেটরগুলো সমস্ত সমর্থিত Google Ads API ভার্সন (v23, v24, এবং v25)-এ একই, তবে কোয়েরিযোগ্য রিসোর্স, সেগমেন্ট, মেট্রিক এবং রিপোর্টিং আচরণের তালিকা প্রধান ভার্সন অনুযায়ী ভিন্ন হয়। নির্দিষ্ট API ভার্সনের ফিল্ড এবং সামঞ্জস্যতার নিয়মগুলো পরীক্ষা করতে, সেই ভার্সনের এন্ডপয়েন্টে GoogleAdsFieldService কোয়েরি করুন:

  • লাইফসাইকেল গোল রিসোর্স: v25 এবং পরবর্তী সংস্করণগুলিতে, সমস্ত লাইফসাইকেল গোল (নতুন গ্রাহক অধিগ্রহণ, গ্রাহক ধরে রাখা, এবং আনুগত্য ধরে রাখা) একীভূত goal এবং campaign_goal_config রিসোর্স থেকে কোয়েরি করা হয়, যা customer_lifecycle_goal এবং campaign_lifecycle_goal প্রতিস্থাপন করে (যা v24 এবং তার পূর্ববর্তী সংস্করণগুলিতে নতুন গ্রাহক অধিগ্রহণ গোলের জন্য এবং গ্রাহক ধরে রাখা গোলের জন্য goal ও campaign_goal_config পাশাপাশি ব্যবহৃত হত)।
  • ফাইনাল ইউআরএল এক্সপ্যানশন অ্যাসেট ভিউ মেট্রিক্স: v25 এবং তার পরবর্তী সংস্করণগুলিতে, final_url_expansion_asset_view কোয়েরি করলে ভিউটির জন্য নির্বাচনযোগ্য সমস্ত মেট্রিক্স ফেরত আসে। v24 এবং তার পূর্ববর্তী সংস্করণগুলিতে, পারফরম্যান্স ম্যাক্স ক্যাম্পেইনের জন্য রেসপন্সে শুধুমাত্র metrics.conversions ও metrics.conversions_value এবং সার্চ ক্যাম্পেইনের জন্য metrics.impressions অন্তর্ভুক্ত থাকত।
  • অ্যাপ ক্যাম্পেইনের জন্য শপিং প্রোডাক্ট রিপোর্টিং: v24 এবং পরবর্তী সংস্করণগুলিতে, shopping_product রিসোর্সটি Shopping, Performance Max, Demand Gen, এবং Video ক্যাম্পেইনের পাশাপাশি অ্যাপ ক্যাম্পেইনের জন্যও প্রোডাক্ট রো রিটার্ন করে (v23-এ, অ্যাপ ক্যাম্পেইনগুলি shopping_product ফলাফল থেকে বাদ দেওয়া হয়)।
  • সংস্করণ-নির্দিষ্ট সম্পদ, বিভাগ এবং মেট্রিক:
    • v25 এবং পরবর্তী সংস্করণ: এতে লিফট পরিমাপের রিসোর্স (যেমন lift_measurement_config ), segments.ad_sub_format_type ও segments.loyalty_membership এর মতো সেগমেন্ট এবং ইউটিউব এনগেজমেন্ট মেট্রিক্স ( metrics.youtube_likes , metrics.youtube_comments , ও metrics.youtube_shares ) অন্তর্ভুক্ত রয়েছে। local_services_lead.contact_details.email সরিয়ে ফেলা হয়েছে (যা v24 এবং তার পূর্ববর্তী সংস্করণে নির্বাচনযোগ্য ছিল)।
    • v24 এবং পরবর্তী সংস্করণ: এতে cart_data_sales_view রিসোর্স, shopping_performance_view এর segments.conversion_attribution_event_type , segments.mobile_device_platform , এবং performance_max_placement_view এর segments.ad_network_type অন্তর্ভুক্ত রয়েছে। এটি campaign.video_brand_safety_suitability (যার পরিবর্তে customer.video_brand_safety_suitability ব্যবহৃত হয়েছে), campaign_budget এর segments.ad_sub_network_type , এবং ad_group_asset , campaign_asset , ও customer_asset segments.click_type (যা শুধুমাত্র v23-এ নির্বাচনযোগ্য ছিল) অপসারণ করে।
  • গ্র্যানুলার ডেট লুকব্যাক এরর কোড: যে কোয়েরিগুলো ৩৭-মাসের লুকব্যাক উইন্ডোর বাইরে segments.date , segments.week , বা segments.hour দ্বারা সেগমেন্ট করে (অথবা কোনো উপ-মাসিক তারিখের পরিসরে ফিল্টার করে), সেগুলো v24 এবং তার পরবর্তী সংস্করণগুলোতে DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED (অথবা v23-এ DateRangeError.UNKNOWN ) রিটার্ন করে। বিস্তারিত জানতে ডেট রেঞ্জ দেখুন।

কোডের উদাহরণ

ক্লায়েন্ট লাইব্রেরিগুলোতে GoogleAdsService এ গুগল অ্যাডস কোয়েরি ল্যাঙ্গুয়েজ ব্যবহারের উদাহরণ রয়েছে। বেসিক অপারেশনস ফোল্ডারে GetCampaigns , GetKeywords , এবং SearchForGoogleAdsFields এর মতো উদাহরণ রয়েছে।