{"id":278794,"date":"2026-03-07T12:44:18","date_gmt":"2026-03-07T12:44:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/aimiles-ai-agent\/"},"modified":"2026-04-08T14:03:39","modified_gmt":"2026-04-08T14:03:39","slug":"aimiles-ai-agent","status":"publish","type":"plugin","link":"https:\/\/so.wordpress.org\/plugins\/aimiles-ai-agent\/","author":23445702,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.2.0","stable_tag":"0.2.0","tested":"6.9.4","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"aiMiles - AI Agent","header_author":"aiMiles","header_description":"Detect AI agents (GPTBot, ClaudeBot, etc.) and serve them with sponsored content injection.","assets_banners_color":"","last_updated":"2026-04-08 14:03:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/aimiles.ai","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":10,"downloads":276,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"aimiles","date":"2026-03-07 12:44:38"},"0.2.0":{"tag":"0.2.0","author":"aimiles","date":"2026-04-08 14:03:39"}},"upgrade_notice":{"0.2.0":"<p>Major update: AI bot requests are now proxied through the aiMiles serve API for simpler, more reliable sponsored content delivery. No settings changes required \u2014 your existing API key continues to work.<\/p>","0.1.0":"<p>Initial release of aiMiles.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[15643,2353,229563,216551,377],"plugin_category":[35],"plugin_contributors":[257297],"plugin_business_model":[],"class_list":["post-278794","plugin","type-plugin","status-publish","hentry","plugin_tags-agents","plugin_tags-ai","plugin_tags-claude","plugin_tags-gpt","plugin_tags-monetization","plugin_category-advertising","plugin_contributors-aimiles","plugin_committers-aimiles"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/aimiles-ai-agent.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>aiMiles detects AI agents visiting your WordPress site and allows you to serve them sponsored content.<\/p>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li>When any request hits your site, the plugin checks the User-Agent header<\/li>\n<li>If it matches a known AI bot signature (25+ supported), the request is routed through the aiMiles serve API<\/li>\n<li>The API fetches your original page, appends a sponsored message, and returns the result to the bot<\/li>\n<li>Human visitors are never affected \u2014 they always see your original, unmodified pages<\/li>\n<\/ol>\n\n<h4>Supported AI Agents<\/h4>\n\n<ul>\n<li>GPTBot (OpenAI)<\/li>\n<li>ChatGPT-User (OpenAI)<\/li>\n<li>ClaudeBot (Anthropic)<\/li>\n<li>Claude-Web (Anthropic)<\/li>\n<li>PerplexityBot (Perplexity)<\/li>\n<li>Google-Extended (Google)<\/li>\n<li>Meta-ExternalAgent (Meta)<\/li>\n<li>AppleBot-Extended (Apple)<\/li>\n<li>ByteSpider (ByteDance)<\/li>\n<li>CCBot (Common Crawl)<\/li>\n<li>And 15+ more<\/li>\n<\/ul>\n\n<h3>Configuration<\/h3>\n\n<h4>Enable\/Disable<\/h4>\n\n<p>Toggle detection and serving on\/off.<\/p>\n\n<h4>API Key<\/h4>\n\n<p>Your aiMiles API key is required. Get one at https:\/\/app.aimiles.ai\/publishers\/settings<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the aiMiles serve API (https:\/\/app.aimiles.ai\/api\/serve) to proxy AI bot requests. An API key is required to use this service.<\/p>\n\n<h4>Data sent to the API<\/h4>\n\n<p>When an AI agent is detected visiting your site, the plugin makes a request to https:\/\/app.aimiles.ai\/api\/serve with the following query parameters:<\/p>\n\n<ul>\n<li><code>url<\/code> \u2014 The full URL the bot was requesting on your site<\/li>\n<li><code>key<\/code> \u2014 Your API key (for authentication)<\/li>\n<li><code>ua<\/code> \u2014 The visitor's User-Agent header<\/li>\n<\/ul>\n\n<p>The serve API fetches your original page, appends sponsored content, logs the visit, and returns the modified HTML. This happens on every AI agent page visit. Human visitors are never routed through the API.<\/p>\n\n<p>Service provided by aiMiles: <a href=\"https:\/\/aimiles.ai\/terms\">Terms of Service<\/a>, <a href=\"https:\/\/aimiles.ai\/privacy-policy\">Privacy Policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Download and unzip the plugin<\/li>\n<li>Upload the <code>aimiles<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Settings &gt; aiMiles to configure<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"what%20ai%20agents%20are%20supported%3F\"><h3>What AI agents are supported?<\/h3><\/dt>\n<dd><p>Over 25 AI agents including GPTBot, ClaudeBot, PerplexityBot, Google-Extended, and more.<\/p><\/dd>\n<dt id=\"will%20this%20affect%20regular%20visitors%3F\"><h3>Will this affect regular visitors?<\/h3><\/dt>\n<dd><p>No, the injected content is invisible to human visitors and only readable by AI agents.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Switched to aiMiles serve API \u2014 all fetching, injection, and logging now handled server-side<\/li>\n<li>Removed client-side content injection (class-injector.php) and separate visit logging (class-logger.php)<\/li>\n<li>Simpler, more reliable architecture with fail-open behavior<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Detect AI agents (GPTBot, ClaudeBot, PerplexityBot, etc.) visiting your WordPress site and monetize them with sponsored content injection.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/278794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=278794"}],"author":[{"embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aimiles"}],"wp:attachment":[{"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=278794"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=278794"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=278794"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=278794"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=278794"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/so.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=278794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}