בקטעים הבאים מוסבר איך ליצור דוחות חיפוש ב-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
enum, המשמעות היא שהסוג לא נתמך באופן מלא בגרסה של ה-API. יכול להיות שהמשאבים האלה נוצרו דרך ממשקים אחרים. לדוגמה, מודעה או קמפיין חדשים מוצגים בממשק המשתמש של Search Ads 360, אבל הם עדיין לא נתמכים בגרסת ה-API שאליה אתם שולחים את השאילתה.
עדיין אפשר לבחור מדדים כשסוג המשאב הוא UNKNOWN
, אבל חשוב לזכור את הנקודות הבאות:
- יכול להיות שסוג
UNKNOWN
של משאב יקבל תמיכה בשלב מאוחר יותר, אבל הוא יכול להישאר בתורUNKNOWN
ללא הגבלת זמן. - תמיד יכולים להופיע אובייקטים חדשים מסוג
UNKNOWN
. האובייקטים האלו תואמים לאחור כי ערך ה-enum כבר זמין. אנחנו משיקים משאבים שקשורים לשינוי הזה ברגע שהם זמינים, כדי שתוכלו לקבל תמונה מדויקת של החשבון שלכם. המשאבUNKNOWN
עשוי להופיע בגלל פעילות חדשה בחשבון דרך ממשקים אחרים, או בגלל שהתמיכה במשאב הופסקה באופן רשמי. - יכול להיות שלמשאבי
UNKNOWN
יהיו מדדים מפורטים שאפשר להריץ עליהם שאילתות. - בדרך כלל, המשאבים מסוג
UNKNOWN
גלויים במלואם בממשק המשתמש של Search Ads 360.