برای یادگیری نحوه ایجاد گزارشهای جستجو در API گزارشدهی Search Ads 360، بخشهای زیر را مطالعه کنید.
سرویس جستجو
API گزارشدهی تبلیغات جستجو ۳۶۰، سرویس ویژهای برای جستجو و گزارشگیری ارائه میدهد.
SearchAds360Service یک سرویس بازیابی و گزارشدهی یکپارچه اشیاء است که دو روش جستجو ارائه میدهد: SearchStream و Search . جستجوها در یک رشته پرسوجو که به زبان پرسوجوی Search Ads 360 نوشته شده است، ارسال میشوند. میتوانید پرسوجوها را برای موارد زیر تعریف کنید:
- بازیابی ویژگیهای خاص اشیاء.
- معیارهای عملکرد را برای اشیاء بر اساس محدوده تاریخ بازیابی کنید.
- اشیاء را بر اساس ویژگیهایشان مرتب کنید.
- نتایج خود را با استفاده از شرطهایی که مشخص میکنند کدام اشیاء را برگردانید، فیلتر کنید
- تعداد اشیاء برگشتی را محدود کنید.
هر دو روش جستجو، تمام ردیفهایی را که با پرسوجوی شما مطابقت دارند، برمیگردانند. برای مثال، وقتی campaign.id ، campaign.name و metrics.clicks را بازیابی میکنید، API یک SearchAds360Row را برمیگرداند که شامل یک شیء کمپین با فیلدهای id و name تنظیم شده آن و یک شیء metrics با فیلد clicks تنظیم شده آن است.
روشهای جستجو
-
SearchStream صرف نظر از اندازه گزارش، یک درخواست واحد ارسال میکند و یک اتصال پایدار با API گزارشدهی Search Ads 360 آغاز میکند.
- بستههای داده بلافاصله شروع به دانلود میکنند و کل نتیجه در یک بافر داده ذخیره میشود.
- کد شما میتواند بدون نیاز به انتظار برای اتمام کل جریان، شروع به خواندن دادههای بافر شده کند.
-
Search چندین درخواست صفحهبندیشده برای دانلود کل گزارش ارسال میکند.
SearchStream معمولاً عملکرد بهتری ارائه میدهد زیرا زمان رفت و برگشت شبکه مورد نیاز برای درخواست صفحات جداگانه را حذف میکند. ما استفاده از SearchStream را برای همه گزارشهای بیش از 10،000 ردیف توصیه میکنیم. هیچ تفاوت عملکردی قابل توجهی بین روشها برای گزارشهای کوچکتر (<10،000 ردیف) وجود ندارد.
روشی که استفاده میکنید تاثیری بر سهمیهها و محدودیتهای API شما ندارد: یک پرسوجو یا گزارش واحد، صرف نظر از اینکه نتایج صفحهبندی شده یا پخش شده باشند، به عنوان یک عملیات محسوب میشود.
نمونه عبارت جستجو
این نمونه کوئری، دادههای عملکرد یک حساب کاربری را برای 30 روز گذشته بر اساس کمپین و تقسیمبندی شده بر اساس دستگاه، برمیگرداند:
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.average_cpc,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
درخواستی بدهید
برای صدور درخواست، باید یک customer_id و یک رشته query را به رابطهای SearchAds360Service.SearchStream یا SearchAds360Service.Search ارسال کنید.
این درخواست شامل یک HTTP POST به سرور API گزارشدهی تبلیغات جستجو ۳۶۰ در یکی از URLهای زیر است:
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search
در اینجا یک مثال کامل از تعریف گزارش برای searchStream که در یک درخواست HTTP POST محصور شده است، آورده شده است:
POST /VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream HTTP/1.1 Host: searchads360.googleapis.com User-Agent: curl Content-Type: application/json Accept: application/json Authorization: Bearer [OAUTH_2.0_ACCESS_TOKEN] Parameters: { "query" : "SELECT campaign.name, campaign.status, segments.device, metrics.impressions, metrics.clicks, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS" }
پردازش یک پاسخ
SearchAds360Service فهرستی از اشیاء SearchAds360Row را برمیگرداند.
هر SearchAds360Row نشان دهنده یک شیء است که توسط پرس و جو برگردانده شده است. هر شیء شامل مجموعهای از ویژگیها است که بر اساس فیلدهای درخواست شده در عبارت SELECT پرس و جو پر میشوند. ویژگیهایی که در عبارت SELECT گنجانده نشدهاند، در اشیاء موجود در پاسخ پر نمیشوند.
برای مثال، کوئری زیر هر شیء SearchAds360Row را فقط با campaign.id ، campaign.name و campaign.status پر میکند. سایر ویژگیها، مانند campaign.engine_id یا campaign.bidding_strategy_type ، حذف میشوند.
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
مستندات مرجع
بخش مرجع شامل تمام اطلاعات مورد نیاز برای استفاده صحیح از هر مصنوع است. برای هر منبع، مثلاً ad_group و campaign ، یک صفحه وجود دارد. صفحات segments و metrics ، تمام فیلدهای بخشها و معیارهای موجود را فهرست میکنند.
برخی از منابع، بخشها و معیارها با هم سازگار نیستند و نمیتوان آنها را با هم استفاده کرد، در حالی که برخی دیگر کاملاً سازگار هستند و مکمل یکدیگرند. هر صفحه منبع شامل اطلاعات زیر (در صورت وجود و مناسب بودن) و موارد دیگر است:
- منابع منتسب
برای برخی منابع، ممکن است این گزینه را داشته باشید که با انتخاب فیلدهای منابع مرتبط به همراه فیلدهای منبع در عبارت
FROMخود، به طور ضمنی آنها را به هم متصل کنید. به عنوان مثال، منبعcampaignیک منبع نسبت داده شده به منبعad_groupاست. این بدان معناست که میتوانید فیلدهایی مانندcampaign.idوcampaign.bidding_strategy_typeرا هنگام استفاده ازad_groupدر عبارتFROMخود در کوئری خود بگنجانید.بخش منابع اختصاص داده شده، منابع اختصاص داده شده موجود را فهرست میکند. همه منابع، منابع اختصاص داده شده ندارند.
- ستون فیلدهای منابع
تمام فیلدهای منبع در ستون فیلدهای منبع گنجانده شدهاند. هر فیلد منبع به جزئیات بیشتری در مورد فیلد، از جمله توضیحات، دستهبندی، نوع داده، نوع URL و تنظیمات قابل فیلتر، قابل انتخاب، قابل مرتبسازی و تکرار آن، لینک میدهد.
- ستون بخشها
همه فیلدهای سگمنت با یک منبع مشخص قابل انتخاب نیستند.
ستون Segments فیلدهای
segmentsرا که میتوانید در همان عبارتSELECTبه عنوان فیلدهای منبع استفاده کنید، فهرست میکند. هر فیلد به جزئیات کامل در مورد فیلد، از جمله توضیحات، دسته، نوع داده، نوع URL و تنظیمات قابل فیلتر، قابل انتخاب، قابل مرتبسازی و تکرار آن، لینک میدهد. اگر از منبع در عبارتFROMخود استفاده میکنید، میتوانید از منوی کشویی Yes/No برای فیلتر کردن بخشهایی که در دسترس نیستند استفاده کنید.- ستون معیارها
همه فیلدهای معیارها با یک منبع مشخص قابل انتخاب نیستند.
ستون «معیارها» (Metrics) فیلدهای
metricsرا فهرست میکند که میتوانید در همان عبارتSELECTبه عنوان فیلدهای منبع استفاده کنید. هر فیلد به جزئیات کامل در مورد فیلد، از جمله توضیحات، دسته، نوع داده، نوع URL و تنظیمات قابل فیلتر، قابل انتخاب، قابل مرتبسازی و تکرار آن، لینک میدهد. اگر از منبع در عبارتFROMخود استفاده میکنید، از منوی کشویی «بله/خیر» برای فیلتر کردن معیارهایی که در دسترس نیستند استفاده کنید.
- تقسیمبندی منابع
برخی منابع دارای فیلدهای منبع بخشبندی هستند که میتوانید هنگام قرار گرفتن منبع در عبارت
FROMخود، آنها را انتخاب کنید. برای مثال، اگر هنگام استفاده ازcampaign_budgetدر عبارتFROMخود، یک فیلد منبعcampaignمانندcampaign.nameرا انتخاب کنید،campaign.resource_nameبه طور خودکار برگردانده شده و بخشبندی میشود، زیراcampaignیک منبع بخشبندی شده ازcampaign_budgetاست.بخش منابع بخشبندی، منابع بخشبندی موجود را فهرست میکند. همه منابع دارای منابع بخشبندی نیستند.
- قابل انتخاب با
برخی از فیلدهای
segmentsبا سایر منابع، بخشها و معیارها سازگار نیستند.صفحه
segmentsشامل یک فیلد Selectable با قابلیت بسط برای هرsegmentsاست که تمام فیلدهای منابع سازگار، فیلدهایmetricsو سایر فیلدهایsegmentsرا که میتوانید در عبارتSELECTخود بگنجانید، فهرست میکند.
تقسیمبندی
شما میتوانید نتایج جستجوی خود را با اضافه کردن فیلد segments. FIELD_NAME به عبارت SELECT در کوئری خود، بخشبندی کنید.
برای مثال، segments.device در کوئری زیر، منجر به گزارشی با ردیفی برای impressions هر دستگاه برای منبعی که در عبارت FROM مشخص شده است، میشود.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
نتایج برگردانده شده توسط SearchAds360Service.SearchStream چیزی شبیه به این رشته JSON است:
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
برای مشاهدهی فهرستی از فیلدهای سگمنت موجود که میتوانید استفاده کنید، segments مراجعه کنید.
بخشهای چندگانه
شما میتوانید چندین بخش را در عبارت SELECT از پرسوجوی خود مشخص کنید. پاسخ شامل یک شیء SearchAds360Row برای هر ترکیبی از نمونه منبع اصلی مشخص شده در عبارت FROM و مقدار هر فیلد segment انتخاب شده است.
برای مثال، کوئری زیر برای هر ترکیبی از campaign ، segments.ad_network_type و segments.date یک ردیف برمیگرداند.
SELECT
segments.ad_network_type
segments.date
FROM campaign
توجه داشته باشید که نتایج به طور ضمنی بر اساس هر نمونه از منبع اصلی بخشبندی میشوند، اما بر اساس مقادیر فیلدهای انتخاب شدهی منفرد بخشبندی نمیشوند.
پرس و جوی مثال زیر منجر به یک ردیف به ازای هر کمپین میشود، نه یک ردیف به ازای هر مقدار مجزا از فیلد campaign.status .
SELECT
campaign.status,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS
تقسیمبندی ضمنی
هر گزارش در ابتدا بر اساس منبعی که در بند FROM مشخص شده است، بخشبندی میشود. معیارها بر اساس فیلد resource_name این منبع بخشبندی میشوند.
این کوئری نمونه به طور خودکار ad_group.resource_name را برمیگرداند و به طور ضمنی از آن برای بخشبندی معیارها در سطح ad_group استفاده میکند.
SELECT metrics.impressions
FROM ad_group
رشته JSON برگردانده شده شبیه به این است:
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
بخشهای اصلی تاریخ
شما میتوانید از بخشهای اصلی تاریخ در عبارت WHERE خود برای مشخص کردن یک تاریخ یا دوره زمانی استفاده کنید.
فیلدهای سگمنت زیر به عنوان سگمنتهای اصلی تاریخ شناخته میشوند: segments.date ، segments.week ، segments.month ، segments.quarter و segments.year .
این نمونه کوئری، معیارهای clicks کمپین را برای 30 روز گذشته برمیگرداند.
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
فیلدهای اصلی سگمنتهای تاریخ، از این قاعده کلی که نمیتوانید از فیلد سگمنت در عبارت WHERE خود استفاده کنید، مستثنی هستند، مگر اینکه این فیلد را در عبارت SELECT خود نیز بگنجانید. برای اطلاعات بیشتر به بخش فیلترینگ ممنوعه مراجعه کنید.
قوانین بخش تاریخ اصلی:
شما میتوانید از یک فیلد تاریخ اصلی در عبارت
WHEREخود استفاده کنید بدون اینکه آن را در عبارتSELECTخود بگنجانید. همچنین در صورت تمایل میتوانید این فیلد را در هر دو عبارت بگنجانید.این مثال کوئری، معیارهای
clicksبر اساس نام کمپین در محدوده تاریخ برمیگرداند. توجه داشته باشید کهsegments.dateدر عبارتSELECTگنجانده نشده است.SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'اگر یک فیلد تاریخ اصلی را در عبارت
SELECTخود قرار دهید، باید یک تاریخ یا محدوده تاریخ محدود را در عبارتWHEREخود مشخص کنید. فیلدهای مشخص شده در عبارتهایSELECTوWHEREنیازی به مطابقت ندارند.این نمونه کوئری، معیارهای
clicksرا بر اساس نام کمپین و به تفکیک ماه برای تمام روزهای محدوده تاریخ، برمیگرداند.SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
تاریخهای ISO 8601
شما میتوانید از قالب YYYY-MM-DD (ISO 8601) برای مشخص کردن تاریخها و محدودههای تاریخ استفاده کنید، برای مثال:
WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'
برای بخشهای اصلی تاریخ که به یک دوره زمانی نیاز دارند ( segments.week ، segments.month ، segments.quarter ) میتوانید از عملگر = به همراه اولین روز دوره زمانی استفاده کنید، برای مثال:
WHERE segments.month = '2022-06-01'
تاریخهای از پیش تعریفشده
همچنین میتوانید از تاریخها و محدودههای تاریخ از پیش تعریف شده زیر استفاده کنید:
| تاریخهای از پیش تعریفشده | |
|---|---|
TODAY | فقط امروز. |
YESTERDAY | فقط دیروز. |
LAST_7_DAYS | ۷ روز گذشته، بدون احتساب امروز. |
LAST_BUSINESS_WEEK | هفته کاری ۵ روزه قبلی (دوشنبه تا جمعه). |
THIS_MONTH | تمام روزهای ماه جاری. |
LAST_MONTH | تمام روزهای ماه قبل. |
LAST_14_DAYS | ۱۴ روز گذشته به جز امروز. |
LAST_30_DAYS | ۳۰ روز گذشته به جز امروز. |
THIS_WEEK_SUN_TODAY | دوره زمانی بین یکشنبه قبل و روز جاری. |
THIS_WEEK_MON_TODAY | دوره زمانی بین دوشنبه قبل و روز جاری. |
LAST_WEEK_SUN_SAT | دوره ۷ روزه که از یکشنبه قبل شروع میشود. |
LAST_WEEK_MON_SUN | دوره ۷ روزه که از دوشنبه قبل شروع میشود. |
مثال:
WHERE segments.date DURING LAST_30_DAYS
صفر معیار
هنگام اجرای یک پرسوجو، ممکن است با معیارهایی با مقدار صفر برای برخی از موجودیتها مواجه شوید. در مورد نحوه مدیریت معیارهای صفر در پرسوجوهای خود بیاموزید .
انواع شمارشی ناشناخته
اگر منبعی با نوع داده شمارشی UNKNOWN برگردانده شود، به این معنی است که این نوع داده در نسخه API به طور کامل پشتیبانی نمیشود. این منابع ممکن است از طریق رابطهای دیگر ایجاد شده باشند. به عنوان مثال، یک کمپین یا تبلیغ جدید در رابط کاربری Search Ads 360 معرفی شده است، اما هنوز در نسخه API مورد نظر شما پشتیبانی نمیشود.
شما همچنان میتوانید معیارها را انتخاب کنید وقتی که یک منبع از نوع UNKNOWN باشد، اما باید موارد زیر را در نظر داشته باشید:
منبعی با نوع
UNKNOWNممکن است بعداً پشتیبانی شود، اما میتواند به طور نامحدودUNKNOWNباقی بماند.اشیاء جدید با نوع
UNKNOWNممکن است در هر زمانی ظاهر شوند. این اشیاء با نسخههای قبلی سازگار هستند زیرا مقدار enum از قبل موجود است. ما منابع را با این تغییر به محض موجود شدن معرفی میکنیم تا شما دید دقیقی از حساب خود داشته باشید. منبعUNKNOWNممکن است به دلیل فعالیت جدید در حساب شما از طریق رابطهای دیگر یا به دلیل اینکه یک منبع دیگر به طور رسمی پشتیبانی نمیشود، ظاهر شود.منابع
UNKNOWNممکن است معیارهای دقیقی داشته باشند که میتوانید آنها را جستجو کنید.منابع
UNKNOWNمعمولاً در رابط کاربری Search Ads 360 کاملاً قابل مشاهده هستند.