פילוח

הפילוח זמין בממשק המשתמש של 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 והמדדים יתפלגו באופן משתמע לפי הערך הזה ברמת 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 בדף המטא-נתונים שלו, ובוחרים שדות מאחד מהמשאבים האלה שמפורטים ברשימה, השאילתה תפולח עוד יותר לפי הערך של 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 > '2024-01-01'
  AND segments.date < '2024-02-01'
תקף: השאילתה הזו מחזירה שמות של קמפיינים ולחיצות שמחולקים לפי תאריך לכל הימים בטווח התאריכים.
SELECT
  campaign.name,
  metrics.clicks,
  segments.date
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
תקף: השאילתה הזו מחזירה שמות של קמפיינים ולחיצות שמפולחים לפי חודש לכל הימים בטווח התאריכים.
SELECT
  campaign.name,
  metrics.clicks,
  segments.month
FROM campaign
WHERE segments.date > '2024-01-01'
  AND segments.date < '2024-02-01'
תקינה: השאילתה הזו מחזירה שמות של קמפיינים ולחיצות שמקובצים לפי רבעון ואז לפי חודש לכל החודשים בטווח השנים.
SELECT
  campaign.name,
  metrics.clicks,
  segments.quarter,
  segments.month
FROM campaign
WHERE segments.year > 2019
  AND segments.year < 2024

search_term_view

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

{
  "results":[
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIb3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"3"
      },
      "segments":{
        "date":"2024-06-15"
      }
    },
    {
      "searchTermView":{
        "resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIb3RvcyBpb3M",
        "searchTerm":"google photos"
      },
      "metrics":{
        "impressions":"2"
      },
      "segments":{
        "date":"2024-06-15"
      }
    }
  ]
}

שני האובייקטים שמוחזרים בדוגמה הזו נראים ככפילות, אבל שמות המשאבים שלהם שונים, במיוחד בחלק 'קבוצת מודעות'. כלומר, מונח החיפוש 'google photos' משויך לשתי קבוצות המודעות (מספרים 2222222222 ו-33333333333) באותו תאריך (15 ביוני 2024). לכן, אפשר להסיק שה-API עבד כמצופה ולא החזיר אובייקטים כפולים במקרה הזה.