בקטעים הבאים מוסבר איך יוצרים דוחות חיפוש ב-Search Ads 360 Reporting API.
שירות חיפוש
Search Ads 360 Reporting API מספק שירות מיוחד לחיפוש ולדיווח.
SearchAds360Service
הוא שירות מאוחד לאחזור אובייקטים ולדיווח, שמספק שתי שיטות חיפוש: SearchStream
ו-Search
. החיפושים מועברים באמצעות מחרוזת שאילתה שנכתבת בשפת השאילתות של Search Ads 360. אפשר להגדיר שאילתות כדי:
- אחזור מאפיינים ספציפיים של אובייקטים.
- אחזור מדדי ביצועים של אובייקטים לפי טווח תאריכים.
- סידור אובייקטים על סמך המאפיינים שלהם.
- סינון התוצאות באמצעות תנאים שמציינים אילו אובייקטים להחזיר
- להגביל את מספר האובייקטים שיוחזרו.
בשתי שיטות החיפוש מוצגות כל השורות שתואמות לשאילתה. לדוגמה, כשמאחזרים את הערכים campaign.id
, campaign.name
ו-metrics.clicks
, ה-API מחזיר את הערך SearchAds360Row
שמכיל אובייקט קמפיין עם השדות id
ו-name
מוגדרים, ואובייקט metrics
עם השדה clicks
מוגדר.
שיטות חיפוש
SearchStream
שולחת בקשה אחת ומתחילה חיבור מתמיד ל-Search Ads 360 Reporting API, ללא קשר לגודל הדוח.
- הורדת חבילות הנתונים מתחילה מיד, והתוצאה כולה מאוחסנת במטמון הנתונים.
- הקוד יכול להתחיל לקרוא את הנתונים שנשמרו במאגר ללא צורך להמתין לסיום של כל הסטרימינג.
Search
שליחת מספר בקשות מחולקות לדפים כדי להוריד את הדוח כולו.
בדרך כלל, SearchStream
מניב ביצועים טובים יותר כי הוא מבטל את זמן הנסיעה הלוך ושוב ברשת שנדרש כדי לבקש דפים נפרדים. מומלץ להשתמש ב-SearchStream
בכל הדוחות שכוללים יותר מ-10,000 שורות. אין הבדל משמעותי בביצועים בין השיטות בדוחות קטנים יותר (פחות מ-10,000 שורות).
השיטה שבה אתם משתמשים לא משפיעה על המכסות והמגבלות של ה-API: שאילתה או דוח יחידים נספרים כפעולה אחת, ללא קשר לאופן שבו התוצאות מוצגות (בדפים או בסטרימינג).
שאילתת חיפוש לדוגמה
השאילתה לדוגמה הזו מחזירה נתוני ביצועים של חשבון ב-30 הימים האחרונים לפי קמפיין, עם פילוח לפי מכשיר:
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.average_cpc,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
שליחת בקשה
כדי לשלוח בקשה, צריך להעביר מחרוזת customer_id
ומחרוזת query
לממשק SearchAds360Service.SearchStream
או SearchAds360Service.Search
.
הבקשה מורכבת מ-POST
של HTTP לשרת של Search Ads 360 Reporting API באחת מכתובות ה-URL הבאות:
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search
לפניכם דוגמה מלאה להגדרת הדוח ל-searchStream
שמצורפת לבקשת HTTP POST
:
POST /VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream HTTP/1.1 Host: searchads360.googleapis.com User-Agent: curl Content-Type: application/json Accept: application/json Authorization: Bearer [OAUTH_2.0_ACCESS_TOKEN] Parameters: { "query" : "SELECT campaign.name, campaign.status, segments.device, metrics.impressions, metrics.clicks, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS" }
עיבוד התשובה
הפונקציה SearchAds360Service
מחזירה רשימה של אובייקטים מסוג SearchAds360Row
.
כל SearchAds360Row
מייצג אובייקט שהשאילתה החזירה. כל אובייקט מורכב מקבוצת מאפיינים שמאוכלסים על סמך השדות שביקשת בפסקה SELECT
של השאילתה. מאפיינים שלא נכללים בפסקה SELECT
לא מאוכלסים באובייקטים בתגובה.
לדוגמה, השאילתה הבאה מאכלסת כל אובייקט SearchAds360Row
רק עם הערכים campaign.id
, campaign.name
ו-campaign.status
. מאפיינים אחרים, כמו campaign.engine_id
או campaign.bidding_strategy_type
, לא נכללים.
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
מסמכי עזר
הקטע Reference כולל את כל המידע הדרוש לשימוש נכון בכל ארטיפקט. יש דף אחד לכל משאב, למשל ad_group
ו-campaign
.
בדפים segments
ו-metrics
מפורטים כל השדות של המדדים והפלחים הזמינים.
יש משאבים, פלחים ומדדים שלא תואמים ולא ניתן להשתמש בהם ביחד, ויש כאלה שתואמים לחלוטין ומשתלימים זה עם זה. כל דף משאב כולל את הפרטים הבאים (אם הם זמינים ורלוונטיים) ועוד:
- משאבים שמשויכים
בחלק מהמשאבים, יכול להיות שתוכלו לאחד משאבים קשורים באופן משתמע על ידי בחירת השדות שלהם יחד עם השדות של המשאב בפסקה
FROM
. לדוגמה, המשאבcampaign
הוא משאב שמשויך למשאבad_group
. המשמעות היא שאפשר לכלול בשאילתה שדות כמוcampaign.id
ו-campaign.bidding_strategy_type
כשמשתמשים ב-ad_group
בתנאיFROM
.בקטע משאבים משויכים מפורטים המשאבים המשויכים הזמינים. לא לכל המשאבים יש משאבים משויכים.
- העמודה 'שדות משאבים'
כל השדות של המשאב נכללים בעמודה Resource fields. כל שדה משאב מקשר לפרטים נוספים על השדה, כולל התיאור, הקטגוריה, סוג הנתונים, כתובת ה-URL של הסוג וההגדרה של סינון, בחירה, מיון וחזרה על השדה.
- העמודה 'פלחים'
לא כל שדות הפלח ניתנים לבחירה במשאב נתון.
בעמודה Segments מפורטים השדות
segments
שבהם אפשר להשתמש באותה טענתSELECT
כמו בשדות של המשאב. כל שדה מקשר לפרטים המלאים על השדה, כולל התיאור, הקטגוריה, סוג הנתונים, כתובת ה-URL של הסוג וההגדרה של אפשרויות הסינון, הבחירה, המיון והחזרה על השדה. אם אתם משתמשים במשאב בפסקהFROM
, תוכלו להשתמש בתפריט הנפתח Yes/No כדי לסנן פלחים שלא זמינים.- עמודה של מדדים
לא כל שדות המדדים ניתנים לבחירה במשאב נתון.
בעמודה Metrics מפורטים השדות
metrics
שבהם אפשר להשתמש באותה טענתSELECT
כמו בשדות של המשאב. כל שדה מקשר לפרטים המלאים על השדה, כולל התיאור, הקטגוריה, סוג הנתונים, כתובת ה-URL של הסוג וההגדרה של אפשרויות הסינון, הבחירה, המיון והחזרה על השדה. אם אתם משתמשים במשאב בפסקהFROM
, תוכלו להשתמש בתפריט הנפתח Yes/No כדי לסנן מדדים שאינם זמינים.
- פילוח משאבים
לחלק מהמשאבים יש שדות של פילוח משאבים שאפשר לבחור כשהמשאבים נמצאים בפסקה
FROM
. לדוגמה, אם בוחרים בשדה משאב שלcampaign
, כמוcampaign.name
, כשמשתמשים ב-campaign_budget
בפסקהFROM
, הערךcampaign.resource_name
יוחזר באופן אוטומטי ויתבצע בו פילוח, כיcampaign
הוא משאב פילוח שלcampaign_budget
.בקטע משאבים לפילוח מפורטים המשאבים לפילוח שזמינים. לא לכל המשאבים יש משאבים לפילוח.
- אפשר לבחור באמצעות
חלק מהשדות של
segments
לא תואמים למשאבים, לפלחים ולמדדים אחרים.בדף
segments
יש תפריט נפתח Selectable with לכל שדהsegments
, שמציג את כל שדות המשאבים, שדות ה-metrics
ושדות ה-segments
התואמים שאפשר לכלול בתנאיSELECT
.
פילוח
כדי לפלח את תוצאות החיפוש, מוסיפים שדה segments.FIELD_NAME
לקלוזה SELECT
של השאילתה.
לדוגמה, הערך segments.device
בשאילתה הבאה יוצר דוח עם שורה של הערך impressions
של כל מכשיר במשאב שצוין בתנאי FROM
.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
התוצאות שמוחזרות על ידי SearchAds360Service.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"
}
},
...
]
}
בקישור הבא אפשר למצוא רשימה של שדות הפלחים הזמינים שאפשר להשתמש בהם: segments
.
פלחים מרובים
אפשר לציין כמה פלחים בפסקה SELECT
של השאילתה. התגובה מכילה אובייקט SearchAds360Row
אחד לכל שילוב של המכונה של המשאב הראשי שצוין בפסקה FROM
, והערך של כל שדה segment
שנבחר.
לדוגמה, השאילתה הבאה תחזיר שורה אחת לכל שילוב של campaign
, segments.ad_network_type
ו-segments.date
.
SELECT
segments.ad_network_type
segments.date
FROM campaign
שימו לב שהתוצאות מחולקות באופן משתמע לפי כל מכונה של המשאב הראשי, אבל לא לפי הערכים של השדות הנבחרים בנפרד.
השאילתה לדוגמה הבאה מניבה שורה אחת לכל קמפיין, ולא שורה אחת לכל ערך ייחודי בשדה campaign.status
.
SELECT
campaign.status,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS
פילוח סמוי
כל דוח מפולח בהתחלה לפי המשאב שצוין בפסקה FROM
. המדדים מחולקים לפי השדה resource_name
של המשאב הזה
השאילתה לדוגמה הזו מחזירה באופן אוטומטי את הערך 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"
}
}
]
}
פלחי תאריכים מרכזיים
אפשר להשתמש בפלחים של תאריכים מרכזיים בתנאי WHERE
כדי לציין תאריך או תקופה.
שדות הפלחים הבאים נקראים פלחי תאריכים מרכזיים:
segments.date
, segments.week
, segments.month
, segments.quarter
ו-segments.year
.
השאילתה לדוגמה הזו מחזירה את המדדים clicks
של הקמפיין ב-30 הימים האחרונים.
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
שדות של פלחי תאריכים מרכזיים הם חריג לכלל הכללי שאסור להשתמש בשדה פלחים בפסקה WHERE
, אלא אם כוללים את השדה גם בפסקה SELECT
. מידע נוסף זמין בקטע סינון אסור.
כללי הליבה של פלחי התאריכים:
אפשר להשתמש בשדה תאריך ליבה בפסקה
WHERE
בלי לכלול אותו בפסקהSELECT
. אפשר גם לכלול את השדה בשתי התנאים, אם רוצים.השאילתה לדוגמה הזו מחזירה את המדדים של
clicks
לפי שם הקמפיין במהלך טווח התאריכים. שימו לב ש-segments.date
לא נכלל בפסקהSELECT
.SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
אם כוללים שדה תאריך ליבה בפסקה
SELECT
, צריך לציין תאריך סופי או טווח תאריכים בפסקהWHERE
. השדות שצוינו בתנאיSELECT
ו-WHERE
לא חייבים להיות זהים.השאילתה לדוגמה הזו מחזירה את המדדים של
clicks
לפי שם הקמפיין, בחלוקה לפי חודש, לכל הימים בטווח התאריכים.SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
תאריכים בפורמט ISO 8601
אפשר להשתמש בפורמט YYYY-MM-DD
(ISO 8601) כדי לציין תאריכים וטווחי תאריכים, לדוגמה:
WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'
בקטעי תאריכים מרכזיים שדורשים תקופת זמן (segments.week
, segments.month
, segments.quarter
), אפשר להשתמש במפעיל =
עם היום הראשון של התקופה, לדוגמה:
WHERE segments.month = '2022-06-01'
תאריכים מוגדרים מראש
אפשר גם להשתמש בתאריכים ובטווחי התאריכים המוגדרים מראש הבאים:
תאריכים מוגדרים מראש | |
---|---|
TODAY |
רק היום. |
YESTERDAY |
רק אתמול. |
LAST_7_DAYS |
7 הימים הקודמים, לא כולל היום. |
LAST_BUSINESS_WEEK |
שבוע העסקים הקודם של 5 ימים (שני עד שישי). |
THIS_MONTH |
כל הימים בחודש הנוכחי. |
LAST_MONTH |
כל הימים בחודש הקודם. |
LAST_14_DAYS |
14 הימים הקודמים, לא כולל היום. |
LAST_30_DAYS |
30 הימים האחרונים, לא כולל היום. |
THIS_WEEK_SUN_TODAY |
התקופה שבין יום ראשון הקודם לבין היום הנוכחי. |
THIS_WEEK_MON_TODAY |
התקופה שבין יום שני הקודם ליום הנוכחי. |
LAST_WEEK_SUN_SAT |
תקופה של 7 ימים שמתחילה ביום ראשון הקודם. |
LAST_WEEK_MON_SUN |
תקופה של 7 ימים שמתחילה ביום שני הקודם. |
דוגמה:
WHERE segments.date DURING LAST_30_DAYS
מדדים של אפס
כשמריצים שאילתה, יכול להיות שתראו מדדים עם ערך אפס לישויות מסוימות. איך מטפלים במדדים עם ערך אפס בשאילתות
סוגי enum מסוג UNKNOWN
אם משאב מוחזר עם סוג הנתונים UNKNOWN
enum, המשמעות היא שהסוג לא נתמך באופן מלא בגרסה של ה-API. יכול להיות שהמשאבים האלה נוצרו באמצעות ממשקים אחרים. לדוגמה, קמפיין או מודעה חדשים הוצגו בממשק המשתמש של Search Ads 360, אבל עדיין אין תמיכה בהם בגרסה של ה-API שאליה אתם שולחים את השאילתה.
עדיין אפשר לבחור מדדים כשסוג המשאב הוא UNKNOWN
, אבל חשוב לזכור את הנקודות הבאות:
- יכול להיות שסוג
UNKNOWN
של משאב יקבל תמיכה בשלב מאוחר יותר, אבל הוא יכול להישאר בתורUNKNOWN
ללא הגבלת זמן. - אובייקטים חדשים מסוג
UNKNOWN
עשויים להופיע בכל שלב. האובייקטים האלה תואמים לאחור כי ערך המאפיין enum כבר זמין. אנחנו מוסיפים את המשאבים האלה בהדרגה, לפי זמינותם, כדי שתהיה לכם תמונה מדויקת של החשבון. המשאבUNKNOWN
עשוי להופיע בגלל פעילות חדשה בחשבון דרך ממשקים אחרים, או בגלל שהתמיכה במשאב הופסקה באופן רשמי. - יכול להיות שלמשאבי
UNKNOWN
יהיו מדדים מפורטים שאפשר להריץ עליהם שאילתות. - בדרך כלל, המשאבים מסוג
UNKNOWN
גלויים במלואם בממשק המשתמש של Search Ads 360.