{"service":"AdSupply Local","version":"2.0","tagline":"Paste one script tag. Ads appear. Revenue flows.","base_url":"https://adsnear.me","pricing":{"model":"Pay-per-click","cost_per_click":8.0,"publisher_payout":4.0,"platform_share":4.0,"currency":"USD"},"publisher_integration":{"description":"For site owners who want to display local ads and earn revenue.","steps":["POST /api/publishers/apply -- register with email, name, website_url, category, zip_codes","Receive publisher_id instantly (auto-approved)","Embed the widget script tag on your site","Ads appear automatically, you earn $4.00 per click","Monitor earnings at GET /api/publishers/{id}/dashboard","Set up ACH payout at POST /api/publishers/{id}/payout"],"widget_html":"<!-- AdSupply Local Ad Widget -->\n<div class=\"adsupply-slot\"\n     data-publisher-id=\"YOUR_PUBLISHER_ID\"\n     data-category=\"YOUR_SITE_CATEGORY\"\n     data-zip=\"ZIP_CODES\"\n     data-geo=\"auto\">\n</div>\n<script src=\"https://adsnear.me/api/ads/widget.js\" async></script>","widget_attributes":{"data-publisher-id":{"required":true,"type":"string","description":"Your publisher ID from registration"},"data-category":{"required":true,"type":"string","description":"Site category. See /agents/categories for the full list."},"data-zip":{"required":false,"type":"string","description":"Comma-separated zip codes for fixed geo-targeting. e.g. '76102,76109,76110'. Use for local directories serving a known area. Leave empty for nationwide (no location filter)."},"data-geo":{"required":false,"type":"string","description":"Set to 'auto' for IP-based visitor geolocation. Server resolves visitor IP to zip code. Use for 'near me' sites where each visitor sees ads for their own location. If both data-zip and data-geo are set, data-geo takes priority."},"data-template":{"required":false,"type":"string","default":"sponsored_listing","enum":["wide_local_card","sidebar_box","mobile_stack","click_to_call","sponsored_listing","coupon_card"],"description":"Ad card layout format."},"data-count":{"required":false,"type":"integer","default":3,"max":5,"description":"Number of ads to rotate through."}},"geolocation_modes":{"fixed":{"description":"Publisher declares zip codes in the widget tag","best_for":"Local directories, niche sites with a fixed geographic focus","example":"data-zip=\"76102,76109\"","behavior":"All visitors see ads targeting those zip codes regardless of their location"},"auto":{"description":"Server resolves each visitor's IP to a zip code","best_for":"'Near me' sites, national sites that want to show locally relevant ads","example":"data-geo=\"auto\"","behavior":"A visitor from Dallas sees Dallas ads, a visitor from Fort Worth sees Fort Worth ads"},"hybrid":{"description":"Use data-geo='auto' as primary, data-zip as fallback","best_for":"Maximum coverage","example":"data-geo=\"auto\" data-zip=\"76102\"","behavior":"Auto-detect first; if IP lookup fails, fall back to declared zips"},"nationwide":{"description":"No location filter at all -- leave off data-zip and data-geo","best_for":"National brands, SaaS products, job boards, or any business that serves the whole country","example":"data-publisher-id=\"PUB_ID\" data-category=\"attorney\"","behavior":"Ads with no zip codes (nationwide campaigns) appear on your site, and your non-location-specific ads appear everywhere"}},"examples":{"local_plumber_directory":"<div class=\"adsupply-slot\" data-publisher-id=\"PUB_ID\" data-category=\"plumbing\" data-zip=\"76102,76109,76110\"></div><script src=\"https://adsnear.me/api/ads/widget.js\" async></script>","near_me_solar_site":"<div class=\"adsupply-slot\" data-publisher-id=\"PUB_ID\" data-category=\"solar\" data-geo=\"auto\"></div><script src=\"https://adsnear.me/api/ads/widget.js\" async></script>","national_hvac_site_with_fallback":"<div class=\"adsupply-slot\" data-publisher-id=\"PUB_ID\" data-category=\"hvac\" data-geo=\"auto\" data-zip=\"76102\"></div><script src=\"https://adsnear.me/api/ads/widget.js\" async></script>","national_job_board":"<div class=\"adsupply-slot\" data-publisher-id=\"PUB_ID\" data-category=\"attorney\"></div><script src=\"https://adsnear.me/api/ads/widget.js\" async></script>"}},"advertiser_integration":{"description":"For businesses who want to advertise on local directory sites.","steps":["POST /api/advertisers/apply -- register with email, name, company, categories, zip_codes","Receive advertiser_id instantly (auto-approved)","POST /api/campaigns -- create a campaign with categories, zip_codes, landing_url","POST /api/ads -- create ads within the campaign (headline, description, cta_text, format)","POST /api/images/{ad_id}/{format} -- upload ad images for specific formats","POST /api/advertisers/{id}/fund -- add money to account ($8/click deducted automatically)","Monitor at GET /api/advertisers/{id}/dashboard"],"ad_formats":{"wide_local_card":{"size":"1200x300","use":"Horizontal banner for main content areas"},"sidebar_box":{"size":"300x250","use":"Standard medium rectangle for sidebar placement"},"mobile_stack":{"size":"320x100","use":"Compact mobile format for stacked layouts"},"click_to_call":{"size":"300x600","use":"Tall format with prominent phone number for emergency services"},"sponsored_listing":{"size":"600x200","use":"Looks like an organic directory result, Paid Placement -- looks like an organic directory result"},"coupon_card":{"size":"400x600","use":"Tall format for discount offers and promotions"}},"landing_pages":{"description":"If the advertiser doesn't have a website, we host a landing page on adsnear.me","create":"POST /api/advertisers/{id}/landing-page","update":"PUT /api/advertisers/{id}/landing-page","url_format":"https://adsnear.me/p/{business-slug}"}},"api_endpoints":{"publishers":{"apply":{"method":"POST","path":"/api/publishers/apply","description":"Register as a publisher. Auto-approved.","body":{"email":"string","name":"string","company":"string?","website_url":"string","category":"string","zip_codes":"string[]","phone":"string?"}},"get":{"method":"GET","path":"/api/publishers/{id}","description":"Get publisher details"},"dashboard":{"method":"GET","path":"/api/publishers/{id}/dashboard","description":"Earnings, impressions, clicks, recent activity"},"payout_save":{"method":"POST","path":"/api/publishers/{id}/payout","description":"Save ACH bank account info for payouts","body":{"payout_name":"string","routing_number":"string (9 digits)","account_number":"string","account_type":"checking|savings"}},"payout_get":{"method":"GET","path":"/api/publishers/{id}/payout","description":"Get payout account info (account number masked)"},"widget_snippet":{"method":"GET","path":"/api/publishers/{id}/widget-snippet","description":"Get ready-to-paste widget HTML for your site"},"referral_link":{"method":"GET","path":"/advertiser?ref={publisher_id}&category={category}","description":"Shareable link that sends advertisers to sign up with your category pre-filled. Every ad widget also includes an 'Advertise here' link automatically."}},"advertisers":{"apply":{"method":"POST","path":"/api/advertisers/apply","description":"Register as an advertiser. Auto-approved.","body":{"email":"string","name":"string","company":"string?","categories":"string[]","zip_codes":"string[] -- leave empty for nationwide targeting","phone":"string?"}},"get":{"method":"GET","path":"/api/advertisers/{id}","description":"Get advertiser details"},"dashboard":{"method":"GET","path":"/api/advertisers/{id}/dashboard","description":"Campaign stats, balance, ad performance"},"fund":{"method":"POST","path":"/api/advertisers/{id}/fund","description":"Add funds to account","body":{"amount":"number"}},"landing_page_create":{"method":"POST","path":"/api/advertisers/{id}/landing-page","description":"Create a hosted landing page"},"landing_page_update":{"method":"PUT","path":"/api/advertisers/{id}/landing-page","description":"Update landing page content"}},"campaigns":{"list":{"method":"GET","path":"/api/campaigns/advertiser/{advertiser_id}","description":"List all campaigns for an advertiser"},"create":{"method":"POST","path":"/api/campaigns/","description":"Create a campaign","body":{"advertiser_id":"string","name":"string","categories":"string[]","zip_codes":"string[]","landing_url":"string?"}},"ads_list":{"method":"GET","path":"/api/ads/campaign/{campaign_id}","description":"List all ads in a campaign"},"ad_create":{"method":"POST","path":"/api/ads/","description":"Create an ad","body":{"campaign_id":"string","headline":"string","description":"string?","cta_text":"string?","ad_format":"string","landing_url":"string?"}}},"ads":{"serve":{"method":"GET","path":"/api/ads/serve","description":"Serve ads matching publisher category and location","params":{"publisher_id":"string (required)","category":"string","zip_codes":"string (comma-separated)","geo":"'auto' for IP-based geolocation","template":"string (ad format name)","count":"integer (1-5)"}},"impression":{"method":"POST","path":"/api/ads/impression","description":"Record an ad impression","body":{"ad_id":"string","publisher_id":"string","campaign_id":"string"}},"click":{"method":"POST","path":"/api/ads/click","description":"Record a click and bill the advertiser. Returns landing URL.","body":{"ad_id":"string","publisher_id":"string","campaign_id":"string"}},"formats":{"method":"GET","path":"/api/ads/formats","description":"List all available ad formats with dimensions"}},"images":{"upload":{"method":"POST","path":"/api/images/{ad_id}/{format}","description":"Upload an ad image for a specific format. Accepts PNG, auto-resizes to format dimensions."}},"categories":{"list":{"method":"GET","path":"/agents/categories","description":"List all site/ad categories with labels"},"keywords":{"method":"GET","path":"/agents/categories/{category}/keywords","description":"Get original and relational keywords for a category"},"matches":{"method":"GET","path":"/agents/categories/{category}/matches","description":"See which advertiser categories match a publisher category"}}},"available_categories":{"funeral_homes":"Funeral Homes","finish_carpentry":"Finish Carpenters","plumbing":"Plumbers","hvac":"HVAC","electrical":"Electricians","roofing":"Roofing","landscaping":"Landscaping","dentist":"Dentists","chiropractor":"Chiropractors","auto_repair":"Auto Repair","attorney":"Attorneys","real_estate":"Real Estate","veterinarian":"Veterinarians","gym":"Gyms & Fitness"},"category_details":"GET /agents/categories/{category}/keywords","category_match_preview":"GET /agents/categories/{category}/matches"}