ScreenshotNeo

BlogHow-to

Ads Covering Content in an Indian News Website Screenshot: How to Fix It

Find out whether an overlay is a browser interstitial, a Google ad, or a publisher placement, then use the right steps to read or capture the article.

By the ScreenshotNeo team4 October 20267 min read

If an advertisement is covering an article on an Indian news website, first identify what kind of obstruction it is: a browser-level pop-up or interstitial, an individual Google-served ad, or an overlay placed by the publisher. The fixes differ. Chrome’s intrusive-ad setting can remove some poor ad experiences, but it does not promise to remove every overlay. If you need a clean screenshot for a report or archive, a website screenshot API can capture the page after dismissing common consent and popup elements.

1. Identify what is covering the article

Look at the obstruction before changing settings. A pop-up may open in a separate tab or window; an interstitial typically takes over the page before or during navigation. An embedded placement appears within the page and may have a close, mute, or feedback control. Without the specific website, screenshot, device, and browser, the exact format cannot be diagnosed.

What you see Likely control First action
A separate tab or full-page interruption Browser pop-up or interstitial controls Review Chrome site settings for intrusive ads and pop-ups.
A labeled Google ad with an ad menu Google’s individual-ad controls Try the close or “Mute this ad” control if available.
A panel embedded in the news page Publisher or ad provider Use its close or feedback/report control, then contact the publisher if needed.

2. Use Chrome’s intrusive-ad setting

Chrome documents blocking certain poor ad experiences, including too many ads, flashing or autoplaying ads, and ad walls. When it blocks them, Chrome may show an “Intrusive ads blocked” message and remove the intrusive ads from the page. This is a specific browser behavior, not a universal ad-removal switch. See Google Chrome Help for the current guidance.

Chrome on Android

  1. Open Chrome and tap More (the three-dot menu).
  2. Tap Settings, then Site settings.
  3. Open Content and choose Intrusive ads.
  4. Review the setting and return to the article. Reload the page if the existing tab still shows the overlay.

Chrome on desktop

  1. Open Chrome’s three-dot menu and choose Settings.
  2. Go to Privacy and security → Site settings.
  3. Open Additional content settings → Intrusive ads.
  4. Return to the article and reload it.

Chrome’s menus can move between releases. If the labels differ, search Chrome Settings for “intrusive ads.” The setting concerns intrusive ad experiences; it does not guarantee removal of a publisher’s custom overlay or every ad on a site.

3. Handle an individual Google ad

If the covering element is a Google-served ad, open its ad controls and use Close or Mute this ad when offered. Google’s control applies to an eligible individual ad; it is not a device-wide ad blocker. Google also says directly purchased reservation ads may not support muting, and its mute controls do not apply to ads served by other companies. See Google Authorized Buyers Help.

  1. Look for the ad’s menu or close control, often near a corner of the ad.
  2. Choose the available mute, hide, or close action.
  3. If no control is offered, or the ad returns as a page overlay, use the news publisher’s feedback or report option.

Changing ad-personalization preferences is not a reliable way to remove an overlay controlled by the publisher. It changes personalization choices, not the page layout or every ad placement.

4. If the publisher’s overlay remains

  1. Check whether the panel has a visible close button and whether it can be dismissed without accepting an unrelated offer.
  2. Reload once after dismissing it; some sites reflow the article only after a fresh page load.
  3. Use the site’s contact, report, or feedback link to describe the page, device, browser, and what action makes the article inaccessible.
  4. If the issue happens only in one browser, compare the same page in another current browser to distinguish site behavior from browser settings.

MGID’s India Compliance Guidebook advises that overlays should be easy to close and that content should not be overloaded with or disrupted by ads. This is MGID platform guidance, not a statement of Indian law or a finding about any particular news publisher. See the MGID India Compliance Guidebook.

5. Capture a page for debugging or documentation

For a screenshot, capture the page after its content has loaded and after any dismissible overlay is handled. If you are debugging your own publication, record the URL, viewport, browser, time, and whether the obstruction appears before or after interaction. A screenshot alone may not reveal who served the placement or whether it was bought directly by the publisher.

For a local, do-it-yourself capture, use an automated browser such as Playwright: open the target page, wait for the article content, close a known overlay if appropriate, then save a screenshot. Install Playwright in a project and install its browser as described in the Playwright documentation.

