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>