কোয়েরি স্ট্রাকচার

রিসোর্স, সেগমেন্ট ও মেট্রিক ফিল্ডের জন্য কোয়েরি GoogleAdsService Search অথবা SearchStream পদ্ধতিতে পাঠানো যেতে পারে। Google Ads কোয়েরি ল্যাঙ্গুয়েজে কোয়েরি তৈরি করতে, ল্যাঙ্গুয়েজ গ্রামার ব্যবহার করে এটি তৈরি করুন। Google Ads কোয়েরি ল্যাঙ্গুয়েজের সাধারণ ওভারভিউয়ের জন্য, Google Ads কোয়েরি ল্যাঙ্গুয়েজ ওভারভিউ দেখুন। কোয়েরি একাধিক ক্লজ দিয়ে তৈরি হয়:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT
  • PARAMETERS

সঠিক ডেটা বেছে নিতে আপনাকে সাহায্য করার জন্য ক্লজ ফিল্ডের নাম, রিসোর্সের নাম, অপারেটর, শর্ত এবং ক্রম ব্যবহার করে। একটি কোয়েরিতে একত্রিত করার পরে, আপনি Google Ads API-তে অনুরোধ পাঠাতে পারবেন।

ধারা

নিম্নলিখিত বিভাগগুলি প্রতিটি Google Ads কোয়েরি ল্যাঙ্গুয়েজ ক্লজের উদ্দেশ্য এবং সিনট্যাক্স বর্ণনা করে।

বেছে নিন

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

নিচের স্যাম্পেল কোয়েরিতে কোনও নির্দিষ্ট রিসোর্সের জন্য অ্যাট্রিবিউট বেছে নেওয়ার উদাহরণ দেখানো হয়েছে:

SELECT
  campaign.id,
  campaign.name
FROM campaign

আপনি একটি অনুরোধে বিভিন্ন ধরনের ফিল্ডের অনুরোধ করতে পারেন, যেমন:

SELECT
  campaign.id,
  campaign.name,
  bidding_strategy.id,
  bidding_strategy.name,
  segments.device,
  segments.date,
  metrics.impressions,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
  • প্রধান রিসোর্স ফিল্ড
    • campaign.id
    • campaign.name
  • অ্যাট্রিবিউট করা রিসোর্স ফিল্ড
    • bidding_strategy.id
    • bidding_strategy.name
  • সেগমেন্ট ফিল্ড
    • segments.device
    • segments.date
  • মেট্রিক
    • metrics.impressions
    • metrics.clicks
  • বেছে নেওয়া যায় না এমন ফিল্ড কোয়েরি করা হচ্ছে। এইসব ফিল্ডের selectable মেটাডেটা অ্যাট্রিবিউট false হিসেবে চিহ্নিত করা আছে।
  • পুনরাবৃত্ত ফিল্ডের অ্যাট্রিবিউট বেছে নেওয়া হচ্ছে। এইসব ফিল্ডের is_repeated মেটাডেটা অ্যাট্রিবিউট true হিসেবে চিহ্নিত করা আছে।
  • FROM ক্লজে প্রদত্ত রিসোর্সের জন্য উপলভ্য নয় এমন ফিল্ড বেছে নেওয়া হচ্ছে। কিছু রিসোর্সের অ্যাট্রিবিউট একসাথে বেছে নেওয়া যায় না এবং FROM ক্লজে রিসোর্সের জন্য সব মেট্রিক ও সেগমেন্টের শুধু একটি সাবসেট উপলভ্য।
  • এমন সেগমেন্ট বা মেট্রিক বেছে নেওয়া যা একে অপরের সাথে মানানসই নয়। আরও তথ্যের জন্য, সেগমেন্টেশন দেখুন।

পূর্ববর্তী শর্তাবলী সম্পর্কিত তথ্য আমাদের রেফারেন্স ডকুমেন্টেশন বা GoogleAdsFieldService থেকে পাওয়া যাবে।

থেকে

