Bypassing Ad Blockers
Even though BlogTally Pulse is privacy-focused analytics, it may still be blocked by certain ad blockers. This guide explains why this happens and how to prevent it.
Why Ad Blockers Block Analytics
Ad blockers often use aggressive blocklists that target:
- Domain names containing words like "analytics" or "tracking"
- Scripts that collect user data, regardless of privacy practices
- Common analytics endpoints and patterns
Solutions for BlogTally Pulse
The most reliable solution is to proxy requests through your own domain. Instead of loading the script directly from BlogTally, you serve it from your domain.
Using Nginx
Add this to your Nginx configuration:
location /pulse.js {
proxy_pass https://tracker.blogtally.com/blogtally.min.js;
proxy_set_header Host tracker.blogtally.com;
proxy_ssl_server_name on;
}
Using Apache
Add this to your .htaccess
file:
RewriteEngine On
RewriteRule ^pulse\.js$ https://tracker.blogtally.com/blogtally.min.js [P]
Using Next.js
Add this to your next.config.js
:
module.exports = {
async rewrites() {
return [
{
source: '/pulse.js',
destination: 'https://tracker.blogtally.com/blogtally.min.js',
},
]
},
}
Using Nuxt.js
For Nuxt 3, add this to your nuxt.config.ts
:
export default defineNuxtConfig({
nitro: {
routeRules: {
'/pulse.js': {
proxy: 'https://tracker.blogtally.com/blogtally.min.js'
},
}
}
})
Best Practices
- Choose Generic Names: Use neutral file names like
script.js
orwebsite.js
instead ofanalytics.js
- Test Thoroughly: Verify tracking works with popular ad blockers enabled
- Monitor Regularly: Check tracking effectiveness after ad blocker list updates
Common Issues
- Tracking stops working: Ad blocker lists are updated frequently. Monitor your analytics regularly.
- Proxy errors: Ensure your SSL certificates are valid and CORS headers are properly set.
- Script loading issues: Check your browser console for any loading or execution errors.