בקטעים הבאים מוסבר איך ליצור דוחות חיפוש ב-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.