FROM ক্লজ থেকে কোন মূল রিসোর্স ফেরত দিতে হবে তা নির্দিষ্ট করা হয়। FROM ক্লজের রিসোর্স থেকে বোঝা যায় যে প্রদত্ত কোয়েরির জন্য অন্যান্য সব ক্লজে কোন কোন ফিল্ড ব্যবহার করা যাবে। FROM ক্লজে শুধুমাত্র একটি রিসোর্স নির্দিষ্ট করা যাবে। GoogleAdsService Search বা SearchStream পদ্ধতিতে কোয়েরি করার জন্য FROM ক্লজ প্রয়োজন। তবে, GoogleAdsFieldService ব্যবহার করার সময় FROM ক্লজ উল্লেখ করা উচিত নয়।

কোনও নির্দিষ্ট কোয়েরির জন্য FROM ক্লজে শুধুমাত্র একটি রিসোর্স থাকতে পারে, অ্যাট্রিবিউট করা রিসোর্স থেকে ফিল্ডও উপলভ্য হতে পারে। এইসব রিসোর্স FROM ক্লজের রিসোর্সের সাথে ইমপ্লিসিটভাবে যুক্ত থাকে, তাই তাদের ভ্যালু পেতে হলে আপনাকে শুধু SELECT ক্লজে তাদের অ্যাট্রিবিউট যোগ করতে হবে। সব রিসোর্সের অ্যাট্রিবিউট করা রিসোর্স থাকে না। নিচের উদাহরণে, আপনি বিজ্ঞাপন গ্রুপ থেকে বিজ্ঞাপন গ্রুপ আইডি ও ক্যাম্পেন আইডি, দু'টিই অনুরোধ করতে পারবেন:

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

মূল রিসোর্সের resource_name ফিল্ড সবসময় ফেরত দেওয়া হয়। নিচের উদাহরণে, কোয়েরিতে স্পষ্টভাবে বেছে না নেওয়া সত্ত্বেও, ad_group.resource_name উত্তরটিতে যোগ করা হয়েছে:

SELECT ad_group.id
FROM ad_group

অন্তত একটি ফিল্ড বেছে নেওয়া হলে অ্যাট্রিবিউট করা রিসোর্সের ক্ষেত্রেও একই কথা প্রযোজ্য। যেমন, নিম্নলিখিত কোয়েরির উত্তরে campaign.resource_name অন্তর্ভুক্ত করা হয়েছে:

SELECT
  campaign.id,
  ad_group.id
FROM ad_group

WHERE

অনুরোধের জন্য ডেটা ফিল্টার করার সময় WHERE ক্লজ শর্তাবলী নির্দিষ্ট করে। WHERE ক্লজ ব্যবহার করার সময়, AND দ্বারা আলাদা করা এক বা একাধিক শর্ত নির্দিষ্ট করুন। শর্তগুলি সাধারণত field_name Operator value প্যাটার্ন অনুসরণ করে (অথবা BETWEEN value AND value, IS NULL বা IS NOT NULL ব্যবহার করে)। কোয়েরিতে WHERE ক্লজটি ঐচ্ছিক।

নিম্নলিখিত উদাহরণে, নির্দিষ্ট সময়সীমার মেট্রিক রিটার্ন করতে WHERE ব্যবহার করা হয়েছে:

SELECT
  campaign.id,
  campaign.name,
  metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

ডেটা ফিল্টার করতে আপনি একাধিক শর্ত একত্রিত করতে পারবেন। এই উদাহরণে গত ৩০ দিনে মোবাইলে ইম্প্রেশন সহ সব ক্যাম্পেনের জন্য ক্লিকের সংখ্যা অনুরোধ করা হয়েছে:

SELECT
  campaign.id,
  campaign.name,
  segments.device,
  metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
  AND segments.device = 'MOBILE'
  AND segments.date DURING LAST_30_DAYS

