Layanan notifikasi
Layanan notifikasi AFP memungkinkan platform AFP Direct menerima notifikasi saat perubahan status sub-akun dan situs. Platform dapat menggunakan Platform API untuk menyelidiki perubahan.
Untuk menerima notifikasi, implementasikan server yang menerima permintaan POST dan mengurai payload JSON yang diuraikan dalam skema (lihat contoh penyiapan). Anda harus memberikan URL endpoint ke Strategic Partner Manager untuk mengaktifkan layanan.
Skema
Payload notifikasi harus mematuhi skema berikut:
{
"$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
lainnya dan kolom lainnya dapat ditambahkan nanti.
Contoh
Notifikasi persetujuan penayang akan terlihat seperti ini:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"notificationType": "PUBLISHER_APPROVAL"
}
Notifikasi persetujuan situs akan terlihat seperti ini:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"domain": "afpsite.com",
"notificationType": "SITE_APPROVAL"
}
Contoh penyiapan
Berikut adalah contoh server NodeJS yang mencatat isi notifikasi ke dalam log:
// 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}`);
});
Contoh URL endpoint: https://yourdomain.com/your-endpoint
Verifikasi bahwa endpoint Anda berfungsi dengan mengirimkan permintaan POST menggunakan 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"}'
Mengonfigurasi robots.txt
Pastikan layanan notifikasi memiliki akses yang diizinkan ke endpoint Anda. Layanan notifikasi akan mengikuti perintah yang diuraikan dalam file robots.txt
root domain Anda, jika ada:
User-agent: GoogleOther
Disallow: <ensure your endpoint is not disallowed>