Layanan notifikasi
Layanan notifikasi AFP memungkinkan platform AFP Direct menerima notifikasi setelah perubahan status sub-akun dan situs. Platform dapat menggunakan Platform API untuk menyelidiki perubahan.
Untuk menerima notifikasi, terapkan server yang menerima permintaan POST dan mengurai payload JSON yang diuraikan dalam skema (lihat contoh penyiapan). Kemudian, Anda harus memberikan URL endpoint kepada Partner Manager Strategis 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:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"notificationType": "PUBLISHER_APPROVAL"
}
Notifikasi persetujuan situs akan terlihat seperti:
{
"accountName" : "platforms/pub-1234567890123456/accounts/pub-0987654321654321",
"domain": "afpsite.com",
"notificationType": "SITE_APPROVAL"
}
Contoh penyiapan
Berikut adalah contoh server NodeJS yang mencatat konten pemberitahuan 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
Pastikan endpoint Anda berfungsi dengan mengirim 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 diizinkan untuk mengakses endpoint Anda. Layanan pemberitahuan mengikuti perintah yang diuraikan dalam file robots.txt
di root domain Anda, jika ada:
User-agent: GoogleOther
Disallow: <ensure your endpoint is not disallowed>