সেগমেন্টেশন

Google Ads UI-তে আলাদা মেনু হিসেবে সেগমেন্টেশন উপলভ্য। আপনি কোনও কোয়েরিতে সঠিক ফিল্ড যোগ করে Google Ads API-তে সেগমেন্টেশন প্রয়োগ করতে পারবেন। যেমন, ধরুন আপনি কোনও কোয়েরিতে segments.device যোগ করেছেন। এর ফলে, FROM ক্লজে উল্লেখ করা প্রতিটি ডিভাইস ও নির্দিষ্ট রিসোর্সের কম্বিনেশনের জন্য একটি করে সারি সহ রিপোর্ট তৈরি হয় এবং পরিসংখ্যানগত ভ্যালু (ইম্প্রেশন, ক্লিক, কনভার্সন ইত্যাদি) তাদের মধ্যে ভাগ করে দেখানো হয়।

Google Ads UI-তে, একবারে শুধুমাত্র একটি সেগমেন্ট ব্যবহার করা যেতে পারে, তবে API-এর মাধ্যমে আপনি একই কোয়েরিতে একাধিক সেগমেন্ট নির্দিষ্ট করতে পারেন।

SELECT
  campaign.name,
  campaign.status,
  segments.device,
  metrics.impressions
FROM campaign

GoogleAdsService.SearchStream-এ এই কোয়েরি পাঠানোর ফলে যে ফলাফল পাওয়া যায় তা এই JSON স্ট্রিংয়ের মতো:

{
  "results":[
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"10922"
      },
      "segments":{
        "device":"MOBILE"
      }
    },
    {
      "campaign":{
        "resourceName":"customers/1234567890/campaigns/111111111",
        "name":"Test campaign",
        "status":"ENABLED"
      },
      "metrics":{
        "impressions":"28297"
      },
      "segments":{
        "device":"DESKTOP"
      }
    }
  ]
}

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

ইমপ্লিসিট সেগমেন্টেশন

প্রতিটি রিপোর্ট প্রথমে FROM ক্লজে উল্লেখ করা রিসোর্স অনুযায়ী ভাগ করা হয়। FROM ক্লজের রিসোর্সের resource_name ফিল্ড ফেরত পাঠানো হয় এবং এর মাধ্যমে মেট্রিক সেগমেন্ট করা হয়, এমনকি resource_name ফিল্ড কোয়েরিতে স্পষ্টভাবে অন্তর্ভুক্ত না থাকলেও। যেমন, আপনি যখন FROM ক্লজে রিসোর্স হিসেবে ad_group নির্দিষ্ট করেন, তখন ad_group.resource_name অটোমেটিক ফেরত আসে এবং মেট্রিক ad_group লেভেলে এর বিপরীতে অন্তর্নিহিতভাবে সেগমেন্ট করে।

তাই এই কোয়েরির জন্য:

SELECT metrics.impressions
FROM ad_group

আপনি এই ধরনের JSON স্ট্রিং পাবেন:

{
  "results":[
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/2222222222"
      },
      "metrics":{
        "impressions":"237"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/33333333333"
      },
      "metrics":{
        "impressions":"15"
      }
    },
    {
      "adGroup":{
        "resourceName":"customers/1234567890/adGroups/44444444444"
      },
      "metrics":{
        "impressions":"0"
      }
    }
  ]
}

adGroup-এর resource_name ফিল্ড সবসময় রিটার্ন করা হয় কারণ ad_group-কে FROM ক্লজে রিসোর্স হিসেবে উল্লেখ করা হয়েছে।

search_term_view

search_term_view রিসোর্সটি শুধু সার্চ করা শব্দ নয়, বিজ্ঞাপন গ্রুপ দ্বারাও ইমপ্লিসিটভাবে সেগমেন্ট করা হয়, যা এর রিসোর্সের নাম-এর গঠন থেকে বোঝা যায়, যেখানে বিজ্ঞাপন গ্রুপও অন্তর্ভুক্ত থাকে। তাই, একই সার্চ করা শব্দ সহ আপনি ডুপ্লিকেট সারি পেতে পারেন যা আপনার ফলাফলে দেখা যাবে যখন সেই সারিগুলি বিভিন্ন বিজ্ঞাপন গ্রুপের অন্তর্গত হবে:

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2024-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2024-06-15"
      }
    }
  ]
}

