ساختار پرس و جو

پرس‌وجوهای مربوط به فیلدهای متریک و سگمنت را می‌توان به متد reports.search ارسال کرد. برای ساخت یک پرس‌وجو در زبان پرس‌وجوی مرکز بازرگانان، ابتدا باید پرس‌وجو را با استفاده از دستور زبان آن زبان بنویسید. یک پرس‌وجو از تعدادی عبارت تشکیل شده است:

  • SELECT
  • FROM
  • WHERE
  • ORDER BY
  • LIMIT

بندها از نام فیلدها ، نام جدول‌ها ، عملگرها ، شرط‌ها و ترتیب‌ها برای کمک به شما در انتخاب داده‌های مورد نظر استفاده می‌کنند. پس از ترکیب در یک پرس‌وجوی واحد، می‌توان با استفاده از Google Content API for Shopping درخواستی ایجاد کرد. بیایید نگاهی به نحوه استفاده از هر بند بیندازیم.

بندها

انتخاب

عبارت 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 مشخص شود. در حال حاضر، فقط جدول MerchantPerformanceView پشتیبانی می‌شود. عبارت FROM در پرس‌وجو به متد search در سرویس reports الزامی است.

کجا

عبارت WHERE شرایطی را که هنگام فیلتر کردن داده‌ها برای درخواست باید اعمال شوند، مشخص می‌کند. هنگام استفاده از عبارت WHERE ، می‌توان یک یا چند شرط را با استفاده از AND برای جدا کردن آنها مشخص کرد. هر شرط باید از الگوی field_name Operator value پیروی کند. هر فیلد segment می‌تواند در عبارت WHERE استفاده شود، اما فیلدهای metrics باید در عبارت 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 برمی‌گرداند که در آن کلیک‌ها > ۱۰۰ در دوره ۳۰ روزه داده شده باشد.

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 ترتیبی را که نتایج باید بر اساس آن برگردانده شوند، مشخص می‌کند. این به شما امکان می‌دهد داده‌ها را بر اساس نام فیلد به صورت صعودی یا نزولی مرتب کنید. هر ترتیب با یک field_name و به دنبال آن ASC یا DESC مشخص می‌شود. اگر هیچ یک ASC یا DESC مشخص نشده باشند، ترتیب به صورت پیش‌فرض ASC خواهد بود. فقط فیلدهای مشخص شده در دستور SELECT می‌توانند در دستور ORDER BY استفاده شوند. دستور 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 برای محدود کردن تعداد کل نتایج برای پرس‌وجوی زیر استفاده کرد:

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