Dịch vụ thông báo

Dịch vụ thông báo AFP cho phép các nền tảng AFP Direct nhận thông báo theo các thay đổi về trạng thái của tài khoản phụtrang web. Các nền tảng có thể sử dụng API nền tảng để điều tra các thay đổi.

Để nhận thông báo, hãy triển khai một máy chủ chấp nhận các yêu cầu POST và phân tích cú pháp tải trọng JSON được nêu trong giản đồ (xem phần thiết lập ví dụ). Sau đó, bạn cần cung cấp URL điểm cuối cho Nhà quản lý đối tác chiến lược để kích hoạt dịch vụ.

Lược đồ

Tải trọng thông báo phải tuân thủ giản đồ sau:

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

Có thể thêm notificationTypes và các trường khác sau.

Ví dụ

Thông báo phê duyệt của nhà xuất bản sẽ có dạng như sau:

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

Thông báo phê duyệt trang web sẽ có dạng như sau:

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

Thiết lập mẫu

Sau đây là ví dụ về một máy chủ NodeJS ghi lại nội dung của thông báo:

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

Ví dụ về URL điểm cuối: https://yourdomain.com/your-endpoint

Xác minh điểm cuối của bạn đang hoạt động bằng cách gửi yêu cầu POST thông qua 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"}'

Định cấu hình tệp robots.txt

Đảm bảo rằng dịch vụ thông báo được phép truy cập vào điểm cuối của bạn. Dịch vụ thông báo tuân theo các lệnh được nêu trong tệp robots.txt của thư mục gốc của miền, nếu có:

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