פילוח

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

search_term_view

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

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

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

שדות פלחים שאפשר לבחור

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

הגבלות על פלחים משולבים

יש שדות פלחים עם אילוצי בחירה מפורשים, ולכן צריך לבקש אותם לצד פלח אב בסעיף SELECT:

  • אם בוחרים באפשרות segments.ad_sub_network_type (שמפרטת רשתות משנה של מודעות ב-YouTube, כמו מודעות וידאו In-stream, מודעות בגוף הפיד ומודעות ב-Shorts), צריך לבחור גם באפשרות segments.ad_network_type.
  • בגרסה 25 ואילך, אם בוחרים באפשרות segments.ad_sub_format_type (שמפרטת את משך הזמן של מודעות וידאו In-stream ב-YouTube שלא ניתן לדלג עליהן), צריך לבחור גם באפשרות segments.ad_format_type.

סינון משתמע לפי בחירת פלח

כשבוחרים שדות פלח מסוימים בשאילתה, יכול להיות ש-Google Ads API יסנן את התוצאות באופן מרומז כך שיכללו רק שורות שבהן הפלח רלוונטי ויש לו ערך.

ההשפעה של segments.keyword.*

דוגמה נפוצה וחשובה להתנהגות הזו מתרחשת כשבוחרים שדה כלשהו בקטע segments.keyword (כמו segments.keyword.info.text ו-segments.keyword.ad_group_criterion):

  • החרגה של תנועה שלא קשורה למילות מפתח: אם כוללים שדה segments.keyword.* כלשהו בפסוקית SELECT, התוצאות מוגבלות רק לשורות שקשורות ישירות לקריטריון של קבוצת מודעות של מילת מפתח ברשת החיפוש.
  • סוגי הקמפיינים שהושפעו: כתוצאה מכך, נתונים מסוגי קמפיינים או מקבוצות של מודעות שלא מסתמכים על מילות מפתח לרשת החיפוש מוחרגים מהתוצאות. זה כולל, בין היתר:
    • מודעות דינמיות לרשת החיפוש (DSA): הסיבה לכך היא שהיעדים של מודעות דינמיות לרשת החיפוש מבוססים על תוכן האתר ולא על מילות מפתח.
    • קמפיינים של שופינג: בקמפיינים האלה נעשה שימוש בקבוצות מוצרים במקום במילות מפתח.
    • קמפיינים למיקסום הביצועים: יכול להיות שהמודעות בקמפיינים למיקסום הביצועים יוצגו ברשת החיפוש, אבל בדרך כלל הדוחות לא מפולחים לפי אותם קריטריונים של מילות מפתח.
  • רשת המדיה: השדות segments.keyword.* מתייחסים למילות מפתח שמשמשות ברשת החיפוש. הם לא מחולקים לפי מילות מפתח לרשת המדיה או לפי שיטות טירגוט אחרות לרשת המדיה.

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