এই উদাহরণে দুটি রিটার্ন করা অবজেক্ট ডুপ্লিকেট বলে মনে হলেও, তাদের রিসোর্সের নাম আসলে আলাদা, বিশেষ করে বিজ্ঞাপন গ্রুপ আইডির অংশে। এর অর্থ হল, সার্চ করা শব্দ "google photos" একই তারিখে (2024-06-15) দুটি বিজ্ঞাপন গ্রুপের (ID 2222222222 এবং 33333333333) সাথে অ্যাট্রিবিউট করা হয়েছে। তাই, API প্রত্যাশা অনুযায়ী কাজ করেছে এবং এই ক্ষেত্রে ডুপ্লিকেট অবজেক্ট দেখায়নি।

বেছে নেওয়া যায় এমন সেগমেন্ট ফিল্ড

FROM ক্লজে প্রদত্ত রিসোর্সের জন্য সব সেগমেন্ট ফিল্ড বেছে নেওয়া যায় না। উদাহরণস্বরূপ, ধরুন আপনি ad_group রিসোর্স থেকে কোয়েরি করা চালিয়ে যাচ্ছেন। ad_group রিসোর্স থেকে কোনও সেগমেন্ট ফিল্ড বেছে নিতে হলে, ad_group-এর জন্য Segments তালিকায় সেই ফিল্ডটি থাকতে হবে। Segments তালিকা হল ad_group রিসোর্সের মেটাডেটা পৃষ্ঠায় উপলভ্য ফিল্ড টেবিলের হলুদ অংশ।

সেগমেন্ট রিসোর্স

কিছু রিসোর্স থেকে বেছে নেওয়ার সময়, FROM ক্লজে রিসোর্সের ফিল্ডের পাশাপাশি সম্পর্কিত রিসোর্সের ফিল্ড বেছে নিয়ে আপনি হয়ত সেগুলিতে ইমপ্লিসিটলি যোগ দেওয়ার বিকল্প পেতে পারেন। এইসব সম্পর্কিত রিসোর্স FROM ধারার মেটাডেটা পৃষ্ঠায় রিসোর্সের Attributed Resources তালিকায় দেখা যাবে। ad_group রিসোর্সের ক্ষেত্রে, আপনি দেখতে পাবেন যে campaign রিসোর্স থেকেও আপনি ফিল্ড বেছে নিতে পারবেন। SELECT ক্লজে অন্তত একটি ফিল্ড সহ যেকোনও Attributed Resources-এর resource_name ফিল্ড অটোমেটিক ফেরত পাঠানো হয়, এমনকি কোয়েরিতে resource_name ফিল্ড স্পষ্টভাবে অন্তর্ভুক্ত না থাকলেও।

Attributed Resourceটি ফিল্ড বেছে নেওয়ার মতো, আপনি Segmenting Resourceটি ফিল্ডও বেছে নিতে পারবেন। কোনও রিসোর্সের মেটাডেটা পৃষ্ঠায় Segmenting Resources তালিকা থাকলে, সেই তালিকাভুক্ত রিসোর্স থেকে ফিল্ড বেছে নিলে, কোয়েরি আরও ভাগ হয়ে যায় এবং সেই Segmenting Resource-এর resource_name ফেরত আসে। উদাহরণস্বরূপ, আপনি দেখতে পাবেন যে campaign রিসোর্সটি campaign_budget রিসোর্সের জন্য Segmenting Resource হিসেবে তালিকাভুক্ত করা হয়েছে। campaign_budget রিসোর্স থেকে campaign.name-এর মতো যেকোনও ক্যাম্পেন ফিল্ড বেছে নিলে, শুধু campaign.name ফিল্ডই ফেরত আসে না, campaign.resource_name ফিল্ডও ফেরত আসে এবং সেগমেন্ট করা হয়।

