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

রিসোর্স, সেগমেন্ট ও মেট্রিক ফিল্ডের জন্য কোয়েরি 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 ক্লজে শুধুমাত্র একটি রিসোর্স নির্দিষ্ট করা যেতে পারে। FROM ক্লজটি প্রয়োজন GoogleAdsService Search বা SearchStream পদ্ধতিতে কোয়েরি করার জন্য। তবে, 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 হিসেবে নির্দিষ্ট করা হয়েছে এবং campaign.resource_name-কে SELECT ক্লজের অংশ হিসেবে অনুরোধ করা হয়েছে।

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

প্রতিটি ক্লজের উদাহরণের পাশাপাশি, 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'