اطّلِع على الأقسام أدناه للتعرّف على كيفية إنشاء تقارير البحث في Search Ads 360 Reporting API.
البحث في الخدمة
توفّر Search Ads 360 Reporting API خدمة خاصة للبحث و إعداد التقارير.
SearchAds360Service هي خدمة موحّدة لاسترداد العناصر وإعداد التقارير،
وتقدّم طريقتَي بحث: SearchStream وSearch. يتم تمرير عمليات البحث في سلسلة طلب بحث مكتوبة لغة طلب البحث في "إعلانات شبكة البحث 360". يمكنك تحديد طلبات البحث لإجراء ما يلي:
- استرداد سمات محدّدة للكائنات
- استرداد مقاييس الأداء للكائنات استنادًا إلى نطاق زمني
- ترتيب العناصر استنادًا إلى سماتها
- فلترة النتائج باستخدام شروط تحدّد العناصر التي سيتم عرضها
- الحدّ من عدد العناصر التي يتم عرضها
تعرض كلتا طريقتَي البحث جميع الصفوف التي تتطابق مع طلب البحث. على سبيل المثال، عند retrievingcampaign.id وcampaign.name وmetrics.clicks، تعرض واجهة برمجة التطبيقاتSearchAds360Row التي تحتوي على عنصر حملة تم ضبط حقلَيid وname فيه، وعنصر metrics تم ضبط حقلclicks فيه.
طرق البحث
SearchStreamتُرسِل طلبًا واحدًا وتُنشئ اتصالاً دائمًا بواجهة برمجة التطبيقات Search Ads 360 Reporting API بغض النظر عن حجم التقرير.
- تبدأ حِزم البيانات بالتنزيل على الفور مع تخزين النتيجة بالكامل في ذاكرة تخزين مؤقت للبيانات.
- يمكن أن يبدأ الرمز الخاص بك في قراءة البيانات التي تم تخزينها مؤقتًا بدون الحاجة إلى الانتظار حتى انتهاء البث المباشر بأكمله.
Searchتُرسَل طلبات متعدّدة مُقسّمة إلى صفحات لتنزيل التقرير بأكمله.
يقدّم SearchStream عادةً أداءً أفضل لأنّه يزيل
وقت التنقّل بين الشبكة والجهاز المطلوب لطلب صفحات فردية. ننصحك باستخدام السمة
SearchStream لجميع التقارير التي تتضمّن أكثر من 10,000 صف. لا يُلاحظ اختلاف مهم
في الأداء بين الطرق المستخدَمة في التقارير الأصغر حجمًا (<10,000 صف).
لا تؤثّر الطريقة التي تستخدمها في الحصص والقيود الخاصة بواجهة برمجة التطبيقات: يتم احتساب طلب بحث أو تقرير واحد كعملية واحدة بغض النظر عمّا إذا كانت النتائج معروضة على صفحات أو يتم بثّها.
مثال على طلب بحث
يعرض مثال طلب البحث هذا بيانات الأداء لحساب خلال آخر 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.
يتألّف الطلب من POST HTTP إلى خادم Search Ads 360 Reporting 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التي يمكنك استخدامها في عبارةSELECTنفسها كحقول للمورد. يرتبط كل حقل بتفاصيل كاملة حول الحقل، بما في ذلك الوصف والفئة ونوع البيانات ونوع عنوان URL والإعدادات القابلة للتصفية والتحديد والفرز والمتكررة. إذا كنت تستخدِم المورد في عبارةFROM، يمكنك استخدام القائمة المنسدلة نعم/لا لفلترة الشرائح غير المتاحة.- عمود المقاييس
لا يمكن اختيار جميع حقول المقاييس باستخدام مورد معيّن.
يسرد عمود المقاييس حقول
metricsالتي يمكنك استخدامها في عبارةSELECTنفسها كحقول للمورد. يرتبط كل حقل بتفاصيل كاملة عن الحقل، بما في ذلك وصفه وفئة نوع البيانات ونوع عنوان URL وإعدادات الفلترة والاختيار والترتيب والتكرار. إذا كنت تستخدم المورد في عبارةFROM، استخدِم القائمة المنسدلة نعم/لا لfiltrare out المقاييس غير المتاحة.
- تقسيم الموارد
تحتوي بعض المراجع على حقول مرجعية لتقسيم البيانات يمكنك اختيارها عندما يكون المرجع في عبارة
FROM. على سبيل المثال، إذا اخترت حقل مواردcampaign، مثلcampaign.name، عند استخدامcampaign_budgetفي عبارةFROMcampaign.resource_nameسيتم عرض هذا الحقل وتقسيمه تلقائيًا، لأنّcampaignهو مورد تقسيم إلىcampaign_budget.يسرد قسم تقسيم الموارد موارد تقسيم الموارد المتاحة. ليس لكلّ الموارد موارد لتقسيمها.
- يمكن اختيارها باستخدام
بعض حقول
segmentsغير متوافقة مع موارد وشرائح ومقاييس أخرى.تتضمّن صفحة
segmentsعنصر اختيار مع قابل للتوسيع لكل حقل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 |
آخر 7 أيام بدون اليوم |
LAST_BUSINESS_WEEK |
أسبوع العمل السابق الذي يضم 5 أيام (من الاثنين إلى الجمعة) |
THIS_MONTH |
جميع الأيام في الشهر الحالي |
LAST_MONTH |
كل أيام الشهر السابق |
LAST_14_DAYS |
آخر 14 يومًا باستثناء اليوم |
LAST_30_DAYS |
آخر 30 يومًا باستثناء اليوم |
THIS_WEEK_SUN_TODAY |
الفترة بين الأحد السابق واليوم الحالي |
THIS_WEEK_MON_TODAY |
فترة بين يوم الاثنين السابق واليوم الحالي. |
LAST_WEEK_SUN_SAT |
فترة 7 أيام بدءًا من الأحد السابق |
LAST_WEEK_MON_SUN |
فترة 7 أيام بدءًا من يوم الاثنين السابق |
مثال:
WHERE segments.date DURING LAST_30_DAYS
بدون مقاييس
عند تنفيذ طلب بحث، قد تظهر لك مقاييس ذات قيمة صفر لبعض الكيانات. مزيد من المعلومات عن كيفية التعامل مع المقاييس الصفرية في طلبات البحث
أنواع التعداد UNKNOWN
إذا تم عرض مرجع باستخدام نوع البيانات UNKNOWN enum، يعني ذلك أنّه
النوع غير متوافق بالكامل مع إصدار واجهة برمجة التطبيقات. ربما تم إنشاء هذه الموارد
من خلال واجهات أخرى. على سبيل المثال، تمّت
إدخال حملة أو إعلان جديدَين في واجهة مستخدِم "إعلانات شبكة البحث 360"، ولكنّهما غير متاحة بعد في إصدار واجهة برمجة التطبيقات
الذي تُجري عليه طلب بحث.
لا يزال بإمكانك اختيار المقاييس عندما يكون للمورد النوع UNKNOWN، ولكن عليك مراعاة ما يلي:
- قد يصبح المورد من النوع
UNKNOWNمتوافقًا لاحقًا، ولكن قد يظلUNKNOWNإلى أجل غير مسمى. - وقد تظهر عناصر جديدة من النوع
UNKNOWNفي أي وقت. هذه الكائنات متوافقة مع الأنظمة القديمة لأن قيمة التعداد متاحة بالفعل. نقدّم موارد تتعلّق بهذا التغيير عند توفّرها حتى تتمكّن من الاطّلاع على تقييم دقيق لحسابك. قد يظهر رمزUNKNOWNبسبب نشاط جديد في حسابك من خلال واجهات أخرى أو لأنّ أحد الموارد لم يعُد متوافقًا رسميًا. - قد تكون موارد
UNKNOWNمرتبطة بمقاييس تفصيلية يمكنك الاستعلام عنها. - تظهر عادةً
UNKNOWNالموارد بالكامل في واجهة مستخدِم "إعلانات شبكة البحث 360".