npm init -y
npm install --save-dev playwright
npx playwright install chromium

Save this as capture.mjs, set TARGET_URL to the article URL, and run TARGET_URL="https://example.com/article" node capture.mjs. The optional selector is deliberately site-specific; do not guess a selector that might click an unrelated control.

import { chromium } from 'playwright';

const url = process.env.TARGET_URL;
if (!url) throw new Error('Set TARGET_URL to the article URL');
const browser = await chromium.launch({ headless: true });
try {
  const page = await browser.newPage({ viewport: { width: 1365, height: 900 }, deviceScaleFactor: 1 });
  await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 45000 });
  await page.locator('article').waitFor({ state: 'visible', timeout: 15000 }).catch(() => {});
  // Optional: set CLOSE_SELECTOR to a verified close button for this site.
  const closeSelector = process.env.CLOSE_SELECTOR;
  if (closeSelector) {
    const close = page.locator(closeSelector).first();
    if (await close.isVisible().catch(() => false)) await close.click();
  }
  await page.screenshot({ path: 'article.png', fullPage: true, animations: 'disabled' });
} finally {
  await browser.close();
}

Adaptation points: Replace article with the site’s article selector if it uses another structure. Use fullPage: false for only the visible viewport. Use a stable, site-specific close selector only when you have verified what it targets. The script does not bypass a login, CAPTCHA, or access control and cannot guarantee that ads or overlays are removable.

6. Troubleshooting

Symptom Likely cause What to try
The Chrome setting is missing Chrome’s interface or managed-device policy differs. Search Settings for “intrusive ads”; if the device is managed, ask its administrator about policy.
The overlay remains after changing the setting The placement may be publisher-controlled or outside Chrome’s intrusive-ad scope. Use its close/feedback control or report it to the publisher.
“Mute this ad” is unavailable The ad may not support muting, may be directly purchased, or may not be a Google ad. Try the publisher’s report control; Google’s mute feature is not universal.
The article is still hidden after closing the panel The page may need a reload, or a second overlay may be present. Reload once and inspect for another dismissible element. Avoid repeatedly clicking unknown controls.
Playwright times out at navigation The page may be slow, blocked, or waiting on third-party resources. Keep a finite timeout, inspect the browser error, and consider waitUntil: 'domcontentloaded' rather than waiting for every network request.
The saved screenshot is blank or incomplete The article selector was wrong, content is lazy-loaded, or the capture ran before rendering. Wait for a verified article element, scroll if the site lazy-loads content, and check the screenshot at viewport-only size before full-page capture.

7. Performance, reliability, and cost

A local browser capture uses your machine’s browser resources and requires browser installation and maintenance. Waiting for every network request can be slow on news pages with analytics, ads, and live updates, so wait for the article or a bounded delay instead. Full-page screenshots can consume more memory than viewport captures. For repeatable records, keep the viewport and browser version consistent and retain the URL and capture time alongside the file.

A screenshot cannot prove why an ad appeared, identify its buyer, or establish a policy violation. Capture reproducible evidence and report it to the publisher. MGID’s guidebook describes its own platform expectations; it is not a regulator’s determination.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. Its capture request can return an image or PDF, and the API accepts familiar parameter names used by other screenshot APIs. Before capture, it accepts cookie/consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets; each step can be turned off. These are useful for clean captures, though a publisher’s custom ad overlay may require a site-specific solution.

See the ScreenshotNeo API documentation. This cURL example saves the result as a WebP file:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/article -o shot.webp

Python:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com/article"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)

Node.js:

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com/article'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer())));

Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are never billed; response headers indicate the page verdict and billing status. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. See current details on the ScreenshotNeo site.

Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.

FAQ

Will turning on Chrome’s intrusive-ad control remove every ad?

No. It addresses certain intrusive ad experiences and does not promise to remove every ad or publisher overlay.

Does “Mute this ad” block that advertiser everywhere?

No. It is an individual-ad control for eligible Google ads, not a universal or device-wide block.

Can I tell from the screenshot whether the publisher violated a rule?

No. A screenshot can document what appeared, but it does not establish who placed the ad or whether a policy or law was violated.

Can ScreenshotNeo remove any ad overlay?

No. It removes the listed known consent platforms, newsletter popups, and chat widgets; custom publisher ad overlays are not guaranteed to be removed.