# AdsAnyway for AI agents AdsAnyway sells ad slots on niche and gaming sites. The seller keeps 85% of each paid booking. AdsAnyway keeps 15%. No listing fee. An agent can finish two jobs here: - "Monetize my website": create a slot priced from the site's traffic, put the snippet on the site, confirm it loads. - "Find the best places to advertise my site": search slots, compare fit and cost, book one. ## Connect over MCP Human setup guide: https://adsanyway.com/agents URL: https://adsanyway.com/mcp (Streamable HTTP, JSON-RPC 2.0) Claude Code: claude mcp add --transport http adsanyway https://adsanyway.com/mcp Claude: Customize > Connectors > Add custom connector, URL https://adsanyway.com/mcp. Choose sign-in and automatic client registration. ChatGPT web: Plugins > Add custom MCP server, URL https://adsanyway.com/mcp, OAuth. Create and install the plugin, then select AdsAnyway with @ in a chat. Account and workspace permissions apply. Cursor: mcp.json {"mcpServers":{"adsanyway":{"url":"https://adsanyway.com/mcp"}}} Grok: add a remote MCP server, Streamable HTTP, URL https://adsanyway.com/mcp Sign in: public tools work without an account. The first call to a tool that acts for an account returns HTTP 401 with WWW-Authenticate, and the AI app opens the AdsAnyway sign-in and consent page (OAuth 2.1 with PKCE, dynamic client registration). Scripts can send Authorization: Bearer with the gam_session token from POST https://adsanyway.com/api/login instead. Never put a token in a query string. The prompts monetize_my_site and find_ad_placements spell out each job. ### Monetize a site 1. monetize_site with url, plus monthly_visits if the owner knows it. The price per day defaults to the same suggestion as the website wizard. An existing site and 728x90 slot on this account are reused, not duplicated. 2. Put the returned snippet on each page where the ad should show. WordPress: install https://adsanyway.com/wordpress-plugin.zip, Settings > AdsAnyway, paste the token, or use the shortcode [adsanyway zone="TOKEN"]. 3. Load one page that has the slot, then check_install with zone_id. installed turns true on the first ad load. 4. Follow next_steps from monetize_site for payouts. Empty slots serve a house ad that links to the book page with utm_medium=house. ### Find placements and book 1. search_marketplace with a category or keywords from the buyer's site, sort=value (cheapest per 1,000 loads first), and budget_cents if there is a budget. 2. Pick 3 to 5 by audience fit, cost per 1,000 loads and next_open_date. get_listing shows open dates, accepted_sizes, the ad types the slot takes and seller approval. ad_policy has the rules every ad follows. 3. Make a banner at an accepted size. upload_link gives a one-time URL to send the file with curl; it returns creative_id. Or create_creative with a permanent public image_url. No image? create_text_banner draws one from a headline. 4. book_zone with zone_id, creative_id and days. If the balance does not cover it, the result has checkout_url: the buyer opens it to pay by card. ### Tools Public: search_marketplace, get_listing, ad_policy, zone_availability, list_auctions, list_discord_servers. Seller: me, monetize_site, check_install, list_sites, list_zones, create_site, update_site, create_zone, update_zone, get_embed, list_seller_bookings, seller_approve, seller_decline, create_discord_server, list_my_discord_servers, discord_visibility, list_discord_inbox, mark_discord_delivered, decline_discord_booking, create_auction, list_payouts, request_payout, payout_connect_start. Buyer: list_campaigns, book_zone, create_creative, upload_link, create_text_banner, list_creatives, pause_campaign, cancel_pending, cancel_renew, wallet, wallet_ledger, wallet_topup_start, book_discord, cancel_discord_booking, bid_auction. Staff only: outreach_brief with zone_id. It returns the listed 30-day charge, the seller 85%, AdsAnyway 15%, who is paid through which date, the next open 30 days, the games on the top pages, and four email sentences. It does not send mail or search the web. update_zone can pause a slot (active false), change prices, size, house_click_url (same-origin /zone/ID?utm_...), house_image_url, and require_seller_approval. wallet_topup_start and payout_connect_start return a URL for the person to open. They do not credit the balance or finish Stripe Connect themselves. Fields ending in _cents are cents. Show dollars to people. ## Without MCP (plain HTTP) 1. POST https://adsanyway.com/api/signup (accept_terms true, display_name, password 8+ chars; leave the website field out) or POST https://adsanyway.com/api/login with JSON {"email":"...","password":"..."}. Keep the gam_session cookie (HttpOnly, SameSite=Lax). 2. POST https://adsanyway.com/api/agent/setup with that cookie. JSON {"url":"https://example.com","name":"Site name","category":"mobile games","monthly_visits":20000,"zone_name":"Header"}. Same result as monetize_site. 3. GET https://adsanyway.com/api/zones/ZONE_ID/embed-status shows views and verified. GET https://adsanyway.com/api/public/zones/TOKEN confirms the token. Do not change the 15/85 split. Do not invent a second analytics vendor.