يوضِّح هذا الدليل كيفية استخدام الردود التلقائية على الويب لتلقّي إشعارات غير متزامنة. لمعرفة حالة طلبات تصدير شرائح الجمهور هذه الميزة متاحة فقط في الإصدار v1alpha من Data API.
إشعارات الرد التلقائي على الويب من الميزات المتقدمة في بيانات "إحصاءات Google" API. للحصول على مقدمة عن تصدير شرائح الجمهور، اطّلِع على إنشاء عملية تصدير شرائح جمهور.
بدون الردود التلقائية على الويب، ستحتاج إلى استطلاع واجهة برمجة التطبيقات بشكل دوري من أجل وتحديد وقت اكتمال الطلب.
إنشاء نموذج لتطبيق ردّ تلقائي على الويب باستخدام Cloud Run
يمكنك إنشاء نموذج لتطبيق ردّ تلقائي على الويب باستخدام Google Cloud من خلال اتّباع الخطوات التالية: الدليل التوجيهي Quickstart: نشر نموذج خدمة على Cloud Run.
لكي يستمع نموذج الخدمة إلى طلبات إشعار الرد التلقائي على الويب POST،
استبدل ملف index.js
من الدليل التوجيهي الخاص بالبدء السريع بما يلي
الرمز:
import express from 'express';
const app = express();
app.use(express.json());
app.post('/', (req, res) => {
const channelToken = req.get('X-Goog-Channel-Token');
const bodyJson = JSON.stringify(req.body);
console.log(`channel token: ${channelToken}`);
console.log(`notification body: ${bodyJson}`);
res.sendStatus(200);
});
const port = parseInt(process.env.PORT) || 8080;
app.listen(port, () => {
console.log(`helloworld: listening on port ${port}`);
});
تتم طباعة هذا الرمز عند إرسال كل إشعار ردّ تلقائي وارد على الويب يتم إرساله كطلب POST
إزالة نص JSON لإشعار الرد التلقائي على الويب وقيمة الرمز المميّز للقناة
عرض رمز HTTP 200
للإشارة إلى العملية الناجحة.
عند الوصول إلى نهاية الدليل التوجيهي حول التشغيل السريع في السحابة الإلكترونية ونشره
تطبيق الرد التلقائي على الويب باستخدام الأمر gcloud run deploy
، احفظ
عنوان URL حيث تم نشر الخدمة.
يتم عرض عنوان URL للخدمة في وحدة التحكّم، على سبيل المثال:
Service URL: https://webhooks-test-abcdef-uc.a.run.app
هذا هو معرّف الموارد المنتظم (URI) لإشعارات الخادم الذي يستمع إليه التطبيق إلى إشعارات الرد التلقائي على الويب إحصاءات Google
إنشاء قائمة مستخدمين وتفعيل إشعارات الرد التلقائي على الويب
لطلب إشعارات الردّ التلقائي على الويب، حدِّد القيم التالية في webhookNotification
الكائن:
معرّف الموارد المنتظم (URI) لإشعارات الخادم يحتوي على عنوان الويب الذي سيتلقى إشعارات الرد التلقائي على الويب.
(اختياري) سلسلة عشوائية
channelToken
للحماية من انتحال هوية الرسالة. تحديدchannelToken
في عنوان HTTP يتضمّن العنصرX-Goog-Channel-Token
طلب POST للردّ التلقائي على الويب.
في ما يلي نموذج طلب باستخدام الردود التلقائية على الويب:
طلب HTTP
POST https://analyticsdata.googleapis.com/v1alpha/properties/1234567/audienceLists
{
"webhookNotification": {
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken": "123456"
},
"audience": "properties/1234567/audiences/12345",
"dimensions": [
{
"dimensionName": "deviceId"
}
]
}
تحتوي الاستجابة من طريقة audienceLists.create
على
webhookNotification
، مما يؤكد نجاح الرد التلقائي المحدّد على الويب
استجابت في أقل من 5 ثوانٍ.
إليك نموذج الرد:
استجابة HTTP
{
"response": {
"@type": "type.googleapis.com/google.analytics.data.v1alpha.AudienceList",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName": "Purchasers",
"dimensions": [
{
"dimensionName": "deviceId"
}
],
"state": "ACTIVE",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged": 51,
"rowCount": 13956,
"percentageCompleted": 100,
"webhookNotification": {
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken": "123456"
}
}
}
في حال عدم استجابة الرد التلقائي على الويب، أو في حال تقديم عنوان URL غير صحيح للخدمة، فسيتم إرجاع رسالة خطأ بدلاً من ذلك.
في ما يلي مثال على رسالة الخطأ التي قد تظهر لك:
{
"error": {
"code": 400,
"message": "Expected response code of 200 from webhook URI but instead
'404' was received.",
"status": "INVALID_ARGUMENT"
}
}
معالجة إشعارات الرد التلقائي على الويب
يحتوي طلب POST إلى خدمة الرد التلقائي على الويب على كل من إصدار JSON من
مو��د ��ن ال��ملي��ت ال��ي تستغرق وقتًا طويلاً
في النص الأساسي، والحقل sentTimestamp
. يحدّد الطابع الزمني المُرسَل
وقت حقبة يونكس بالميكرو ثانية التي تم فيها إرسال الطلب. يمكنك استخدام هذه الصفحة
طابع زمني لتحديد الإشعارات التي تمت إعادة تشغيلها.
يتم إرسال طلب أو طلبين من طلبات POST إلى الرد التلقائي على الويب أثناء إنشاء قائمة المستخدمين:
- يتم إرسال طلب POST الأول على الفور، مع عرض طلب POST الذي تم إنشاؤه حديثًا
قائمة المستخدمين في حالتها
CREATING
. إذا لم يقدم الطلب الأول إلى تعذّر الرد التلقائي على الويب، تعرض عمليةaudienceLists.create
خطأ وتفاصيل تعذُّر الرد التلقائي على الويب. - يتم إرسال طلب POST الثاني بعد اكتمال قائمة المستخدمين
الإنشاء. تكتمل عملية الإنشاء عندما تصل قائمة المستخدمين إلى أيّ مما يلي:
حالة
ACTIVE
أوFAILED
.
في ما يلي مثال على الإشعار الأول لقائمة مستخدمين، في
ولاية CREATING
:
{
"sentTimestamp":"1718261355692983",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName":"Purchasers",
"dimensions":[{"dimensionName":"deviceId"}],
"state":"CREATING",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged":0,
"rowCount":0,
"percentageCompleted":0,
"webhookNotification":
{
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken":"123456"
}
}
في ما يلي مثال على الإشعار الثاني لقائمة مستخدمين في
ولاية ACTIVE
:
{
"sentTimestamp":"1718261355692983",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName":"Purchasers",
"dimensions":[{"dimensionName":"deviceId"}],
"state":"ACTIVE",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged":68,
"rowCount":13956,
"percentageCompleted":100,
"webhookNotification":
{
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken":"123456"
}
}
يؤكد الإشعار الثاني أنه قد تم إنشاء قائمة المستخدمين وأنها
جاهز للاستعلام باستخدام audienceLists.query
.
لاختبار الردود التلقائية على الويب بعد طلب طريقة audienceLists.create
، يمكنك:
فحص السجلات
لنموذج تطبيق الردّ التلقائي على الويب في Cloud Run، والاطّلاع على نص JSON لكل
إشعار أرسلته "إحصاءات Google"