پرسوجوهای مربوط به فیلدهای منبع، بخش و معیار را میتوان به متدهای GoogleAdsService Search یا SearchStream ارسال کرد. برای ساخت یک پرسوجو در زبان پرسوجوی Google Ads، باید آن را با استفاده از دستور زبان بسازید. برای مرور کلی زبان پرسوجوی Google Ads، به مرور کلی زبان پرسوجوی Google Ads مراجعه کنید. یک پرسوجو از تعدادی عبارت تشکیل شده است:
-
SELECT -
FROM -
WHERE -
ORDER BY -
LIMIT -
PARAMETERS
بندها از نام فیلدها ، نام منابع ، عملگرها ، شرطها و ترتیبها برای کمک به شما در انتخاب دادههای صحیح استفاده میکنند. وقتی این بندها در یک پرسوجوی واحد ترکیب شوند، میتوان با استفاده از API گوگل ادز، درخواستی را ارسال کرد.
بندها
ویدئوی : سازگاری فیلد GAQL
انتخاب
عبارت 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.id -
campaign.name
-
فیلدهای منابع
-
bidding_strategy.id -
bidding_strategy.name
-
فیلدهای قطعهای
-
segments.device -
segments.date
-
معیارها
-
metrics.impressions -
metrics.clicks
-
- پرسوجوی فیلدهایی که قابل انتخاب نیستند. این فیلدها دارای ویژگی فراداده
Selectableخود هستند که باfalseعلامتگذاری شده است. - انتخاب ویژگیهای فیلدهای تکراری. این فیلدها ویژگی فرادادهی
isRepeatedخود را با مقدارtrueعلامتگذاری میکنند. - انتخاب فیلدهایی که برای منبع داده شده در بند
FROMدر دسترس نیستند. ویژگیهای برخی از منابع را نمیتوان با هم انتخاب کرد، همچنین فقط زیرمجموعهای از تمام معیارها و بخشها برای منبع در بندFROMدر دسترس خواهد بود. - انتخاب بخشها یا معیارهایی که با یکدیگر سازگار نیستند. برای اطلاعات بیشتر در این مورد، به بخش تقسیمبندی مراجعه کنید.
اطلاعات مربوط به شرایط فوق را میتوانید در اسناد مرجع ما یا از GoogleAdsFieldService بیابید.
از
عبارت FROM منبع اصلی که برگردانده خواهد شد را مشخص میکند. منبع موجود در عبارت FROM مشخص میکند که چه فیلدهایی میتوانند توسط سایر عبارات برای پرسوجوی داده شده استفاده شوند. فقط یک منبع واحد را میتوان در عبارت FROM مشخص کرد. عبارت FROM در پرسوجو به متدهای GoogleAdsService Search یا SearchStream الزامی است. با این حال، هنگام استفاده از GoogleAdsFieldService عبارت FROM نباید مشخص شود.
در حالی که فقط یک منبع میتواند در عبارت FROM برای یک پرسوجوی مشخص وجود داشته باشد، فیلدهایی از منابع Attributed نیز ممکن است در دسترس باشند. این منابع به طور ضمنی با منبع در عبارت FROM مرتبط هستند، بنابراین برای بازگرداندن مقادیر آنها، فقط باید ویژگیهای آنها را به عبارت SELECT اضافه کنید. همه منابع دارای منابع Attributed نیستند. در مثال زیر میتوانید هم شناسه گروه تبلیغاتی و هم شناسه کمپین را از گروههای تبلیغاتی درخواست کنید:
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 ، میتوان یک یا چند شرط را با استفاده از AND برای جدا کردن آنها مشخص کرد. هر شرط باید از الگوی field_name Operator value پیروی کند. عبارت WHERE در یک پرس و جو اختیاری است.
در زیر مثالی از استفاده از WHERE برای بازگرداندن معیارها از یک دوره زمانی مشخص آمده است:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
شما میتوانید چندین شرط را برای فیلتر کردن دادهها ترکیب کنید. این مثال تعداد کلیکها را برای همه کمپینها با تعداد نمایش در موبایل در 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
بخشهای موجود در عبارت WHERE باید در عبارت SELECT نیز وجود داشته باشند، و بخشهای تاریخ زیر که به عنوان بخشهای تاریخ اصلی شناخته میشوند، از این قاعده مستثنی هستند:
-
segments.date -
segments.week -
segments.month -
segments.quarter -
segments.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 روی true تنظیم کنید. مقدار پیشفرض false است.
برای مثال، کوئری زیر، کمپینهای پیشنویس را به همراه کمپینهای معمولی واکشی میکند:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
حذف نامهای منابع انتخاب نشده
برای جلوگیری از بازگشت نام منبع هر نوع منبع در پاسخ، مگر اینکه صریحاً در بند SELECT درخواست شده باشد، omit_unselected_resource_names روی true تنظیم کنید. مقدار پیشفرض false است.
| مثالهای omit_unselected_resource_names | |
|---|---|
SELECT campaign.name, customer.id FROM campaign | Returned resources:campaign.resource_nameمقدار پیشفرض omit_unselected_resource_names برابر با false است، بنابراین تمام فیلدهای resource_name برگردانده میشوند. |
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true | Returned resources: هیچ کدام. omit_unselected_resource_names به صورت true مشخص شده است و campaign.resource_name و customer.resource_name بخشی از عبارت SELECT نیستند. |
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true | Returned resource:campaign.resource_nameomit_unselected_resource_names به صورت true مشخص شده است و campaign.resource_name به عنوان بخشی از عبارت SELECT درخواست شده است. |
قوانین زبان اضافی
علاوه بر مثالهایی برای هر بند، زبان جستجوی گوگل ادز رفتارهای زیر را نیز دارد که میتوان از آنها استفاده کرد:
لازم نیست فیلد منبع اصلی در عبارت
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'