פילוח

כדי להטמיע פילוח, שזמין בממשק המשתמש של Google Ads כתפריט נפרד, צריך רק להוסיף את השדה המתאים לשאילתה ב-Google Ads API. לדוגמה, כשמוסיפים את 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"
      }
    },
    ...
  ]
}

שימו לב שבתוצאה לדוגמה שלמעלה, המאפיינים של האובייקט הראשון והשני, כולל שם המשאב, זהים. החשיפות מפולחות לפי מכשיר, ולכן ניתן להחזיר שני אובייקטים או יותר עבור אותו קמפיין.

פילוח מרומז

כל דוח מפולח בהתחלה לפי המשאב שצוין בסעיף FROM. השדה resource_name של המשאב בסעיף FROM מוחזר והמדדים מפולחים לפיו, גם אם השדה resource_name לא נכלל באופן מפורש בשאילתה. לדוגמה, כשמציינים את הערך ad_group כמשאב בסעיף FROM, הערך של ad_group.resource_name יוחזר באופן אוטומטי והמדדים יפולחו אליו באופן מפורש ברמת קבוצת המודעות.

לשאילתה הזו,

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 בדף המטא-נתונים שלו, בחירת שדות מאחד מהמשאבים המפורטים בהמשך תגרום לפילוח נוסף של השאילתה לפי ערך resource_name שמוחזר ב-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.6.2015). כך אפשר להסיק שה-API פעל כמצופה ולא החזיר אובייקטים כפולים במקרה הזה.