خدمة الإشعارات

تتيح خدمة إشعارات AFP لمنصات AFP Direct تلقّي الإشعارات عبر الحساب الفرعي والموقع الإلكتروني تغيرات الحالة. يمكن للمنصات استخدام Platform API للتحقيق في التغييرات

لتلقّي الإشعارات، يجب تنفيذ خادم يقبل تطلب POST وتحلّل حمولة JSON الموضحة في المخطط (يمكنك مراجعة مثال لعملية الإعداد). بعد ذلك، عليك تقديم عنوان URL لنقطة النهاية إلى مدير الشركاء الاستراتيجي الخاص بك لتفعيل الخدمة.

المخطط

يجب أن تلتزم حمولة الإشعارات بالمخطط التالي:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Notification",
  "type": "object",
  "properties": {
    "accountName": {
      "type": "string",
      "description": "The name of the modified sub-account."
    },
    "domain": {
      "type": "string",
      "description": "The domain the notification refers to, if any. Optional (only populated for SITE_APPROVAL)"
    },
    "notificationType": {
      "type": "string",
      "enum": ["PUBLISHER_APPROVAL", "SITE_APPROVAL"],
      "description": "Type of notification"
    }
  },
  "required": ["platformPublisherId", "publisherId", "notificationType"],
  "additionalProperties": false
}

ويمكن إضافة المزيد من notificationTypes والحقول الأخرى لاحقًا.

أمثلة

سيظهر إشعار موافقة الناشر على النحو التالي:

{
  "accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
  "notificationType": "PUBLISHER_APPROVAL"
}

سيظهر إشعار الموافقة على الموقع الإلكتروني على النحو التالي:

{
  "accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
  "domain": "afpsite.com",
  "notificationType": "SITE_APPROVAL"
}

مثال على الإعداد

في ما يلي مثال على خادم NodeJS يسجّل محتويات ملف الإشعار:

// Import express
const express = require('express');

// Create an express application
const app = express();

// Middleware to parse JSON bodies
app.use(express.json());

// Define a route to receive POST requests
app.post('/notification', (req, res) => {
    console.log('Received account name:', req.body.accountName)
    console.log('Received Domain:', req.body.domain)
    console.log('Received notification type', req.body.notificationType)

    // Send a response back to the client
    res.status(200).send('Notification received');
});

// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});

مثال على عنوان URL لنقطة النهاية: https://yourdomain.com/your-endpoint

يمكنك التحقّق من عمل نقطة النهاية من خلال إرسال طلب POST باستخدام curl:

curl -X POST https://yourdomain.com/your-endpoint \
     -H "Content-Type: application/json" \
     -d '{"accountName": "platforms/pub-1234567890123456/accounts/pub-0987654321654321", \
        "notificationType": "PUBLISHER_APPROVAL"}'

إعداد ملف robots.txt

تأكَّد من السماح لخدمة الإشعارات بالوصول إلى نقطة النهاية. تشير رسالة الأشكال البيانية خدمة الإشعارات تحترم التوجيهات الموضحة في الملف robots.txt لجذر نطاقك، إن وجد:

User-agent: GoogleOther
Disallow: <ensure your endpoint is not disallowed>