بخش بندی در رابط کاربری Google Ads به عنوان یک منوی جداگانه در دسترس است. می توانید با افزودن فیلد مناسب به یک پرس و جو، بخش بندی را در Google Ads API پیاده سازی کنید. برای مثال، فرض کنید segments.device
به یک کوئری اضافه کنید. این منجر به یک گزارش با یک ردیف برای هر ترکیبی از دستگاه و منبع مشخص شده در عبارت FROM
میشود و مقادیر آماری (نمایشها، کلیکها، تبدیلها و غیره) بین آنها تقسیم میشود.
در رابط کاربری گوگل ادز، هر بار فقط می توان از یک بخش استفاده کرد، اما با 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
تقسیم بندی می شود. فیلد 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
مشخص شده است.
فیلدهای بخش قابل انتخاب
همه فیلدهای بخش برای یک منبع معین در عبارت FROM
قابل انتخاب نیستند. به عنوان مثال، فرض کنید به پرس و جو از منبع ad_group
ادامه می دهید. برای اینکه یک قسمت بخش از منبع ad_group
قابل انتخاب باشد، باید آن قسمت در لیست Segments
for 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
، بیش از 50 بخش موجود است که می توانید انتخاب کنید. با این حال، لیست selectable_with
برای segments.hotel_check_in_date
مجموعه بسیار کوچکتری از بخش های سازگار است. این بدان معناست که اگر قسمت segments.hotel_check_in_date
را به بند SELECT
اضافه کنید، بخشهای موجودی را که برای انتخاب باقی گذاشتهاید به تقاطع این دو لیست محدود میکنید.
وقتی بخشهای خاصی را اضافه میکنید، ممکن است معیارهای موجود در ردیف خلاصه کاهش یابد. وقتی segments.keyword.info.match_type
با FROM ad_group_ad
به یک جستار اضافه میشود، آن بخش به درخواست میگوید فقط ردیفهایی از دادهها را دریافت کند که دارای کلمات کلیدی هستند و هر ردیفی را که با کلمه کلیدی مرتبط نیست حذف کند. در این حالت، معیارها پایین تر خواهند بود زیرا معیارهای غیرکلیدی را حذف می کنند.
قوانین برای بخش ها در عبارت 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-02-01' |
معتبر: این عبارت نامهای کمپین و کلیکهای تقسیمبندی شده بر اساس تاریخ را برای همه روزهای محدوده تاریخ برمیگرداند. | SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
معتبر: این پرس و جو نام و کلیک های کمپین را به تفکیک ماه برای همه روزهای محدوده تاریخ برمی گرداند. | SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
معتبر: این پرس و جو نام و کلیک های کمپین را به تفکیک سه ماهه و سپس بر اساس ماه برای تمام ماه های محدوده سال برمی گرداند. | SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2019 AND segments.year < 2024 |
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"
}
}
]
}
اگرچه دو شیء برگشتی در این مثال تکراری به نظر می رسند، اما نام منابع آنها در واقع متفاوت است، به خصوص در قسمت "گروه تبلیغات". این بدان معناست که عبارت جستجوی "عکسهای گوگل" به دو گروه تبلیغاتی (ID 2222222222
و 33333333333
) در همان تاریخ (15/06/2024) نسبت داده میشود. بنابراین، میتوان نتیجه گرفت که API همانطور که در نظر گرفته شده بود کار میکرد و در این مورد اشیاء تکراری را برنمیگرداند.