WHERE ক্লজের সেগমেন্টগুলিকেও SELECT ক্লজে থাকতে হবে, তবে নিম্নলিখিত তারিখ সেগমেন্টগুলি কোর তারিখ সেগমেন্ট হিসেবে উল্লেখ করা হয়:

  • segments.date
  • segments.week
  • segments.month
  • segments.quarter
  • segments.year

নিম্নলিখিত কোয়েরিতে, segments.date বেছে নেওয়া হয়েছে। এই সেগমেন্টটি একটি কোর ডেট সেগমেন্ট হওয়ার কারণে, আপনাকে WHERE ক্লজে কোর ডেট সেগমেন্ট দিয়ে তৈরি একটি নির্দিষ্ট তারিখ রেঞ্জ দিতে হবে:

SELECT
  campaign.id,
  campaign.name,
  segments.date,
  metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS

আগের শর্ত পূরণ করে এমন সব সেগমেন্ট হল segments.date, segments.week, segments.month, segments.quarter এবং segments.year। এইসব সেগমেন্টের মধ্যে কোনও একটি বেছে নেওয়া হলে, সেগুলির মধ্যে অন্তত একটিকে WHERE ক্লজে ব্যবহার করতে হবে।

তারিখ ফিল্টার করার ব্যাপারে আরও জানতে, তারিখের রেঞ্জ দেখুন।

ফিল্টার করার সময়, আপনার অপারেটর ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করে কিনা তা মনে রাখবেন। আরও তথ্যের জন্য, ছোট ও বড় হাতের অক্ষরের মধ্যে পার্থক্য করা হয় দেখুন।

অপারেটরের সম্পূর্ণ তালিকার জন্য, ভাষার ব্যাকরণ দেখুন।

এই অনুযায়ী সাজান

ORDER BY ক্লজ, ফলাফল কোন ক্রমে রিটার্ন করা হবে তা নির্দিষ্ট করে। এটি আপনাকে ফিল্ডের নামের উপর ভিত্তি করে ডেটা ছোট থেকে বড় বা বড় থেকে ছোট ক্রমানুসারে সাজাতে দেয়। প্রতিটি ক্রম field_name হিসেবে নির্দিষ্ট করা হয়, যার পরে ASC বা DESC থাকে। ASC বা DESC কোনওটিই উল্লেখ করা না থাকলে, ডিফল্ট হিসেবে অর্ডার ASC হবে। কোয়েরিতে ORDER BY ক্লজ ঐচ্ছিক।

নিচের কোয়েরিটি রিটার্ন করা ক্যাম্পেনগুলিকে ক্লিক সংখ্যার ভিত্তিতে সবচেয়ে বেশি থেকে সবচেয়ে কম ক্রমে সাজায়:

SELECT
  campaign.name,
  metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC

আপনি কমা দিয়ে আলাদা করা তালিকা ব্যবহার করে ORDER BY ক্লজে একাধিক ফিল্ড নির্দিষ্ট করতে পারবেন। কোয়েরিতে যেভাবে উল্লেখ করা হয়েছে সেই ক্রম অনুযায়ী সাজানো হয়। যেমন, এই কোয়েরিতে বিজ্ঞাপন গ্রুপের ডেটা বেছে নেওয়ার সময়, ফলাফলগুলি ক্যাম্পেনের নাম অনুযায়ী ঊর্ধ্বক্রমে, তারপর ইম্প্রেশনের সংখ্যা অনুযায়ী অধঃক্রমে, তারপর ক্লিকের সংখ্যা অনুযায়ী অধঃক্রমে সাজানো হয়:

SELECT
  campaign.name,
  ad_group.name,
  metrics.impressions,
  metrics.clicks
FROM ad_group
ORDER BY
  campaign.name,
  metrics.impressions DESC,
  metrics.clicks DESC

লিমিট

LIMIT ক্লজ আপনাকে ফেরত দেওয়ার জন্য ফলাফলের সংখ্যা নির্দিষ্ট করতে দেয়। আপনার যদি ফলাফলের শুধুমাত্র সাবসেট প্রয়োজন হয় তাহলে এই পদ্ধতিটি কার্যকর হবে।

