אפשר לשלוח שאילתות לגבי שדות של מדדים ופלחים לשיטה reports.search. כדי ליצור שאילתה בשפת השאילתות של Merchant Center, צריך קודם לכתוב את השאילתה באמצעות הדקדוק של השפה. שאילתה מורכבת ממספר סעיפים:
SELECTFROMWHEREORDER BYLIMIT
סעיפים משתמשים בשמות שדות, בשמות טבלאות, באופרטורים, בתנאים ובסדרים כדי לעזור לכם לבחור את הנתונים הרצויים. אחרי שמשלבים את כל המידע הזה לשאילתה אחת, אפשר לשלוח בקשה באמצעות 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.datesegments.program
מדדים
metrics.impressionsmetrics.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