feat: GEO strategy — AI visibility dashboard, prompt monitor, social amplification#1357
Merged
Conversation
…amplification Add comprehensive Generative Engine Optimization infrastructure to help AdCP dominate AI-generated responses about agentic advertising. Technical GEO infrastructure: - robots.txt allowing 10 AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.) - llms.txt and llms-full.txt following llmstxt.org convention - FAQ schema additions for "agentic advertising" and "AgenticAdvertising.org" GEO visibility dashboard (/admin/geo): - LLM Pulse API integration with 1-hour cache and stale fallback - KPI cards: mention rate, share of voice, prompts tracked, citation rate - Tables: model visibility, tracked prompts, cited URLs, competitive landscape - Internal prompt monitor endpoint for self-hosted GEO tracking GEO prompt monitor (weekly job): - Queries Claude Haiku with 15 seeded prompts across brand/competitive/intent - Detects AdCP mentions, competitor mentions (IAB Tech Lab), sentiment - Stores results in geo_prompts/geo_prompt_results tables - Migration 263 creates tables and seeds default prompts Content amplification: - "What is agentic advertising?" definitive docs page with FAQ accordions - Social amplification DMs: Addie sends authors LinkedIn + Twitter copy when their perspective is published (articles only, not links or members-only) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove premature social amplification DM from propose path (only fire on approve)
- Prevent XSS via javascript: URIs in cited URLs table
- Fix cache race condition: don't null cache before refresh fetch
- Add word boundaries to ADCP detection regex to reduce false positives
- Add 2s rate limiting between GEO monitor API calls
- Fix --color-error-800 → --color-error-700 (design system compliance)
- Scope tr:hover to tbody only (don't highlight table headers)
- Add ARIA attributes (role="status", role="alert") for accessibility
- Add scope="col" to all table headers
- Right-align numeric columns (mention rate, citation count, etc.)
- Fix sidebar label to sentence case ("GEO visibility")
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The LLM Pulse API uses /api/v1 (not /v1) with project_id-scoped endpoints. Rewrote to use the actual API structure: - /dimensions/projects — discover project ID (1274) - /metrics/summary — brand visibility, mentions, citations, sentiment - /metrics/sov — share of voice over time - /metrics/top_sources — top cited domains with visibility scores - /dimensions/competitors — tracked competitor list - /dimensions/prompts — all tracked prompts - /dimensions/models — tracked AI models Updated dashboard to show domain + avg visibility instead of URL + models for top sources table. Tested against live API: 54% brand mention rate, 100% SOV, agenticadvertising.org #4 cited source across 5 AI models. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Comprehensive GEO (Generative Engine Optimization) strategy to ensure AdCP dominates AI-generated discussions about agentic advertising.
What's included
GEO Admin Dashboard (
/admin/geo)LLMPULSE_API_KEYis missingGEO Prompt Monitor
geo_prompts+geo_prompt_resultstables with proper indexingSocial Amplification
SEO/GEO Assets
robots.txtallowing 10+ named AI crawlers (GPTBot, ClaudeBot, PerplexityBot, etc.)llms.txtandllms-full.txtfollowing the emerging llmstxt.org conventiondocs/agentic-advertising.mdxpage with FAQ accordions targeting high-value search queriesReview feedback addressed
http://orhttps://before rendering as links--color-error-700,tbody tr:hover, ARIA attributesscope="col"on table headers, right-aligned numeric columnsFiles changed
263_geo_monitor.sqlserver/src/routes/admin/geo.tsserver/src/addie/jobs/geo-monitor.tsserver/public/admin-geo.htmldocs/agentic-advertising.mdxrobots.txt,llms.txt,llms-full.txtTesting