پرسوجوهای مربوط به فیلدهای منبع، بخش، و سنجه را میتوان به روش
GoogleAdsService Search یا SearchStream
ارسال کرد. برای ساختن پُرسمان در «زبان پُرسمان Google Ads»، آن را بااستفاده از
دستور زبان بسازید. برای نمای کلی از
«زبان پُرسمان Google Ads»، به نمای کلی زبان پُرسمان Google Ads مراجعه کنید. یک پُرسمان از تعدادی عبارت تشکیل شده است:
SELECTFROMWHEREORDER BYLIMITPARAMETERS
بندها از نام فیلدها، نام منابع، عملگرها، شرایط، و ترتیبها استفاده میکنند تا به شما کمک کنند دادههای صحیح را انتخاب کنید. وقتی در یک پُرسمان ترکیب شد، میتوانید درخواست را به Google Ads API ارسال کنید.
بندها
بخشهای زیر هدف و نحو هر عبارت Google Ads Query Language را شرح میدهند.
انتخاب
بند SELECT مجموعهای از فیلدها را برای واکشی در درخواست مشخص میکند.
SELECT فهرستی از فیلدهای منبع، فیلدهای بخش، و سنجهها را که با کاما از هم جدا شدهاند میگیرد و مقادیر را در پاسخ برمیگرداند. بند SELECT در پُرسمان
الزامی است.
نمونه پُرسمان زیر مثالی از انتخاب مشخصهها برای یک منبع معین را نشان میدهد:
SELECT
campaign.id,
campaign.name
FROM campaign
میتوانید انواع مختلف فیلد را در یک درخواست درخواست کنید، برای مثال:
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
- فیلدهای منبع اصلی
campaign.idcampaign.name
- فیلدهای منبع منسوب
bidding_strategy.idbidding_strategy.name
- فیلدهای بخش
segments.devicesegments.date
- سنجهها
metrics.impressionsmetrics.clicks
- پُرسمان فیلدهایی که قابلانتخاب نیستند. این فیلدها دارای مشخصه فراداده
selectableهستند که بهعنوانfalseعلامتگذاری شده است. - انتخاب مشخصههای فیلدهای تکراری. این فیلدها دارای مشخصه فراداده
is_repeatedهستند که بهعنوانtrueعلامتگذاری شده است. - انتخاب فیلدهایی که برای منبع دادهشده در عبارت
FROMدردسترس نیستند. مشخصههای برخیاز منابع را نمیتوان باهم انتخاب کرد و فقط زیرمجموعهای از همه سنجهها و بخشها برای منبع در عبارتFROMدردسترس است. - انتخاب بخشها یا سنجههایی که با یکدیگر سازگار نیستند. برای اطلاعات بیشتر، بخشبندی را ببینید.
اطلاعات مربوط به شرایط قبلی را میتوانید در اسناد مرجع ما یا از GoogleAdsFieldService پیدا کنید.
فرستنده
بند FROM منبع اصلی را برای برگرداندن مشخص میکند. منبع
در عبارت FROM مشخص میکند که از چه فیلدهایی میتوان در همه
عبارتهای دیگر برای پُرسمان دادهشده استفاده کرد. فقط یک منبع را میتوان در
بند FROM مشخص کرد. بند FROM در پُرسمان به روش
GoogleAdsService Search یا SearchStream
الزامی است. بااینحال، هنگام استفاده از GoogleAdsFieldService، عبارت FROM نباید مشخص شود.
درحالیکه فقط یک منبع میتواند در عبارت FROM برای پُرسمان دادهشده وجود داشته باشد، فیلدهای
منابع منسوب نیز ممکن است دردسترس باشند. این منابع بهطور ضمنی با منبع در عبارت FROM پیوند داده شدهاند، بنابراین فقط باید مشخصههای آنها را به عبارت SELECT اضافه کنید تا مقادیر آنها برگردانده شود. همه منابع، منبع منسوب ندارند. در مثال زیر، میتوانید هم شناسه گروه آگهی و هم شناسه پویش را از گروههای آگهی درخواست کنید:
SELECT
campaign.id,
ad_group.id
FROM ad_group
فیلد resource_name منبع اصلی همیشه برگردانده میشود.
در مثال زیر، ad_group.resource_name در پاسخ گنجانده شده است،
هرچند بهطور صریح در پُرسمان انتخاب نشده است:
SELECT ad_group.id
FROM ad_group
وقتی حداقل یک فیلد انتخاب شود، همین موضوع برای منابع منسوبشده نیز صادق است.
برای مثال، campaign.resource_name در پاسخ برای پرسمان زیر گنجانده شده است:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE
بند WHERE شرایطی را مشخص میکند که هنگام فیلتر کردن دادهها برای درخواست اعمال میشود. هنگام استفاده از عبارت WHERE، یک یا چند شرط را مشخص کنید
که با AND از هم جدا شده باشند. شرایط معمولاً از الگوی
field_name Operator value پیروی میکنند (یا از BETWEEN value AND value، IS NULL، یا
IS NOT NULL استفاده میکنند). عبارت WHERE در پُرسمان اختیاری است.
مثال زیر از WHERE برای برگرداندن سنجهها از یک دوره زمانی مشخص استفاده میکند:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
میتوانید چندین شرط را برای فیلتر کردن دادهها ترکیب کنید. این مثال تعداد کلیکها را برای همه کمپینهای دارای ظهور در تلفن همراه در ۳۰ روز گذشته درخواست میکند:
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
بخشهای موجود در عبارت WHERE باید در عبارت SELECT نیز وجود داشته باشند، بهجز
بخشهای تاریخ زیر که به آنها بخشهای تاریخ پایه گفته میشود:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
در پُرسمان زیر، segments.date انتخاب شده است.
چون این بخش یک بخش تاریخ پایه است، باید یک محدوده تاریخ محدود در عبارت WHERE متشکل از بخشهای تاریخ پایه ارائه دهید:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
همه بخشهایی که شرط قبلی را برآورده میکنند عبارتاند از segments.date،
segments.week، segments.month، segments.quarter، و segments.year. اگر
هرکدام از این بخشها انتخاب شود، حداقل یکی از آنها باید در عبارت
WHERE استفاده شود.
برای جزئیات بیشتر درباره فیلتر کردن تاریخ، محدوده تاریخ را ببینید.
هنگام فیلتر کردن، حساسیت به حروف بزرگ و کوچک را در عملگر خود درنظر داشته باشید. برای اطلاعات بیشتر، به حساس به حروف بزرگ و کوچک مراجعه کنید.
برای فهرست کامل اپراتورها، به دستور زبان مراجعه کنید.
مرتبسازی براساس
بند ORDER BY ترتیبی را که نتایج برگردانده میشوند مشخص میکند. این کار به شما امکان میدهد دادهها را براساس نام فیلد بهصورت صعودی یا نزولی مرتب کنید. هر ترتیب بهصورت field_name و بهدنبال آن
ASC یا DESC مشخص میشود. اگر هیچکدام از ASC یا DESC مشخص نشده باشد، ترتیب بهطور پیشفرض
ASC خواهد بود. بند ORDER BY در پُرسمان اختیاری است.
پرسمان زیر پویشهای برگرداندهشده را براساس تعداد کلیکها از بیشترین به کمترین مرتب میکند:
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
محدودیت
بند LIMIT به شما امکان میدهد تعداد نتایج برگشتی را مشخص کنید.
این کار زمانی مفید است که فقط به زیرمجموعهای از نتایج نیاز داشته باشید.
برای مثال، LIMIT میتواند تعداد کل نتایج را برای پُرسمان زیر محدود کند:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
پارامترها
بند PARAMETERS به شما امکان میدهد تا فرامشخصههای درخواست را مشخص کنید.
این پارامترها ممکن است بر نوع ردیفهایی که برگردانده میشوند تأثیر بگذارند.
پارامترهای متا زیر پشتیبانی میشوند:
include_drafts
include_drafts را روی true تنظیم کنید تا نهادهای پیشنویس برگردانده شوند.
پیشفرضها به false.
برای مثال، پُرسمان زیر پویشهای پیشنویس را بههمراه پویشهای معمولی واکشی میکند:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts = true
omit_unselected_resource_names
omit_unselected_resource_names را روی true تنظیم کنید تا نام منبع هر نوع منبع در پاسخ حذف شود، مگراینکه صریحاً در عبارت SELECT درخواست شده باشد. پیشفرضها به false.
| پُرسمان | منابع برگرداندهشده |
|---|---|
SELECT campaign.name, customer.id FROM campaign |
|
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true |
هیچکدام
|
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true |
|
قوانین زبان اضافی
علاوهبر مثالهای مربوط به هر عبارت، «زبان پُرسمان Google Ads» از رفتارهای زیر نیز پشتیبانی میکند:
فیلد منبع اصلی در عبارت
SELECTبرای پُرسمان الزامی نیست. برای مثال، میتوانید از یک یا چند فیلد منبع اصلی برای فیلتر کردن دادهها بدون انتخاب آنها استفاده کنید:SELECT campaign.id FROM ad_group WHERE ad_group.status = 'PAUSED'سنجهها را میتوان منحصراً برای منبعی خاص انتخاب کرد؛ هیچ فیلد دیگری از منبع در پُرسمان لازم نیست:
SELECT metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaignفیلدهای بخشبندی را میتوان بدون هیچ فیلد منبع یا سنجه همراهی انتخاب کرد:
SELECT segments.device FROM campaignاز فیلد
resource_name(برای مثال،campaign.resource_name) میتوان برای فیلتر کردن یا مرتب کردن دادهها استفاده کرد:SELECT campaign.id, campaign.name FROM campaign WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'