如何在React/Next.js网站中编程检测Google AdSense广告的展示与报错状态
Google AdSense 广告有效展示统计实现方案
Google AdSense 官方提供了对应的事件回调能力,完全可以满足你统计单页有效广告展示数的需求。
核心实现逻辑
你需要在AdSense广告代码加载前,提前注册全局事件回调,监听真实展示事件即可:
// 提前初始化adsbygoogle对象,避免广告加载时报错 window.adsbygoogle = window.adsbygoogle || []; // 定义当前页面有效展示计数变量 let currentPageAdCount = 0; // 注册全局事件回调 window.adsbygoogle.push({ event_callback: (eventName, adUnitData) => { // ad_impression 是广告真实有效展示的触发事件,符合AdSense官方有效结算规则 if (eventName === 'ad_impression') { currentPageAdCount++; // 此处可编写你的自定义上报逻辑,将当前页面对应的内容ID、发布用户ID、展示次数等参数传给后端接口,存入数据库 // 建议做防抖批量上报,避免单次展示就发请求 } // 广告加载失败的回调,可按需用来统计错误率 if (eventName === 'ad_failed') { // 自定义错误处理逻辑 } } });
注意事项
- 不要使用
ad_load事件作为统计依据,这个事件仅代表广告资源加载完成,不代表广告已经被用户看到,不符合有效展示的结算规则,统计数值和官方后台偏差会非常大。 - 你自行统计的展示数和AdSense后台最终结算数据会存在少量合理偏差,因为官方会过滤无效流量、作弊点击、重复展示等异常数据,建议你自行统计的数值作为给用户展示的预估值,最终结算以AdSense官方数据为准。
- 如果需要在用户离开页面时统一上报数据,可以监听
beforeunload事件批量提交当前页面的总展示数,减少请求频次。
内容的提问来源于stack exchange,提问作者Captain_Satya
相关产品推荐
相关产品推荐

