Troubleshooting
Ad shows in the dashboard but never appears on the site
- Check targeting filters in the ad editor: device, role, country, category, date range. If any filter excludes the visitor, the ad won't serve.
- Confirm the section/zone slug matches between the ad and the shortcode/PHP call exactly (case-sensitive).
- Check the per-page cap (3 ads per page default). If 3 other ads already injected, this one is suppressed.
- Ensure the ad isn't placed inside a
<header>or<footer>element - OAds injects CSS to hide ads in those regions.
Impressions tracking returns zero
- Open DevTools -> Network and reload the page. Look for a POST to
/wp-admin/admin-ajax.php?action=oads_track_impression. If absent, the JS isn't loading. - Check that
OAds_TrackerJS is enqueued (view source foroads-frontend.js). - If GDPR consent gate is on, verify
localStorage.getItem('oads_consent')returns'1'. Without consent, tracking is suppressed silently. - Ad-blockers may block the tracking endpoint. Test in an incognito window with extensions disabled.
Clicks redirect to a 404
The rewrite rule for /oads-click/{id}/ is added on activation. If you've moved the site, changed permalink structure, or installed OAds without flushing rewrite rules:
- Go to Settings -> Permalinks and click Save Changes (this re-flushes rewrites).
- Or run
wp rewrite flushfrom WP-CLI.
Frequency cap doesn't work
Frequency caps live in localStorage (oads_fc_{ad_id}). They're per-browser, not per-user. Visitors clearing their browser data or switching devices see the ad again. This is by design - server-side capping would require sessions for guest visitors.
Revenue numbers look wrong
Revenue is estimated from the CPM and CPC rates you set per ad. It's not actual paid revenue. If numbers look off:
- Check both rates are set (CPM and CPC apply independently and sum).
- Confirm the time period matches what you expect (default Analytics view is 30d).
- For impressions, only ads with 50%+ visibility count. Above-the-fold ads register more reliably than ads deep below the page.

