agentleFS
adops-tooladops-tool/AdTech-LeadGen-agent-skills/CMS-Integration-Guide-Builder/SKILL.md

cms-integration-guide-builder

Skill1 starsChanged 47 days agoApache-2.0View on GitHub

Generates step-by-step Markdown onboarding guides for adding ads.txt entries and placing header/body ad tags, adapted to a publisher's specific CMS. Use this skill whenever a user wants to: write ad integration instructions for a publisher, create an onboarding guide for ads.txt and ad tags, generate CMS-specific ad setup documentation, explain how to add GAB (Google Authorized Buyer) to ads.txt, or produce technical instructions for placing ad code in WordPress, Next.js, plain HTML, Webflow, Shopify, Ghost, or any other CMS. Trigger on phrases like "ad integration guide", "onboarding for publisher", "how to add ads.txt", "place ad tags in WordPress/Next.js/HTML", "CMS ad setup", "publisher integration steps", or any request to document the process of integrating ad tags into a website. Always use this skill — do not write ad integration guides without it.

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    No emojis. Imperative mood throughout.

    line 22
  2. Distinctive:

    Mandatory rule: Always include an explicit note that the platform operates as a

    line 80
  3. Distinctive:

    Use Google's ads.txt Validator or Google Search Console to confirm ads.txt is crawlable.

    line 114
  4. Distinctive:

    If the CMS is not in the list above, produce generic instructions referencing:

    line 182
  5. Distinctive:

    Every guide MUST include the GAB (Google Authorized Buyer) ads.txt note with the exact phrasing specified above.

    line 193
  6. Very specific:

    Every guide MUST include the google.com ads.txt line alongside the adwmg.com lines.

    line 195
  7. Distinctive:

    All instructions must use imperative mood ("Navigate to...", "Add the following...", "Verify that...").

    line 196
  8. Distinctive:

    No marketing language, no filler phrases ("Easy!", "Simply", "Just").

    line 198
  9. Very specific:

    Use {PUBLISHER_SEAT_ID} as a placeholder where the publisher's actual seat ID would go.

    line 203

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

CMS-Integration-Guide-Builder

Persona: AdTech Solutions Architect — Technical Solutions Engineer.

Generate a step-by-step Markdown guide for adding ads.txt entries and placing header/body ad tags, adapted to the publisher's CMS. Output is strictly valid Markdown. No marketing language. No emojis. Imperative mood throughout. Every guide must include GAB (Google Authorized Buyer) ads.txt instruction.


Input Schema

{
  "cms_platform": "string",
  "publisher_domain": "string"
}

See schema/input_schema.json for full JSON Schema definition.


Output Schema

Strictly Markdown text — a complete onboarding guide.

See schema/output_schema.json for the structural contract.


Guide Structure (always use this exact section order)

# Ad Integration Guide: {cms_platform} — {publisher_domain}

## Prerequisites
## 1. ads.txt Configuration
## 2. Ad Tag Placement — Header
## 3. Ad Tag Placement — Body / Ad Slots
## 4. Verification
## 5. Troubleshooting

Content Rules per Section

Prerequisites

List required access, permissions, and tools specific to the CMS. Be specific (e.g., "Admin access to WordPress dashboard", "Write access to the repository root", "FTP/SFTP access to web root"). Include version requirements if relevant.

1. ads.txt Configuration

Always include all three of these entries (substitute publisher_domain where shown):

adwmg.com, {PUBLISHER_SEAT_ID}, DIRECT, f08c47fec0942fa0
adwmg.com, {PUBLISHER_SEAT_ID}, RESELLER, f08c47fec0942fa0
google.com, pub-0000000000000000, DIRECT, f08c47fec0942fa0

Mandatory rule: Always include an explicit note that the platform operates as a Google Authorized Buyer (GAB) and that the google.com line authorizes GAB demand. Phrase it as: "The google.com entry authorizes Google Authorized Buyer (GAB) demand through the platform's GAB seat."

