由于微信后台小程序的广告数据和接入的 Talking统计数据存在较大差异,想问一下小程序广告曝光量和拉取量是如何统计的
拉取量:广告会在指定页面代码触发时进行请求,拉取量是成功请求到广告的数量。 对应到代码逻辑是否是成功执行onLoad的次数
曝光率:广告在页面内展示的次数,非播放完成数。 对应到代码逻辑是否是成功执行show方法的次数
大致统计代码如下:
export function showInterstitialAd({ adUnitId }) {
return new Promise((resolve, reject) => {
let interstitialAd = wx.createInterstitialAd({ adUnitId });
mwx.report('Ad_InterstitalAd', null, { status: 'create', adUnitId }); // 统计代码
let once = false;
interstitialAd.onLoad(() => {
if (once) {
return;
}
once = true;
mwx.report('Ad_InterstitalAd', null, {
status: 'load success',
adUnitId
});
interstitialAd
.show()
.then(() => {
resolve();
mwx.report('Ad_InterstitalAd', null, {
status: 'show success',
adUnitId
});
})
.catch((err) => {
mwx.report('Ad_InterstitalAd', null, {
code: err && err.errCode,
status: 'show fail',
adUnitId
});
reject(err);
});
});
interstitialAd.onError((err) => {
mwx.report('Ad_InterstitalAd', null, {
status: 'load fail',
adUnitId,
code: err && err.errCode
});
reject(err);
});
});
}
个人的理解:
由于插屏广告会在用户关闭后再次自动拉取。微信后台的的拉取量应该大致等于 onError执行的次数 + onLoad执行的次数*2
但从最终的统计数据来看,曝光量并不等于执行show方法的次数,拉取量的计算方式存在一定误差
希望有研究过的朋友或者官方进行解答
请问大佬们这个问题有没有答案,我们统计的插屏曝光和流量主了统计的曝光差了将近1倍
我的想法跟你一样,总感觉拉取量实际应该是我们主动请求的数量,即调用show方法的数量,这样数据才对得上。如果真是这样的话,官方给的解释"拉取量是成功请求到广告的数量"就会有歧义,通常会理解为真的拉取到了广告的数量都归为拉取量了。