מבנה השאילתה

אפשר לשלוח שאילתות לגבי שדות של מדדים ופלחים לשיטה reports.search. כדי ליצור שאילתה בשפת השאילתות של Merchant Center, צריך קודם לכתוב את השאילתה באמצעות הדקדוק של השפה. שאילתה מורכבת ממספר סעיפים:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT

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

סעיפים

‪SELECT

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

זוהי דוגמה לשאילתה שבוחרת מדדי קליקים מטבלה נתונה:

SELECT
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

אפשר גם לשלוח שאילתה לגבי סוגים שונים של שדות בבקשה אחת:

SELECT
  segments.date,
  segments.program,
  metrics.impressions,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
  • שדות פלחים

    • segments.date
    • segments.program
  • מדדים

    • metrics.impressions
    • metrics.clicks

יש שדות שאסור להשתמש בהם בסעיף SELECT בגלל ההגבלה הבאה:

  • שליחת שאילתה לגבי שדות פלחים בלי שדה מדד אחד לפחות.

מידע שקשור לתנאי שלמעלה זמין במסמכי העזר שלנו.

FROM

הפסקה FROM מציינת את הטבלה שממנה יובאו הנתונים בבקשה. הטבלה בקטע FROM מגדירה באילו שדות אפשר להשתמש בכל שאר הקטעים של השאילתה הנתונה. אפשר לציין רק טבלה אחת בסעיף FROM. בשלב הזה יש תמיכה רק בטבלה MerchantPerformanceView. הסעיף FROM הוא חובה בשאילתה לשיטה search בשירות reports.

WHERE

הסעיף WHERE מציין תנאים להחלה כשמסננים נתונים לבקשה. כשמשתמשים בסעיף WHERE, אפשר לציין תנאי אחד או יותר ולהשתמש ב-AND כדי להפריד ביניהם. כל תנאי צריך להיות בפורמט field_name Operator value. אפשר להשתמש בכל שדה של פלחים ב-WHERE, אבל צריך לציין שדות של מדדים ב-SELECT כדי להשתמש בהם ב-WHERE. הסעיף WHERE הוא חובה בשאילתה, כי תמיד צריך לציין את טווח התאריכים שבו רוצים לקבל את נתוני הביצועים.

הדוגמה הבאה מראה איך להשתמש ב-WHERE כדי להחזיר מדדים מפרק זמן נתון:

SELECT
  segments.offer_id,
  metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

אפשר לשלב כמה תנאים כדי לסנן את הנתונים. בדוגמה הזו יוחזר מספר הקליקים לכל מוצר בתוכנית SHOPPING_ADS, אם מספר הקליקים גדול מ-100 במהלך תקופה של 30 יום.

SELECT
  segments.offer_id,
  segments.program,
  metrics.clicks
FROM MerchantPerformanceView
WHERE metrics.clicks > 100
  AND segments.program = SHOPPING_ADS
  AND segments.date BETWEEN 2020-08-01 AND 2020-08-31;

בשאילתה הבאה, אפשר לראות שsegments.date נבחר. גם אם בוחרים באפשרות segments.date, תמיד צריך לציין טווח תאריכים מוגבל בסעיף WHERE כדי לאחזר נתוני ביצועים.

SELECT
  segments.date,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31

כשמסננים, חשוב לזכור שהאופרטור תלוי באותיות רישיות.

רשימה מלאה של האופרטורים מופיעה בדקדוק של השפה.

ORDER BY

הפסקה ORDER BY מציינת את הסדר שבו התוצאות יוחזרו. כך אפשר לסדר את הנתונים בסדר עולה או יורד לפי שם השדה. כל סדר מוגדר כ-field_name ואחריו ASC או DESC. אם לא מציינים את ASC או את DESC, ברירת המחדל של הסדר היא ASC. אפשר להשתמש בסעיף ORDER BY רק בשדות שצוינו בסעיף SELECT. הסעיף ORDER BY הוא אופציונלי בשאילתה.

השאילתה הבאה ממיינת את השורות שמוחזרות לפי מספר הקליקים, מהגבוה לנמוך:

SELECT
  segments.offer_id,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
ORDER BY metrics.clicks DESC

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

SELECT
  segments.offer_id,
  metrics.impressions,
  metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
ORDER BY
  segments.offer_id,
  metrics.impressions DESC,
  metrics.clicks DESC

LIMIT

הסעיף LIMIT מאפשר לציין את מספר התוצאות שיוחזרו. האפשרות הזו שימושית אם אתם רוצים רק סיכום.

לדוגמה, אפשר להשתמש ב-LIMIT כדי להגביל את המספר הכולל של התוצאות בשאילתה הבאה:

SELECT
  segments.program,
  segments.offer_id,
  metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN 2020-08-01 AND 2020-08-31
ORDER BY metrics.impressions DESC
LIMIT 50