Benachrichtigungsdienst

Über den AFP-Benachrichtigungsdienst können AFP Direct-Plattformen Benachrichtigungen bei Änderungen des Status des Unterkontos und der Website erhalten. Plattformen können die Platform API verwenden, um Änderungen zu untersuchen.

Wenn Sie Benachrichtigungen erhalten möchten, implementieren Sie einen Server, der POST-Anfragen akzeptiert und die im Schema beschriebene JSON-Nutzlast analysiert (siehe Beispielkonfiguration). Sie müssen dann Ihrem Strategic Partner Manager die Endpunkt-URL mitteilen, damit der Dienst aktiviert werden kann.

Schema

Die Nutzlast der Benachrichtigung muss dem folgenden Schema entsprechen:

{
  "$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
}

Weitere notificationTypes und andere Felder können später hinzugefügt werden.

Beispiele

Eine Benachrichtigung zur Genehmigung durch den Verlag oder Webpublisher sieht so aus:

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

Eine Benachrichtigung zur Genehmigung einer Website sieht so aus:

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

Beispiel für eine Einrichtung

Im folgenden Beispiel wird ein NodeJS-Server verwendet, der den Inhalt einer Benachrichtigung protokolliert:

// 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}`);
});

Beispiel-Endpunkt-URL: https://yourdomain.com/your-endpoint

Prüfen Sie mit curl, ob der Endpunkt funktioniert. Senden Sie dazu eine POST-Anfrage:

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-Datei konfigurieren

Prüfen Sie, ob dem Benachrichtigungsdienst der Zugriff auf Ihren Endpunkt gewährt wurde. Der Benachrichtigungsdienst berücksichtigt die Anweisungen in der Datei robots.txt im Stammverzeichnis Ihrer Domain, sofern vorhanden:

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