What is AdSight?
AdSight is a Chrome extension that automatically detects, analyzes, and reports on sponsored content across retail websites, providing real-time insights into ad placement, relevance, and monetization strategies.
This extension runs entirely locally in your browser and does not store or collect any personal data. It uses a secure proxy service to send ad screenshots to OpenAI for analysis, but these images are never retained. The extension generates comprehensive reports that you can download and share.
Features
🏪 Multi-Retailer
Works across major global retailers in all languages including Amazon, Walmart, Loblaws, and more, with retailer-specific detection rules for accuracy.
🔍 Interactive Nav
Click any ad in the report table to instantly scroll to and highlight it on the page, making verification and analysis seamless.
🎯 Visual Detection
Automatically identifies and highlights all sponsored content with color-coded overlays and numbered labels for easy reference.
📊 Analytics Report
Generate detailed reports showing ad counts by type, page coverage percentages, vertical distribution, and detected ad providers.
🤖 AI-Powered
Each ad is automatically analyzed by OpenAI's GPT-4 to score its relevance to the user's search query, with explanations. Supports BYOK (Bring Your Own Key).
💡 Strategic Insights
Receive AI-generated recommendations for optimizing ad placement to balance customer experience, advertiser ROI, and platform monetization.
Tuned for these retailers and specific locales (unaffiliated)
Works well for the retailers listed, but will also work on any website using less accurate rules.
See It In Action
Ready to Install?
Download AdSight and see sponsored content like never before
⬇ Download AdSight.zipInstallation Instructions
- Extract the ZIP file to a folder on your computer
-
Open Chrome Extensions
- Go to
chrome://extensions/ - Toggle on Developer mode (top-right corner)
- Go to
-
Load the Extension
- Click Load unpacked
- Select the extracted AdSight folder
- Click Select Folder
-
Test It
- Visit Amazon.com, Walmart.com, Costco.com, or Wayfair.com
- Search for any product
- Sponsored content will be highlighted with colored overlays
- A report panel appears at the bottom with analytics
Note: Make sure you select the folder containing manifest.json. The extension must be enabled, and you may need to refresh the page after installing.
Updating
To update AdSight to a newer version:
- Extract the new ZIP file to the same folder (overwrite existing files)
- Go to
chrome://extensions/ - Click the refresh/reload icon on the AdSight extension card
Relevance Scoring (BYOK)
AdSight automatically uses OpenAI to score how relevant each detected ad is to the page’s query. This is currently provided automatically, but if they support stops in the future, you provide your own API key.
Set your OpenAI API key (extension context)
- Open a site where AdSight runs (e.g., Amazon or Walmart), then open DevTools → Console.
-
Change the Console’s context from Top to your AdSight content script:
click the context dropdown at the top of the Console and select the entry under
Extension contexts that shows your extension name/ID.
Alternative: openchrome://extensions→ your AdSight card → Service worker → Inspect and use that console. -
Run this script to save your key locally:
chrome.storage.local.set({ openai_api_key: "sk-REPLACE-ME" }).then(() => console.log("✅ OpenAI API key saved to chrome.storage.local"));
To remove your key later:
chrome.storage.local.remove("openai_api_key")
Use it
- Navigate to a supported retailer and perform a search.
- Open the report panel at the bottom; the Detailed region data now shows Relevance and Reason when a key is present.
Privacy: When enabled, the analyzer captures only the on-screen ad region image and sends it to OpenAI for scoring. No other page data is sent.
How It Works: Technical Overview
Architecture and Design
AdSight is built on a modular architecture that separates the detection engine from retailer-specific logic.
At its core, the extension consists of three main components: a universal detection engine (engine.js),
retailer-specific DOM rule files, and a reporting system. This separation of concerns allows the system to be
highly extensible—adding support for a new retailer requires only creating a new ruleset file without modifying
the core engine.
The detection engine operates by consuming declarative rulesets that define patterns for identifying sponsored content. Each ruleset specifies "anchor" selectors (DOM elements that signal an ad's presence) and "container" strategies (how to find the full ad boundary from the anchor). The engine processes these rules, queries the DOM for matching elements, performs visibility checks, calculates bounding boxes, and applies non-maximum suppression to eliminate overlapping detections. This approach transforms what could be brittle, retailer-specific code into a clean, data-driven system where the engine is essentially a generic rule interpreter.
Retailer-Specific DOM Rules
Each supported retailer (Amazon, Walmart, Costco, Wayfair) has a dedicated JavaScript file in the
retailers/ directory that defines
detection rules as structured data. These rules specify CSS selectors and optional predicate functions for identifying
sponsored content, along with metadata like ad type labels, confidence scores, and visual styling. For example,
Amazon's ruleset includes patterns for sponsored product cards, sponsored brand modules, and various banner ad placements.
The rules also define grouping strategies for combining adjacent ads and merging logic for creating composite overlays.
The abstraction is powerful: the engine knows nothing about Amazon or Walmart specifically—it simply receives a
ruleset object with a match() function
to determine applicability and a rules[]
array to process. This design means that as retailers update their HTML structure, only the corresponding ruleset file
needs modification. The engine remains stable and unchanged, processing whatever patterns are described in the active ruleset.
LLM-Assisted Rule Generation
Creating these retailer DOM rules manually would be extremely time-consuming, requiring deep analysis of complex, minified HTML and extensive trial-and-error. To accelerate this process, we leveraged Large Language Models (LLMs) to analyze raw HTML from retailer pages and generate initial detection rules. The workflow involved capturing representative HTML samples from search results and product listing pages, then prompting an LLM to identify patterns that distinguish sponsored content from organic results. The LLM examined class names, data attributes, structural patterns, and textual indicators (like "Sponsored" badges) to propose CSS selectors and container strategies.
The LLM-generated rules served as a strong starting point, often achieving 70-80% accuracy immediately. Human refinement followed, testing the rules on live pages and iteratively improving precision—adjusting selectors to reduce false positives, adding predicate functions for edge cases, and tuning the grouping logic for better visual presentation. This hybrid approach reduced development time significantly while maintaining high detection quality. The LLM excelled at the tedious pattern recognition work, while human expertise ensured the rules were robust, maintainable, and properly abstracted into the engine's declarative format.