সেগমেন্ট ও মেট্রিকের মধ্যে বেছে নেওয়ার সুবিধা

প্রদত্ত সেগমেন্ট ফিল্ড, অন্য কিছু সেগমেন্ট ফিল্ড বা কিছু মেট্রিক ফিল্ডের সাথে মানানসই নাও হতে পারে। কোন সেগমেন্ট ফিল্ডগুলি একে অপরের সাথে মানানসই তা শনাক্ত করতে, SELECT ক্লজে সেগমেন্টের selectable_with তালিকা পর্যালোচনা করুন।

ad_group রিসোর্সের ক্ষেত্রে, ৫০টিরও বেশি উপলভ্য সেগমেন্ট আছে যা আপনি বেছে নিতে পারবেন। তবে, segments.hotel_check_in_date-এর জন্য selectable_with-এর তালিকায় মানানসই সেগমেন্টের অনেক ছোট সেট রয়েছে। এর অর্থ হল, আপনি SELECT ক্লজে segments.hotel_check_in_date ফিল্ড যোগ করলে, এই দুটি তালিকার ইন্টারসেকশন থেকে বেছে নেওয়ার জন্য আপনার কাছে উপলভ্য সেগমেন্ট সীমিত হয়ে যায়।

জয়েন্ট সেগমেন্ট সংক্রান্ত বাধ্যবাধকতা

কিছু সেগমেন্ট ফিল্ডে স্পষ্ট নির্বাচন সংক্রান্ত সীমাবদ্ধতা আছে যার জন্য SELECT ক্লজে মূল সেগমেন্টের সাথে অনুরোধ করতে হবে:

  • segments.ad_sub_network_type (যা ইন-স্ট্রিম, ইন-ফিড ও Shorts-এর মতো YouTube বিজ্ঞাপন সাব-নেটওয়ার্ককে ভেঙে দেয়) বেছে নিলে আপনাকে segments.ad_network_type বিকল্পও বেছে নিতে হবে।
  • v25 এবং এর পরবর্তী ভার্সনে, segments.ad_sub_format_type (যা YouTube ইন-স্ট্রিম স্কিপ করা যায় না এমন বিজ্ঞাপনকে সময়সীমা অনুযায়ী ভাগ করে) বেছে নিলে আপনাকে segments.ad_format_type-ও বেছে নিতে হবে।

সেগমেন্ট বেছে নেওয়ার মাধ্যমে ইমপ্লিসিট ফিল্টারিং

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

segments.keyword.*-এর প্রভাব

এই আচরণের একটি সাধারণ এবং গুরুত্বপূর্ণ উদাহরণ হল segments.keyword-এর অধীনে যেকোনও ফিল্ড বেছে নেওয়া (যেমন segments.keyword.info.text এবং segments.keyword.ad_group_criterion):

  • কীওয়ার্ড নয় এমন ট্রাফিক বাদ দেওয়া: আপনি যদি SELECT ক্লজে কোনও segments.keyword.* ফিল্ড অন্তর্ভুক্ত করেন, তাহলে ফলাফল শুধুমাত্র সেইসব সারিতে সীমাবদ্ধ থাকে যা সরাসরি সার্চ নেটওয়ার্ক কীওয়ার্ড বিজ্ঞাপন গ্রুপ ক্রাইটেরিয়ার সাথে যুক্ত।
  • প্রভাবিত ক্যাম্পেনের ধরন: এর ফলে, সার্চ কীওয়ার্ডের উপর নির্ভর করে না এমন ক্যাম্পেনের ধরন বা বিজ্ঞাপন গ্রুপের ডেটা ফলাফল থেকে বাদ দেওয়া হয়। এর মধ্যে এগুলি সহ আরও অনেক কিছু পড়ে:
    • ডায়নামিক সার্চ বিজ্ঞাপন (DSA): কারণ DSA টার্গেট কীওয়ার্ডের পরিবর্তে ওয়েবসাইটের কন্টেন্টের উপর নির্ভর করে।
    • শপিং ক্যাম্পেন: যা কীওয়ার্ডের পরিবর্তে প্রোডাক্ট গ্রুপ ব্যবহার করে।
    • পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন: পারফর্ম্যান্স ম্যাক্স ক্যাম্পেন Search-এ দেখানো হলেও, এর রিপোর্টিং সাধারণত একই কীওয়ার্ডের মাপকাঠি অনুযায়ী সেগমেন্ট করা হয় না।
  • ডিসপ্লে নেটওয়ার্ক: segments.keyword.* ফিল্ড সার্চ নেটওয়ার্কে ব্যবহার করা কীওয়ার্ডের সাথে সম্পর্কিত। এগুলি ডিসপ্লে নেটওয়ার্ক কীওয়ার্ড বা অন্যান্য ডিসপ্লে টার্গেটিং পদ্ধতি অনুযায়ী সেগমেন্ট করে না।

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

