Benachrichtigungsdienst

Mit dem AFP-Benachrichtigungsdienst erhalten AFP Direct-Plattformen Benachrichtigungen zu Änderungen des Unterkontos- und Websitestatus. Plattformen können die Platform API verwenden, um Änderungen zu untersuchen.

Implementieren Sie zum Empfangen von Benachrichtigungen einen Server, der POST-Anfragen akzeptiert und die im Schema beschriebene JSON-Nutzlast parst (siehe Beispieleinrichtung). Anschließend müssen Sie Ihrem Strategic Partner Manager die Endpunkt-URL zur Verfügung stellen, damit dieser den Dienst aktivieren kann.

Schema

Die Benachrichtigungsnutzlast 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 über die Genehmigung des Publishers würde so aussehen:

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

Eine Benachrichtigung über die Genehmigung einer Website würde so aussehen:

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

Beispiel für eine Einrichtung

Das folgende Beispiel zeigt einen NodeJS-Server, 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, ob der Endpunkt funktioniert. Senden Sie dazu eine POST-Anfrage mit 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"}'

robots.txt konfigurieren

Achten Sie darauf, dass dem Benachrichtigungsdienst Zugriff auf Ihren Endpunkt gewährt wird. Der Benachrichtigungsdienst berücksichtigt die Anweisungen, die in der Datei robots.txt im Stammverzeichnis Ihrer Domain aufgeführt sind, sofern vorhanden:

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