אפשר להטמיע פילוח ב-Google Ads API פשוט על ידי הוספת השדה המתאים לשאילתה. הפילוח זמין בממשק המשתמש של Google Ads בתור תפריט נפרד. לדוגמה, הוספת segments.device
לשאילתה מובילה לדוח עם שורה לכל שילוב של מכשיר והמשאב שצוין בתנאי FROM
, והערכים הסטטיסטיים (חשיפות, קליקים, המרות וכו') מתחלקים ביניהם.
בממשק המשתמש של Google Ads אפשר להשתמש רק בפלח אחד בכל פעם, אבל באמצעות ה-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"
}
},
...
]
}
שימו לב שבתוצאה לדוגמה שלמעלה, המאפיינים של האובייקט הראשון והשני, כולל שם המשאב, זהים. החשיפות מפולחות לפי device, וכך אפשר להחזיר שני אובייקטים או יותר באותו קמפיין.
פילוח סמוי
כל דוח מפולח בהתחלה לפי המשאב שצוין בפסקה 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
של 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
בדף המטא-נתונים, בחירת שדות מאחד מהמשאבים שברשימה תגרום לפילוח נוסף של השאילתה לפי שם המשאב של ה-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 > '2020-01-01' AND segments.date < '2020-02-01' |
תקף: השאילתה הזו מחזירה שמות של קמפיינים ולחיצות שמחולקים לפי תאריך לכל הימים בטווח התאריכים. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
תקף: השאילתה הזו מחזירה שמות של קמפיינים ולחיצות שמפולחים לפי חודש לכל הימים בטווח התאריכים. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
תקינה: השאילתה הזו מחזירה שמות של קמפיינים ולחיצות שמקובצים לפי רבעון ואז לפי חודש לכל החודשים בטווח השנים. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
שימו לב שבמשאב search_term_view
, הפילוח מתבצע גם באופן משתמע לפי קבוצת מודעות, ולא רק לפי מונח חיפוש, כפי שמשתקף במבנה של שם המשאב, שכולל גם את קבוצת המודעות. לכן יופיעו בתוצאות כמה שורות כפולות לכאורה עם אותם מונחי חיפוש, כשלמעשה השורות האלה היו שייכות לקבוצת מודעות אחרת:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
שני האובייקטים שמוחזרים בדוגמה הזו נראים ככפילות, אבל שמות המשאבים שלהם שונים, במיוחד בחלק 'קבוצת מודעות'. פירוש הדבר הוא שמונח החיפוש Google Photos משויך לשתי קבוצות המודעות (מזהה 2222222222
ו-33333333333
) באותו תאריך (15 ביוני 2015).
לכן אפשר להסיק שה-API פעל כמו שצריך ולא החזיר אובייקטים כפולים במקרה הזה.