בקטעים הבאים מוסבר איך ליצור דוחות חיפוש ב-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.
הבקשה מורכבת מ-HTTP POST לשרת של 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.בקטע Attributed resources (משאבים משויכים) מפורטים המשאבים המשויכים שזמינים. לא לכל המשאבים יש משאבים משויכים.
- העמודה 'שדות משאבים'
כל השדות של המשאב נכללים בעמודה Resource fields. כל שדה משאב מקשר לפרטים נוספים על השדה, כולל התיאור, הקטגוריה, סוג הנתונים, כתובת ה-URL של הסוג וההגדרה של אפשרות הסינון, הבחירה, המיון והחזרה.
- העמודה 'פלחים'
לא ניתן לבחור את כל שדות הפלחים עם משאב נתון.
בעמודה Segments מפורטים השדות
segmentsשאפשר להשתמש בהם באותו סעיףSELECTכמו השדות של המשאב. כל שדה מקושר לפרטים מלאים על השדה, כולל התיאור, הקטגוריה, סוג הנתונים, כתובת ה-URL של הסוג וההגדרה של אפשרות הסינון, הבחירה, המיון והחזרה. אם אתם משתמשים במשאב בסעיףFROM, אתם יכולים להשתמש בתפריט הנפתח כן/לא כדי לסנן פלחים שלא זמינים.- עמודת מדדים
לא ניתן לבחור את כל שדות המדדים עם משאב נתון.
בעמודה Metrics מפורטים השדות
metricsשאפשר להשתמש בהם באותו סעיףSELECTכמו השדות של המשאב. כל שדה מקושר לפרטים מלאים על השדה, כולל התיאור, הקטגוריה, סוג הנתונים, כתובת ה-URL של הסוג וההגדרה של אפשרות הסינון, הבחירה, המיון והחזרה. אם אתם משתמשים במשאב בסעיףFROM, אתם יכולים להשתמש בתפריט הנפתח כן/לא כדי לסנן מדדים שלא זמינים.
- פילוח משאבים
לחלק מהמשאבים יש שדות משאבים לפילוח שאפשר לבחור כשהמשאב נמצא בסעיף
FROM. לדוגמה, אם בוחרים שדה משאב שלcampaign, כמוcampaign.name, כשמשתמשים ב-campaign_budgetבפסקהFROM, המערכת תחזיר ותפלח אוטומטית אתcampaign.resource_name, כיcampaignהוא משאב פילוח שלcampaign_budget.בקטע Segmenting resources (פילוח משאבים) מופיעה רשימה של משאבי פילוח זמינים. לא לכל המשאבים יש משאבי פילוח.
- ניתן לבחירה עם
חלק מהשדות של
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 |
שבוע העסקים הקודם (שני עד שישי). |
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.