Provide CMS-specific instructions for creating or editing ads.txt at the domain root (https://{publisher_domain}/ads.txt). Instructions must be imperative and include exact file paths or UI navigation steps for the given CMS.

2. Ad Tag Placement — Header

Provide the exact method for inserting a <script> tag into <head> for the given CMS. Include the actual code block with a placeholder script URL. Example placeholder:

<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>

For each CMS, specify the exact file, plugin, or UI location. Do not say "add it to the header" without specifying how.

3. Ad Tag Placement — Body / Ad Slots

Provide instructions for placing ad slot div tags in the page body. Include:

  • A sample ad slot div with id and style attributes.
  • The corresponding GPT googletag.defineSlot() call in a <script> block.
  • The exact CMS mechanism for inserting body code (widget, shortcode, template partial, etc.).

4. Verification

Provide 3–5 concrete verification steps:

  1. Navigate to https://{publisher_domain}/ads.txt and confirm the entries are present.
  2. Open browser DevTools > Network tab, filter for gpt.js or securepubads, confirm 200 response.
  3. Open browser DevTools > Console, type googletag.pubads().getSlots(), confirm slot array is non-empty.
  4. Use Google's ads.txt Validator or Google Search Console to confirm ads.txt is crawlable.
  5. Confirm no CSP (Content Security Policy) errors blocking ad scripts in DevTools > Console.

5. Troubleshooting

Provide a table with at minimum 4 rows:

SymptomProbable CauseResolution

Include these minimum rows:

  • ads.txt returns 404
  • Ads not rendering
  • GAB demand not appearing
  • CSP blocking ad scripts

CMS-Specific Implementation Notes

WordPress

  • ads.txt: Use the Yoast SEO plugin (SEO > Tools > File Editor) or the Ads.txt Manager plugin, or place the file directly in /var/www/html/public_html/ads.txt (server root, not theme root). Never place ads.txt in the theme directory.
  • Header scripts: Use WPCode plugin (formerly Insert Headers and Footers) or add to functions.php via wp_head() hook: wp_enqueue_script() or add_action('wp_head', ...).
  • Body/slot code: Use a Custom HTML widget in Appearance > Widgets, or a shortcode via WPCode, or directly in a page/post via the HTML block in the block editor.
  • Reference functions.php and plugin names explicitly in the guide.

Next.js

  • ads.txt: Place ads.txt in the /public directory — Next.js serves /public contents at the domain root automatically.
  • Header scripts: Use next/script with strategy="afterInteractive" inside _document.js or app/layout.js (App Router). Do not use raw <script> tags in _document.js <Head>.
  • Body/slot code: Use a client component with 'use client' directive and useEffect to initialize GPT after hydration. Reference next.config.js if domain rewrites are needed.
  • Reference _document.js, next/script, next.config.js, or app/layout.js explicitly.

HTML (static)

  • ads.txt: Create ads.txt in the web root directory (same level as index.html). Upload via FTP/SFTP or the hosting control panel file manager.
  • Header scripts: Add <script> tags directly inside the <head> element of each HTML file, or in a shared header include/template if using SSI or a static site generator.
  • Body/slot code: Add ad slot divs directly before </body> or within the content area of each HTML file.
  • Reference <head> and <body> tags explicitly in the guide.

Webflow

  • ads.txt: Use Project Settings > Hosting > Edit custom code, or use the Webflow ads.txt field under Publishing settings if available; otherwise use a 301 redirect workaround via Webflow's redirect rules pointing /ads.txt to a hosted raw file (e.g., GitHub Gist, CDN).
  • Header scripts: Project Settings > Custom Code > Head Code section.
  • Body scripts: Page Settings > Custom Code > Before </body> tag section, per page.

Shopify

  • ads.txt: Shopify does not support serving files from domain root directly; use a custom robots.txt + redirect approach, or a dedicated Shopify app (e.g., Ads.txt Manager app).
  • Header scripts: Online Store > Themes > Edit Code > theme.liquid — insert before </head>.
  • Body scripts: theme.liquid — insert before </body>, or use a Section/Snippet.

Ghost

  • ads.txt: Upload via Ghost Admin > Settings > Code Injection, or place directly on the server at the web root if self-hosted.
  • Header scripts: Ghost Admin > Settings > Code Injection > Site Header.
  • Body scripts: Ghost Admin > Settings > Code Injection > Site Footer.

Default (unknown CMS)

If the CMS is not in the list above, produce generic instructions referencing:

  • Server file system access for ads.txt (FTP/SFTP or hosting control panel).
  • A <head> injection mechanism for header scripts.
  • A <body> injection mechanism for body scripts.
  • State explicitly that the exact steps depend on the CMS/hosting environment.

Rules

  1. Output is strictly valid Markdown — no JSON, no prose outside Markdown structure, no emojis.
  2. Every guide MUST include the GAB (Google Authorized Buyer) ads.txt note with the exact phrasing specified above.
  3. Every guide MUST include the google.com ads.txt line alongside the adwmg.com lines.
  4. All instructions must use imperative mood ("Navigate to...", "Add the following...", "Verify that...").
  5. No marketing language, no filler phrases ("Easy!", "Simply", "Just").
  6. Code blocks must use fenced Markdown code blocks with language specifiers (html, js, bash, text, etc.).
  7. Adapt every section to the specific CMS — generic instructions are only acceptable for unknown platforms.
  8. Use {PUBLISHER_SEAT_ID} as a placeholder where the publisher's actual seat ID would go.
  9. The guide must be complete and self-contained — a publisher should be able to follow it without any additional documentation.

I/O Examples

Example 1 — WordPress / myblog.com

Input:

{"cms_platform":"WordPress","publisher_domain":"myblog.com"}

Output (excerpt):

# Ad Integration Guide: WordPress — myblog.com

## Prerequisites

- Admin access to the WordPress dashboard (wp-admin).
- A plugin slot available for installing WPCode (formerly Insert Headers and Footers).
- FTP/SFTP access or hosting file manager access to the server root (not the theme root).
- PHP 7.4+ and WordPress 5.8+ recommended.

## 1. ads.txt Configuration

Navigate to `https://myblog.com/ads.txt` after setup to verify the file is accessible.

### Option A: Ads.txt Manager Plugin (recommended)

1. Navigate to **Plugins > Add New** and install the **Ads.txt Manager** plugin.
2. Activate the plugin.
3. Navigate to **Settings > Ads.txt** and add the following entries:

...

Example 2 — Next.js / newssite.io

Input:

{"cms_platform":"Next.js","publisher_domain":"newssite.io"}

Output (excerpt):

# Ad Integration Guide: Next.js — newssite.io

## Prerequisites

- Node.js 18+ and npm/yarn installed.
- Write access to the Next.js project repository.
- The `/public` directory exists at the project root.
- Deployment pipeline configured (Vercel, self-hosted, etc.).

## 1. ads.txt Configuration

Place `ads.txt` in the `/public` directory. Next.js serves all files in `/public` at the
domain root, making the file accessible at `https://newssite.io/ads.txt` automatically.

1. Create `/public/ads.txt` with the following content:

...

Example 3 — HTML / static.com

Input:

{"cms_platform":"HTML","publisher_domain":"static.com"}

Output (excerpt):

# Ad Integration Guide: HTML — static.com

## Prerequisites

- FTP/SFTP access or hosting control panel file manager access to the web root.
- Text editor (VS Code, Sublime Text, or equivalent).
- The web root directory contains `index.html`.

## 1. ads.txt Configuration

Create a file named `ads.txt` in the web root directory (the same directory as `index.html`).

...

## 2. Ad Tag Placement — Header

Add the following script tag inside the `<head>` element of each HTML file that will display ads:

```html
<head>
  <!-- existing head content -->
  <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
</head>

...

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.