Install our free Chrome extension and right-click any ad, email, or post to expose it instantly — without leaving the page.
No account required to install · Works on all websites
Right-Click Any Ad
Works on Facebook, Instagram, Google, YouTube, webinars, seminars — everywhere.
Quick Analyze Button
Click the extension icon and hit 'Quick Analyze' to capture & analyze the whole page instantly.
100% Private
We never track your browsing history. The extension only runs when you ask it to.
"I made $47K last month with this one system"
Sponsored
Takes 60 seconds. No coding needed.
Click "Add to Chrome — It's Free" above to download the extension files
Put all files in a new folder on your computer (e.g. "BehindTheAd")
Open Chrome → go to chrome://extensions → enable "Developer mode" (top-right toggle)
Click "Load unpacked" → select your BehindTheAd folder
Done! Right-click any ad or text anywhere on the web.
Downloads: manifest.json · background.js · content.js · popup.html · README.txt
{
"manifest_version": 3,
"name": "Behind The Ad",
"version": "1.1.0",
"description": "Right-click any ad, text, or image to instantly expose what's really going on. Capture full-page screenshots for analysis.",
"permissions": [
"contextMenus",
"activeTab",
"storage",
"scripting",
"tabs"
],
"host_permissions": [
"https://ad-xray-insights.base44.app/*",
"<all_urls>"
],
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"content.js"
]
}
],
"action": {
"default_title": "Behind The Ad",
"default_popup": "popup.html"
},
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
}
}const APP_URL = "https://ad-xray-insights.base44.app";
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({ id: "analyze-image", title: "🔍 Analyze This Ad", contexts: ["image"] });
chrome.contextMenus.create({ id: "analyze-text", title: "🔍 Analyze This Text", contexts: ["selection"] });
chrome.contextMenus.create({ id: "analyze-screenshot", title: "📸 Capture & Analyze This Page", contexts: ["page"] });
});
chrome.contextMenus.onClicked.addListener(async (info, tab) => {
if (info.menuItemId === "analyze-image") {
await chrome.storage.local.set({ pendingAnalysis: { type: "image", imageUrl: info.srcUrl, src: tab.url } });
chrome.tabs.create({ url: APP_URL + "/analyze?from_extension=1&type=image&image_url=" + encodeURIComponent(info.srcUrl) + "&src=" + encodeURIComponent(tab.url) });
chrome.tabs.sendMessage(tab.id, { type: "SHOW_TOAST", msg: "Analyzing ad..." });
} else if (info.menuItemId === "analyze-text") {
await chrome.storage.local.set({ pendingAnalysis: { type: "text", content: info.selectionText, src: tab.url } });
chrome.tabs.create({ url: APP_URL + "/analyze?from_extension=1&type=text&text=" + encodeURIComponent(info.selectionText) + "&src=" + encodeURIComponent(tab.url) });
chrome.tabs.sendMessage(tab.id, { type: "SHOW_TOAST", msg: "Analyzing text..." });
} else if (info.menuItemId === "analyze-screenshot") {
captureAndAnalyze(tab);
}
});
// Called from popup.js via message
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.type === "QUICK_ANALYZE") {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
if (tabs[0]) captureAndAnalyze(tabs[0]);
});
sendResponse({ ok: true });
}
return true;
});
async function captureAndAnalyze(tab) {
try {
// Show toast on the page
chrome.tabs.sendMessage(tab.id, { type: "SHOW_TOAST", msg: "Capturing screenshot..." });
// Capture the visible area as a data URL
const dataUrl = await chrome.tabs.captureVisibleTab(tab.windowId, { format: "jpeg", quality: 85 });
// Store the screenshot dataUrl so the app page can retrieve it
await chrome.storage.local.set({
screenshotCapture: { dataUrl, srcUrl: tab.url, timestamp: Date.now() }
});
// Open the app with screenshot flag
chrome.tabs.create({
url: APP_URL + "/analyze?from_extension=1&type=screenshot&src=" + encodeURIComponent(tab.url)
});
} catch (err) {
console.error("Behind The Ad screenshot error:", err);
// Fallback: open with page URL
chrome.tabs.create({
url: APP_URL + "/analyze?from_extension=1&type=page&page_url=" + encodeURIComponent(tab.url)
});
}
}
// Behind The Ad content script
chrome.runtime.onMessage.addListener((message) => {
if (message.type === "SHOW_TOAST") {
showToast(message.msg || "Analyzing...");
}
});
function showToast(msg) {
const existing = document.getElementById("bta-toast");
if (existing) existing.remove();
const style = document.createElement("style");
style.id = "bta-style";
style.textContent = `
@keyframes btaSlideIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes btaSlideOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(12px); } }
`;
if (!document.getElementById("bta-style")) document.head.appendChild(style);
const toast = document.createElement("div");
toast.id = "bta-toast";
toast.innerHTML = "👁 Behind The Ad — " + msg;
toast.style.cssText = `
position: fixed; bottom: 24px; right: 24px; z-index: 2147483647;
background: #0b0e13; color: #00e64d; border: 1px solid rgba(0,230,77,0.3);
padding: 12px 18px; border-radius: 12px; font-family: -apple-system, sans-serif;
font-size: 13px; font-weight: 600; box-shadow: 0 8px 32px rgba(0,0,0,0.4);
animation: btaSlideIn 0.3s ease; pointer-events: none;
`;
document.body.appendChild(toast);
setTimeout(() => {
toast.style.animation = "btaSlideOut 0.3s ease forwards";
setTimeout(() => toast.remove(), 300);
}, 2500);
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { width: 320px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
background: #0b0e13; color: #f2f2f2; padding: 18px; }
.logo { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.logo-icon { width: 30px; height: 30px; background: rgba(0,230,77,0.1); border-radius: 9px;
display: flex; align-items: center; justify-content: center; font-size: 15px; border: 1px solid rgba(0,230,77,0.2); }
.logo-text { font-weight: 700; font-size: 15px; }
.quick-btn {
display: flex; align-items: center; justify-content: center; gap: 8px;
width: 100%; padding: 13px; background: #00e64d; color: #0b0e13;
border: none; border-radius: 11px; font-weight: 800; font-size: 14px;
cursor: pointer; margin-bottom: 8px; transition: background 0.15s;
}
.quick-btn:hover { background: #00cc44; }
.quick-btn:active { transform: scale(0.98); }
.quick-btn.loading { background: rgba(0,230,77,0.3); color: #00e64d; cursor: default; }
.quick-btn .icon { font-size: 16px; }
.status { font-size: 11px; color: #00e64d; text-align: center; min-height: 16px; margin-bottom: 14px; }
.divider { height: 1px; background: rgba(255,255,255,0.06); margin: 14px 0; }
.label { font-size: 10px; font-weight: 700; color: #555b6a; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.step { display: flex; align-items: flex-start; gap: 9px; margin-bottom: 9px; }
.step-num { width: 20px; height: 20px; background: rgba(0,230,77,0.1); border-radius: 50%;
display: flex; align-items: center; justify-content: center; font-size: 10px;
font-weight: 700; color: #00e64d; flex-shrink: 0; margin-top: 1px; }
.step-text { font-size: 11px; color: #9aa0b0; line-height: 1.5; }
.step-text strong { color: #d0d5e0; }
.open-link { display: block; text-align: center; margin-top: 14px; font-size: 11px;
color: #555b6a; text-decoration: none; }
.open-link:hover { color: #00e64d; }
</style>
</head>
<body>
<div class="logo">
<div class="logo-icon">👁</div>
<div class="logo-text">Behind The Ad</div>
</div>
<button class="quick-btn" id="quickBtn" onclick="quickAnalyze()">
<span class="icon">📸</span> Quick Analyze This Page
</button>
<div class="status" id="status"></div>
<div class="divider"></div>
<div class="label">Or right-click anywhere</div>
<div class="step">
<div class="step-num">1</div>
<div class="step-text"><strong>Ad image:</strong> Right-click → "🔍 Analyze This Ad"</div>
</div>
<div class="step">
<div class="step-num">2</div>
<div class="step-text"><strong>Suspicious text:</strong> Highlight → right-click → "🔍 Analyze This Text"</div>
</div>
<div class="step">
<div class="step-num">3</div>
<div class="step-text"><strong>Full page:</strong> Right-click → "📸 Capture & Analyze This Page"</div>
</div>
<a class="open-link" href="https://ad-xray-insights.base44.app" target="_blank">Open Behind The Ad →</a>
<script>
function quickAnalyze() {
const btn = document.getElementById("quickBtn");
const status = document.getElementById("status");
btn.classList.add("loading");
btn.textContent = "Capturing screenshot...";
status.textContent = "Opening analysis in a new tab...";
chrome.runtime.sendMessage({ type: "QUICK_ANALYZE" }, () => {
setTimeout(() => window.close(), 800);
});
}
</script>
</body>
</html>