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>