যেমন, LIMIT নিম্নলিখিত কোয়েরির জন্য ফলাফলের মোট সংখ্যা সীমাবদ্ধ করতে পারে:

SELECT
  campaign.name,
  ad_group.name,
  segments.device,
  metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50

প্যারামিটার

PARAMETERS ক্লজ আপনাকে অনুরোধের জন্য মেটা প্যারামিটার নির্দিষ্ট করতে দেয়। এইসব প্যারামিটার কোন ধরনের সারি ফেরত দেওয়া হবে তার উপর প্রভাব ফেলতে পারে।

নিম্নলিখিত মেটা প্যারামিটার কাজ করে:

include_drafts

ড্রাফ্ট এন্টিটি ফিরিয়ে আনতে include_drafts-কে true-এ সেট করুন। ডিফল্ট হিসেবে false সেট করা থাকে।

যেমন, নিম্নলিখিত কোয়েরি রেগুলার ক্যাম্পেনের সাথে ড্রাফ্ট ক্যাম্পেনও নিয়ে আসে:

SELECT campaign.name
FROM campaign
PARAMETERS include_drafts = true

omit_unselected_resource_names

SELECT ক্লজে স্পষ্টভাবে অনুরোধ না করা হলে, প্রতিটি রিসোর্স টাইপের রিসোর্স নাম বাদ দিতে, omit_unselected_resource_names-কে true-এ সেট করুন। ডিফল্ট হিসেবে false সেট করা থাকে।

কোয়েরি ফেরত দেওয়া রিসোর্স
SELECT
  campaign.name,
  customer.id
FROM campaign
  • campaign.resource_name
  • customer.resource_name

omit_unselected_resource_names ডিফল্ট হিসেবে false সেট করা থাকে, তাই সব resource_name ফিল্ড রিটার্ন করা হয়।

SELECT
  campaign.name,
  customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true

কোনওটিই নয়

omit_unselected_resource_names-কে true হিসেবে নির্দিষ্ট করা হয়েছে এবং campaign.resource_name বা customer.resource_name কোনওটিই SELECT ধারাতে নেই।

SELECT
  campaign.name,
  campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
  • campaign.resource_name

omit_unselected_resource_names-কে true হিসেবে নির্দিষ্ট করা হয়েছে এবং SELECT ধারার অংশ হিসেবে campaign.resource_name-এর অনুরোধ করা হয়েছে।

ভাষার অতিরিক্ত নিয়ম

প্রতিটি ক্লজের উদাহরণের পাশাপাশি, Google Ads কোয়েরি ল্যাঙ্গুয়েজ নিম্নলিখিত আচরণগুলি সমর্থন করে:

  • কোয়েরির জন্য SELECT ক্লজে মূল রিসোর্স ফিল্ডের প্রয়োজন নেই। যেমন, আপনি ডেটা বেছে না নিয়েই তা ফিল্টার করতে এক বা একাধিক প্রধান রিসোর্স ফিল্ড ব্যবহার করতে পারেন:

    SELECT campaign.id
    FROM ad_group
    WHERE ad_group.status = 'PAUSED'
    
  • কোনও নির্দিষ্ট রিসোর্সের জন্য মেট্রিক এক্সক্লুসিভভাবে বেছে নেওয়া যেতে পারে; কোয়েরিতে রিসোর্স থেকে অন্য কোনও ফিল্ডের প্রয়োজন নেই:

    SELECT
      metrics.impressions,
      metrics.clicks,
      metrics.cost_micros
    FROM campaign
    
  • কোনও রিসোর্স ফিল্ড বা মেট্রিক ছাড়াই সেগমেন্টেশন ফিল্ড বেছে নেওয়া যেতে পারে:

    SELECT segments.device FROM campaign
    
  • resource_name ফিল্ড (যেমন, campaign.resource_name) ডেটা ফিল্টার বা অর্ডার করতে ব্যবহার করা যেতে পারে:

    SELECT
      campaign.id,
      campaign.name
    FROM campaign
    WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'