یک پرس و جو از تعدادی عبارت تشکیل شده است: SELECT
، FROM
، WHERE
، ORDER BY
، LIMIT
و PARAMETERS
.
بندها از نام فیلدها ، نام منابع ، عملگرها ، شرایط و ترتیبات استفاده می کنند که در یک درخواست پرس و جو ترکیب می شوند.
به طور اساسی، برای ایجاد یک پرس و جو باید:
- منبعی را برای بازیابی داده ها مشخص کنید.
- برای تعریف داده هایی که می خواهید برگردانید، فیلدها و معیارهایی را اضافه کنید.
- برای گروه بندی نتایج خود، بخش هایی را اضافه کنید.
- منابع نسبت داده شده را برای پیوستن ضمنی به داده های منابع مرتبط اضافه کنید.
- نتایج خود را فیلتر کنید، سفارش دهید و محدود کنید.
بند SELECT
بند SELECT
:
- یک عبارت الزامی در یک پرس و جو است.
- مجموعه ای از فیلدها را برای واکشی در درخواست مشخص می کند.
- فهرستی از فیلدهای منبع، ستونهای سفارشی، متغیرهای Floodlight سفارشی، فیلدهای بخش و معیارهای جدا شده با کاما را میگیرد و مقادیر موجود در پاسخ را برمیگرداند.
این پرس و جو مثال به شما نشان می دهد که چگونه ویژگی های منبع campaign
را انتخاب کنید:
SELECT
campaign.id,
campaign.name
FROM campaign
انواع فیلدهای متعدد
شما می توانید انواع مختلف فیلد را در همان درخواست درخواست کنید.
پرس و جوی مثال زیر یک پرس و جو را با ترکیبی از موارد زیر نشان می دهد:
- فیلدهای منبع:
campaign.id
،campaign.name
،bidding_strategy.id
، وbidding_strategy.name
. - فیلدهای بخش:
segments.device
وsegments.date
. - فیلدهای متریک:
metrics.impressions
وmetrics.clicks
.
SELECT
campaign.id,
campaign.name,
bidding_strategy.id,
bidding_strategy.name,
segments.device,
segments.date,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
برای کسب اطلاعات بیشتر در مورد بخش بندی گزارش های جستجوی خود، به بخش بندی مراجعه کنید.
زمینه منابع اصلی
به طور معمول، شما فیلد منبع اصلی خود را در بند SELECT
قرار می دهید، اما این اختیاری است (لازم نیست ).
این پرس و جوی مثال از یک فیلد منبع اصلی ( ad_group.status
) فقط برای فیلتر کردن نتایج استفاده می کند.
SELECT campaign.id
FROM ad_group
WHERE ad_group.status = PAUSED
متغیرهای Floodlight سفارشی
می توانید متغیرهای Floodlight سفارشی را با استفاده از شناسه آنها در بند SELECT قرار دهید.
در این مثال، پرس و جو شامل یک متغیر سفارشی با شناسه 123454321 برای منبع کمپین است.
SELECT
conversion_custom_metrics.id[123454321]
FROM campaign
SELECT
conversion_custom_dimensions.id[123454321]
FROM campaign
ستون های سفارشی
میتوانید ستونهای سفارشی را با استفاده از شناسههایشان در بند SELECT قرار دهید.
در این مثال، پرس و جو شامل یک ستون سفارشی با شناسه 12345678 برای منبع کمپین است.
SELECT
custom_columns.id[12345678]
FROM campaign
نحوه دریافت شناسه های ستون سفارشی را ببینید.
فیلدهای متریک
میتوانید فیلدهای متریک را برای یک منبع مشخص انتخاب کنید، بدون اینکه هیچ فیلد دیگری از منبع در عبارت SELECT
وارد کنید.
این پرس و جو نمونه impressions
و معیارهای clicks
را برای منبع campaign
انتخاب میکند.
SELECT
metrics.impressions,
metrics.clicks
FROM campaign
برای فهرستی از فیلدهای معیاری که می توانید در جستارهای خود استفاده کنید metrics
ببینید.
فیلدهای بخش
میتوانید فیلدهای بخشها را بدون مشخص کردن فیلدهای منبع یا معیارهای همراه در عبارت SELECT
انتخاب کنید.
این پرس و جوی مثال نتایج را بر اساس دستگاه تقسیم می کند.
SELECT segments.device
FROM campaign
segments
برای فهرستی از قسمتهایی که میتوانید در جستارهای خود استفاده کنید، ببینید.
زمینه های ممنوعه
شما نمی توانید از فیلدهای زیر در عبارت SELECT
استفاده کنید:
- فیلدهای غیر قابل انتخاب، یعنی فیلدهایی با ویژگی فراداده
Selectable
که به عنوانfalse
علامت گذاری شده است. - فیلدهای تکراری، یعنی فیلدهایی با ویژگی ابرداده
Repeated
که به عنوانtrue
علامت گذاری شده است. - فیلدهایی که برای منبع داده شده در عبارت
FROM
در دسترس نیستند. ویژگی های برخی منابع را نمی توان با هم انتخاب کرد. برخی منابع فقط زیرمجموعه ای از تمام معیارها و بخش ها را در دسترس قرار می دهند. - بخشها یا معیارهای ناسازگار. برای اطلاعات بیشتر به بخش بندی مراجعه کنید.
برای جزئیات در مورد مکان یافتن این اطلاعات برای هر منبع، به مستندات مرجع مراجعه کنید.
بند FROM
بند FROM
:
- یک بند الزامی برای درخواست های
SearchAds360Service
(هر دو روشSearch
وSearchStream
) است. - نباید برای درخواست های
SearchAds360FieldService
گنجانده شود. - منبع اصلی پرس و جو را مشخص می کند.
- فقط می توان یک منبع را مشخص کرد.
- فیلدهایی را که می توانید در تمام بندهای دیگر در پرس و جو استفاده کنید، تعریف می کند.
منابع نسبت داده شده
اگر منابع نسبت داده شده در دسترس باشند، به طور ضمنی با منبعی که در عبارت FROM
مشخص کرده اید، ملحق می شوند. شما فقط باید ویژگی های آنها را به عبارت SELECT
اضافه کنید تا مقادیر آنها را برگردانید.
این پرس و جوی مثال، شناسه گروه تبلیغات و شناسه کمپین را برمی گرداند، زیرا campaign
یک منبع نسبت داده شده از منبع ad_group
است.
SELECT
campaign.id,
ad_group.id
FROM ad_group
قسمت resource_name
قسمت resource_name
منبع اصلی در عبارت FROM
همیشه برگردانده می شود.
در این پرس و جو مثال، ad_group.resource_name
در پاسخ گنجانده می شود، حتی اگر به صراحت در پرس و جو انتخاب نشده باشد:
SELECT ad_group.id
FROM ad_group
وقتی حداقل یک فیلد انتخاب شده باشد، قسمت resource_name
یک منبع نسبت داده شده برمی گردد.
در این پرس و جوی مثال، campaign.resource_name
در پاسخ گنجانده می شود زیرا campaign.id
انتخاب شده است:
SELECT
campaign.id,
ad_group.id
FROM ad_group
بند WHERE
بند WHERE
:
- یک عبارت اختیاری در یک پرس و جو است.
- شرایط را برای فیلتر کردن و بخش بندی داده ها برای درخواست مشخص می کند. شرایط از این الگو پیروی می کنند:
FIELD_NAME
OPERATOR
VALUE
(با فضاهای خالی از هم جدا شده است). - می تواند شامل چندین شرط باشد که توسط جداکننده
AND
از هم جدا شده اند.
این کوئری مثال نحوه استفاده از عبارت WHERE
را برای برگرداندن معیارهای impressions
برای یک دوره زمانی مشخص نشان میدهد:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
برای کسب اطلاعات بیشتر در مورد بخش بندی گزارش های جستجوی خود، به بخش بندی مراجعه کنید.
برای کسب اطلاعات بیشتر در مورد تعیین محدوده تاریخ در جستارهای خود، محدوده تاریخ را ببینید.
بر اساس قسمت resource_name
فیلتر کنید
میتوانید از قسمت resource_name
برای فیلتر کردن یا سفارش دادهها استفاده کنید.
این پرس و جوی مثال از فیلد campaign.resource_name
برای فیلتر کردن نتایج توسط یک کمپین معین استفاده می کند:
SELECT
campaign.id,
campaign.name
FROM campaign
WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'
شرایط چندگانه
شما می توانید چندین شرط را برای فیلتر کردن داده های خود ترکیب کنید.
این پرس و جوی مثال، معیارهای تعداد clicks
را برای همه کمپینها با معیارهای impressions
در تلفن همراه در 30 روز گذشته درخواست میکند.
SELECT
campaign.id,
campaign.name,
segments.device,
metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
AND segments.device = MOBILE
AND segments.date DURING LAST_30_DAYS
برای کسب اطلاعات بیشتر در مورد تقسیم بندی گزارش های خود به بخش بندی مراجعه کنید.
حساسیت به حروف کوچک
هنگام فیلتر کردن مقادیر رشته، حساسیت پیشفرض حروف کوچک و بزرگ هر اپراتور نقش مهمی در فیلتر کردن صحیح نتایج شما دارد.
جدول زیر حساسیت پیشفرض حروف کوچک و بزرگ هر اپراتور را نشان میدهد.
حساسیت به حروف کوچک و بزرگ پیش فرض | |
---|---|
=/!= | Case sensitive |
IN/NOT IN | Case sensitive |
LIKE/NOT LIKE | Case insensitive |
CONTAINS (...) | Case sensitive |
REGEXP_MATCH/NOT REGEXP_MATCH | Case sensitive |
میتوانید از اصلاحکننده (?i)
برای تغییر حساسیت پیشفرض برای REGEXP_MATCH
و NOT REGEXP_MATCH
به حروف غیرحساس استفاده کنید، برای مثال:
SELECT campaign.id
FROM campaign
WHERE campaign.name REGEXP_MATCH "(?i).*test.*"
برای فهرست کامل عملگرهایی که می توانید برای فیلتر کردن داده های خود از آنها استفاده کنید، به مرجع دستور زبان Query مراجعه کنید.
بخش های تاریخ اصلی
فیلدهای بخش زیر به عنوان بخش های اصلی تاریخ شناخته می شوند: segments.date
، segments.week
، segments.month
، segments.quarter
و segments.year
.
می توانید از بخش های اصلی تاریخ در عبارت WHERE
خود برای تعیین تاریخ یا دوره زمانی استفاده کنید.
این پرس و جوی مثال، DURING LAST_30_DAYS
برای قسمت segments.date
در عبارت WHERE
مشخص می کند:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
برای اطلاعات دقیق درباره استفاده از بخشهای اصلی تاریخ، به بخشبندی > بخشهای اصلی تاریخ مراجعه کنید.
فیلتر کردن ممنوع
فیلتر کردن مجاز نیست:
- در فیلدهای بخش انتخاب نشده، به جز بخشهای تاریخ اصلی .
- در فیلدهای هر نوع پیام، به جز موارد اولیه (به عنوان مثال،
Int64Value
،StringValue
و غیره). - در ویژگی های فیلدهای تکراری از هر نوع پیام، به جز موارد اولیه (به عنوان مثال،
Int64Value
،StringValue
، و غیره).
ترتیب بر اساس بند
بند ORDER BY
:
- یک عبارت اختیاری در یک پرس و جو است.
- ترتیب برگشت نتایج را مشخص می کند. ترتیب از این الگو پیروی می کند:
FIELD_NAME
ORDERING_OPTION
(با یک فضای خالی از هم جدا شده است). - اجازه دو گزینه را می دهد:
ASC
(صعودی) یاDESC
(نزولی). پیش فرض صعودی است.
این پرس و جوی مثال کمپین ها را بر اساس تعداد کلیک ها به ترتیب نزولی (بالاترین به کمترین) مرتب می کند:
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
سفارشات متعدد
شما می توانید چندین فیلد را در عبارت ORDER BY
با استفاده از یک لیست جدا شده با کاما مشخص کنید. نتایج به همان ترتیبی که در پرس و جو مشخص کرده اید مرتب می شوند.
این کوئری نمونه دادههای گروه تبلیغات را انتخاب میکند و نتایج را به ترتیب صعودی بر اساس نام کمپین، سپس به ترتیب نزولی بر اساس تعداد نمایشها و سپس به ترتیب نزولی بر اساس تعداد کلیکها مرتب میکند:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
سفارش و محدود کردن را ترکیب کنید
می توانید از بند ORDER BY
در ترکیب با عبارت LIMIT
برای اصلاح نتایج خود استفاده کنید.
این پرس و جوی مثال، پنج کمپین با بالاترین نمایش را در 30 روز گذشته برمی گرداند:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
ORDER BY metrics.impressions DESC
LIMIT 5
سفارش ممنوع
سفارش ممنوع:
- با ویژگی های منابع انتخاب نشده.
- با معیارهای غیر انتخابی.
- توسط بخش های انتخاب نشده.
- برای این نوع فیلدها:
-
MESSAGE
- فیلدهای تکراری
- ویژگی های فیلدهای تکراری
-
بند LIMIT
بند LIMIT
:
- یک عبارت اختیاری در یک پرس و جو است.
- به شما امکان می دهد تعداد نتایجی را که پرس و جو برمی گرداند محدود کنید.
این بند مفید است، برای مثال، اگر فقط به یک نمونه یا خلاصه نتایج علاقه دارید.
این پرس و جو نمونه تعداد کل نتایج را به 50 محدود می کند:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
بند PARAMETERS
بند PARAMETERS
به شما امکان می دهد پارامترهای متا را برای درخواست مشخص کنید.
شامل پیش نویس ها
پارامتر include_drafts
کنترل می کند که آیا موجودیت های پیش نویس در نتایج گنجانده شده است یا خیر. پیش فرض false
است. برای گنجاندن موجودیت های پیش نویس، آن را روی true
تنظیم کنید.
این پرس و جوی مثال هم کمپین های پیش نویس و هم کمپین های معمولی را برمی گرداند:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
resource_name
انتخاب نشده را حذف کنید
پارامتر omit_unselected_resource_names
به شما این امکان را می دهد که فیلد resource_name
را از همه منابعی که به صراحت در بند SELECT
درخواست نشده اند حذف کنید. پیش فرض false
است. اگر این پارامتر را روی true
تنظیم کنید، توصیه می کنیم که نام منبع منبع اصلی و هر منبع نسبت داده شده را در عبارت SELECT
خود به صراحت درخواست کنید.
این پرس و جوی مثال نه فیلد campaign.resource_name
و نه فیلد customer.resource_name
را برمی گرداند، زیرا در عبارت SELECT
گنجانده نشده اند:
SELECT
campaign.name,
customer.id
FROM campaign
PARAMETERS omit_unselected_resource_names = true
این پرس و جوی مثال فیلد campaign.resource_name
را برمی گرداند، زیرا به صراحت در عبارت SELECT
درخواست شده است:
SELECT
campaign.name,
campaign.resource_name
FROM campaign
PARAMETERS omit_unselected_resource_names = true
ارز مورد استفاده در معیارها را تغییر دهید
پارامتر metrics_currency
به شما امکان میدهد واحد پولی را که در هنگام محاسبه معیار موجود در عبارت SELECT
خود استفاده کنید، مشخص کنید. پیش فرض استفاده از ارز محلی برای حساب است. اگر این پارامتر را تنظیم کنید، باید از کد ارز 3 کاراکتری ISO 4217 استفاده کنید. به عنوان مثال: USD، EUR.
این پرس و جوی مثال، متریک cost_micros را به واحد پول محلی حساب برمی گرداند.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
این پرس و جوی مثال، متریک cost_micros را در پزو شیلی (CLP) برمی گرداند.
SELECT
campaign.name,
metrics.cost_micros
FROM campaign
WHERE segments.date >= "2018-08-15"
AND segments.date < "2018-08-16"
PARAMETERS metrics_currency = "CLP"
گسترش MCC را فعال کنید
پارامتر enable_mcc_expansion
، زمانی که روی true تنظیم شود، به شما امکان میدهد معیارها، فیلدها و بخشهایی را از login_customer_id
و همه حسابهای سرویسدهنده زیر آن، برای منبع موجود در عبارت FROM
قرار دهید. پاسخ از واحد پول login_customer_id
استفاده می کند، مگر اینکه به صراحت در پارامتر metrics_currency
مشخص شده باشد.
این پرس و جوی مثال bidding_strategy.name
، bidding_strategy.type
و metrics.cost_micros
از login_customer_id
و همه حسابهای سرویس دهنده زیر آن برمیگرداند، زیرا پارامتر enable_mcc_expansion
روی true
تنظیم شده است.
SELECT
bidding_strategy.name,
bidding_strategy.type,
metrics.cost_micros
FROM bidding_strategy
WHERE segments.date DURING LAST_14_DAYS
PARAMETERS enable_mcc_expansion = true