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>