Response header
Announce your site to the extension by sending your Publisher ID in a response header on every page.
Publisher header
This is an example Publisher ID. Replace it with your own before using it.
Better-Web-Publisher: zapub_7Fq2xR9nKd3wV8mB4tL6yH1c
Use your account's Publisher ID in the examples below. The extension reads this header to discover your integration and record subscriber activity.
This method can cover every page in one server configuration change. It announces participation; the separate request header Better-Web-Token supplies membership proof when you serve subscribers a clean page.
In your web server or proxy
Add the header in your server configuration so it applies to every page.
Nginx
This is an example Publisher ID. Replace it with your own before using it.
add_header Better-Web-Publisher "zapub_7Fq2xR9nKd3wV8mB4tL6yH1c" always;
Caddy
This is an example Publisher ID. Replace it with your own before using it.
header Better-Web-Publisher "zapub_7Fq2xR9nKd3wV8mB4tL6yH1c"
For Apache, add this to .htaccess or a vhost with mod_headers enabled.
Apache
This is an example Publisher ID. Replace it with your own before using it.
Header set Better-Web-Publisher "zapub_7Fq2xR9nKd3wV8mB4tL6yH1c"
A CDN or edge worker that lets you add response headers (Cloudflare, Fastly, and the like) works the same way.
In your application code
Any framework can set the header directly. In Node, Bun, or Deno you don't have to hand-write it — the official SDK builds the exact value for you and hands it back ready to send:
This is an example Publisher ID. Replace it with your own before using it.
import { createPublisher } from "@zeroad.network/token"
const publisher = createPublisher({
publisherId: "zapub_7Fq2xR9nKd3wV8mB4tL6yH1c",
hostnames: "example.com",
})
// on every response:
response.setHeader(...publisher.header)
Serve several hostnames?
Send the same header from all of them. Your Publisher ID is per account, not per site — every domain you own announces the same value, and each is recognised by its own hostname. In your dashboard they arrive as separate sites, and you can group them into one property if you like.
Once the header is live, visit with an installed extension connected to a paid subscription. Your site can appear after the extension uploads activity and the platform processes it. To set up without a paid subscription, add and verify the website from your dashboard using the extension.