Directory / plugin

GeistM Adnet

v1.5.0 · by geistm

Publisher plugin for Adnet: contextual ads matched to your site's signed self-description, with payouts settled to your site's own wallet.

About this plugin

GeistM Adnet connects your WordPress site to Adnet, GeistM’s contextual advertising network. Instead of tracking visitors, Adnet matches campaigns to what your site says about itself: you describe your content once, the plugin signs that description with a key only your site holds, and the network matches ads against it.

How it works

  1. Describe your site. Write a short summary of what you publish (or draft one with the GeistM AI service). The plugin publishes it — with your licensing and AI-use policies — as a machine-readable declaration at /.well-known/ai, following the open AI Discovery Standard.
  2. Sign it. The plugin creates a site wallet (a secp256k1 keypair generated and encrypted on your own server) and signs the declaration. Nothing is published until an administrator approves it, and content changes require a re-sign.
  3. Connect to Adnet. Enable Adnet and click Check & Connect. The network verifies your signed declaration and matches campaigns to your site’s topics and audience.
  4. Place ads. Use the Adnet Ad Slot block (banner, square, card or QR), or turn on automatic placement after every Nth paragraph.
  5. Get paid. Each campaign holds its own budget and rates. Verified views and clicks on your site are credited to your site’s wallet, and payouts are made directly — no intermediary holds your earnings.

Also included

  • Signed /llms.txt and optional /llms-full.txt generated from your site structure, so the content AI agents read can be verified as yours
  • Machine-readable policies at /.well-known/ai/policies — content licensing, quoting permissions, AI training opt-in/opt-out
  • Per-page SHA-256 content hashes and a <link rel="ai-discovery"> tag / HTTP Link header
  • Wallet backup and restore

Contextual, not behavioural. Ads are chosen from your site’s declared topics, not from a profile of the visitor. The Adnet client sets no cookies and shares nothing with other ad networks.

Open standard. The /.well-known/ai declaration implements the AI Discovery Standard, an open specification (CC-BY-4.0) created by Rootz — see rootz.global/ai-discovery. This plugin is an independent implementation published by GeistM.

External services

The signed declaration, llms.txt and policies are generated locally from your WordPress content. The plugin contacts external services only for the features below, and none of them run until an administrator turns the feature on or clicks the button that uses it. All connections use HTTPS.

1. Adnet ad service (adnet.geistm.com) — only when Adnet is enabled

Adnet is disabled by default. When an administrator enables it on the Adnet tab, every front-end page loads the Adnet client script (client/client.js) from the configured Adnet host — adnet.geistm.com by default, or a first-party CNAME on your own domain that points to it. The script fetches the ads shown in your ad slots and records ad views and clicks.

  • Data sent: the page path, the requested ad format, and a random visitor identifier the script stores in the visitor’s browser (localStorage key adnet_vid). As with any web request, the service also receives the visitor’s IP address and browser user agent. No name, email address or account data is sent, and no cookies are set.
  • When: on each front-end page view while Adnet is enabled.
  • Provided by GeistM — Terms of Service, Privacy Policy.

2. Adnet network registration (adnet.geistm.com and epistery.com) — admin-triggered

When an administrator enables Adnet or clicks “Check & Connect” on the Adnet tab, the plugin submits the site to the Epistery discovery index (epistery.com/scan), which reads and verifies the public /.well-known/ai declaration, and registers the site with the Adnet matcher on the configured Adnet host. If your server cannot reach the matcher, the Adnet tab retries that one request from the administrator’s browser.

  • Data sent: your site’s domain name only.
  • When: only when an administrator enables Adnet or clicks Check & Connect. The resulting status is cached and nothing is re-checked on ordinary page loads.
  • The Adnet matcher is provided by GeistM — Terms of Service, Privacy Policy.
  • The Epistery discovery index is provided by Epistery — Terms of Service, Privacy Policy.

3. GeistM AI service (adnet.geistm.com) — admin-triggered

“Summarize with AI” drafts your site summary, core concepts and identity fields. The request is signed by your site wallet, so no AI provider API key is needed.

  • Data sent: your site name and tagline, the plain text of your About and Contact pages, your published page titles, your domain, and your site wallet’s public address.
  • When: only when an administrator clicks “Summarize with AI” and a site wallet exists. Without a wallet, the plugin uses local extraction and makes no external call. A free monthly quota applies per site.
  • Provided by GeistM — Terms of Service, Privacy Policy. GeistM uses Anthropic’s Claude to generate the draft; your site text is forwarded to Anthropic for that single request under Anthropic’s Commercial Terms and Privacy Policy.

The Adnet tab also checks for an optional _ai.<your-domain> DNS TXT record using your server’s own DNS resolver. No third-party service is involved.

Privacy

Data Storage

All structured data (organization identity, policies, llms.txt) is generated from your existing WordPress content and stored in wp_options. No user data is collected, and the plugin keeps no analytics or visitor logs. The plugin wallet’s private key is stored encrypted (AES-256-CBC, keyed from your wp-config.php salts).

External Services

The plugin connects to external services only when specific features are used. See “External services” above for what data is sent, when, and links to each service’s terms and privacy policy.

Cookies

This plugin does not set any cookies.

Plugin tags