פילוח

את הפילוח זמין בממשק המשתמש של 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"
      }
    },
    ...
  ]
}

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

פילוח מרומז

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

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