কোনও সেগমেন্ট WHERE ক্লজে থাকলে, সেটি অবশ্যই SELECT ক্লজেও থাকতে হবে। এই নিয়মের ব্যতিক্রম হল নিম্নলিখিত তারিখ সেগমেন্ট, যেগুলিকে কোর ডেট সেগমেন্ট বলা হয়:

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

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

segments.date, segments.week, segments.month, segments.quarter, এবং segments.year সেগমেন্টগুলি নিম্নলিখিতভাবে কাজ করে:

  • এইসব সেগমেন্ট WHERE ক্লজে ফিল্টার করা যেতে পারে, তবে SELECT ক্লজে দেখানো হবে না।
  • এইসব সেগমেন্টের যেকোনও একটি SELECT ক্লজে থাকলে, কোর ডেট সেগমেন্ট দিয়ে তৈরি একটি নির্দিষ্ট তারিখের রেঞ্জ অবশ্যই WHERE ক্লজে উল্লেখ করতে হবে। তারিখের সেগমেন্টগুলি SELECT-এ উল্লেখ করা সেগমেন্টের মতো একই হতে হবে না।

উদাহরণ

ভুল: যেহেতু segments.date SELECT ক্লজে আছে, তাই আপনাকে WHERE ক্লজে segments.date, segments.week, segments.month, segments.quarter বা segments.year-এর জন্য একটি নির্দিষ্ট তারিখের রেঞ্জ উল্লেখ করতে হবে।
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
সঠিক: এই কোয়েরি ক্যাম্পেনের নাম এবং অন্তর্ভুক্ত তারিখের রেঞ্জের মধ্যে হওয়া ক্লিক দেখায়। মনে রাখবেন যে segments.date-কে SELECT ক্লজে দেখানোর প্রয়োজন নেই।
SELECT
  campaign.name,
  metrics.clicks
FROM campaign
WHERE segments.date >= '2024-01-01'
  AND segments.date <= '2024-01-31'
বৈধ: এই কোয়েরি ক্যাম্পেনের নাম এবং অন্তর্ভুক্ত তারিখের রেঞ্জের মধ্যে সব দিনের জন্য তারিখ অনুযায়ী ভাগ করা ক্লিক দেখায়।
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date >= '2024-01-01'
  AND segments.date <= '2024-01-31'
সঠিক: এই কোয়েরি ক্যাম্পেনের নাম এবং অন্তর্ভুক্ত তারিখের রেঞ্জের মধ্যে সব দিনের জন্য মাস অনুযায়ী ভাগ করা ক্লিক দেখায়।
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date >= '2024-01-01'
  AND segments.date <= '2024-01-31'
সঠিক: এই কোয়েরি ক্যাম্পেনের নাম এবং ক্লিক ফিরিয়ে দেয় যা কোয়ার্টার এবং তারপর অন্তর্ভুক্ত বছরের রেঞ্জের সব মাসের জন্য মাস অনুযায়ী ভাগ করা থাকে।
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year >= 2020
  AND segments.year <= 2024