אפשר לשלוח שאילתות לגבי שדות של מדדים ופלחים לשיטה 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