تقسیم بندی

بخش‌بندی در میانای کاربری Google Ads به‌عنوان منویی جداگانه دردسترس است. می‌توانید با افزودن فیلد مناسب به پُرسمان، بخش‌بندی را در Google Ads API پیاده‌سازی کنید. برای مثال، فرض کنید segments.device را به پُرسمانی اضافه می‌کنید. این کار منجر به گزارشی می‌شود که برای هر ترکیب دستگاه و منبع مشخص‌شده در بند FROM یک ردیف دارد و مقادیر آماری (ظهورها، کلیک‌ها، تبدیل‌ها، و غیره) بین آن‌ها تقسیم می‌شود.

در میانای کاربری Google Ads، در هر زمان فقط از یک بخش می‌توان استفاده کرد، اما با میانای برنامه‌سازی کاربردی می‌توانید چند بخش را در یک پُرسمان مشخص کنید.

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 بخش‌بندی می‌شود. فیلد resource_name منبع در عبارت FROM برگردانده می‌شود و سنجه‌ها براساس آن بخش‌بندی می‌شوند، حتی زمانی که فیلد resource_name به‌طور صریح در پُرسمان گنجانده نشده باشد. برای مثال، وقتی ad_group را به‌عنوان منبع در عبارت FROM مشخص می‌کنید، 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"
      }
    }
  ]
}

فیلد resource_name از adGroup همیشه برگردانده می‌شود زیرا 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" به دو گروه آگهی (شناسه 2222222222 و 33333333333) در یک تاریخ (2024-06-15) نسبت داده شده است. بنابراین، API طبق انتظار کار کرده است و در این مورد، شیء تکراری برنگردانده است.

فیلدهای بخش قابل‌انتخاب

همه فیلدهای بخش برای منبعی مشخص در عبارت FROM قابل‌انتخاب نیستند. به‌عنوان مثال، فرض کنید همچنان از منبع ad_group پُرسمان می‌کنید. برای اینکه فیلد بخش از منبع ad_group قابل‌انتخاب باشد، آن فیلد باید در فهرست Segments برای ad_group وجود داشته باشد. فهرست Segments بخش زرد رنگ جدول فیلدهای دردسترس در صفحه فراداده منبع ad_group است.

منابع بخش

هنگام انتخاب از برخی منابع، ممکن است این گزینه را داشته باشید که به‌طور ضمنی به منابع مرتبط بپیوندید با انتخاب فیلدهای آن‌ها در کنار فیلدهای منبع در عبارت FROM. این منابع مرتبط را می‌توانید در فهرست Attributed Resources در منبع در صفحه فراداده بند FROM پیدا کنید. در مورد منبع ad_group، خواهید دید که می‌توانید فیلدهایی را از منبع campaign نیز انتخاب کنید. فیلد resource_name هر Attributed Resources با حداقل یک فیلد در عبارت SELECT به‌طور خودکار برگردانده می‌شود، حتی زمانی که فیلد resource_name به‌طور صریح در پُرسمان گنجانده نشده باشد.

مشابه انتخاب فیلدهای Attributed Resource، می‌توانید فیلدهای Segmenting Resource را نیز انتخاب کنید. اگر منبعی خاص در صفحه فراداده خود دارای فهرست Segmenting Resources باشد، انتخاب فیلدها از یکی از آن منابع فهرست‌شده باعث می‌شود که پرسمان بیشتر توسط resource_name برگردانده‌شده از آن Segmenting Resource بخش‌بندی شود. به‌عنوان مثال، خواهید دید که منبع campaign به‌عنوان Segmenting Resource برای منبع campaign_budget فهرست شده است. انتخاب هر فیلد پویش، مانند campaign.name، از منبع campaign_budget نه تنها باعث می‌شود فیلد campaign.name برگردانده شود، بلکه باعث می‌شود فیلد campaign.resource_name برگردانده و بخش‌بندی شود.

قابلیت انتخاب بین بخش‌ها و سنجه‌ها

ممکن است فیلد بخش داده‌شده با برخی‌از فیلدهای بخش دیگر یا با برخی‌از فیلدهای سنجه‌ها سازگار نباشد. برای شناسایی اینکه کدام فیلدهای بخش با یکدیگر سازگار هستند، selectable_with فهرست بخش‌ها را در عبارت SELECT مرور کنید.

درمورد منبع ad_group، بیش‌از ۵۰ بخش دردسترس وجود دارد که می‌توانید انتخاب کنید. اما فهرست selectable_with برای segments.hotel_check_in_date مجموعه بسیار کوچک‌تری از بخش‌های سازگار است. این یعنی اگر فیلد segments.hotel_check_in_date را به عبارت SELECT اضافه کنید، بخش‌های دردسترس باقی‌مانده را برای انتخاب به تقاطع این دو فهرست محدود می‌کنید.

محدودیت‌های بخش مشترک

برخی‌از فیلدهای بخش محدودیت‌های انتخاب صریح دارند که مستلزم این است که در کنار بخش اصلی در عبارت SELECT درخواست شوند:

  • اگر segments.ad_sub_network_type را انتخاب کنید (که زیرشبکه‌های آگهی YouTube مثل «در جاری‌سازی»، «در فید»، و «کوته‌ویدیوها» را تفکیک می‌کند) باید segments.ad_network_type را هم انتخاب کنید.
  • در نسخه ۲۵ و جدیدتر، برای انتخاب 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) انتخاب می‌کنید:

  • مستثنی کردن ترافیک غیرکلیدواژه‌ای: اگر هرگونه فیلد segments.keyword.* را در عبارت SELECT خود بگنجانید، نتایج فقط به ردیف‌هایی محدود می‌شود که مستقیماً با معیار گروه آگهی کلیدواژه «شبکه جستجو» مرتبط هستند.
  • انواع پویش تحت‌تأثیر: درنتیجه، داده‌های انواع پویش یا گروه‌های آگهی که به کلیدواژه‌های «جستجو» متکی نیستند از نتایج مستثنی می‌شوند. این موارد شامل، اما نه محدود به، موارد زیر است:
    • آگهی‌های جستجوهای پویا (DSA): زیرا هدف‌های DSA براساس محتوای وب‌سایت است نه کلیدواژه‌ها.
    • پویش‌های Shopping: که به‌جای کلیدواژه‌ها از گروه‌های محصول استفاده می‌کنند.
    • پویش‌های «عملکرد بیشینه»: اگرچه «عملکرد بیشینه» ممکن است در «جستجو» ارائه شود، گزارش‌دهی آن معمولاً براساس همان معیارهای کلیدواژه بخش‌بندی نمی‌شود.
  • شبکه تبلیغات: فیلدهای 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