新手到站长的必经之路(七)
一番周折终于搭上了google广告联盟的车,也是谷歌对自己网站的一种肯定。接入后也发现了一些,当然目前也得到了解决,记录一番,算是对往事的一种记录。
1、申请广告联盟
广告联盟申请第三次通过。
- 第一次说是内容贫乏。(原创度不高)
- 第二次直接说是不通过,但是无法告知原因,还让我不要邮件咨询原因
- 第三次 好消息来了 (仔细查阅了谷歌的广告联盟网站指南)
总结起来就
- 页面结构清晰,导航,面包屑
- 无页面报错
- 首页内容丰满,最好首页都是原创
- 建站6个月以上,被搜索引擎收录
- 其他事项尽量参考google站长指南,官网的指南肯定是最靠谱的
2、同一页面多个广告位
创建广告单元后,复制广告单元的代码到页面的指定位置
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 右下角的广告 -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-xxxx"
data-ad-slot="zzzz"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
因为是同一个页面复制了三份,不能发现除了data-ad-slot是变量以外,其余的元素完全相同的。所以我做了一个操作把引用的js和触发触发广告绑定的代码提取到公用的部分。每个html的部分只保留 <ins 单元。
事实上google也提到adsbygoogle.js也只需要引入一次。
部署上去,发现3个广告只显示1个。
最后发现,绑定是代码是不能公用的。
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
3、pc与h5广告分开处理
因为h5的显示区域比较小,放置过多的广告会影响使用的体验,我肯定不想这么干的。所以我的处理思路是
- pc可视区大,显示3个广告位
- h5的可视区小,只显示1个
那么问题转化为:代码实现一个广告位只在pc端显示
本来想着adsbygoogle.js应该有参数可以控制这个,查询一番没有找到资料
自己实现的思路有2个:
- js控制 广告位的初始化
<script>
function IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v< Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v])> 0) {
flag = false;
break;
}
}
return flag;
}
var flag=IsPC();
if(flag){
(adsbygoogle = window.adsbygoogle || []).push({});
}
</script>
css 控制广告位的显示
这个违反google联盟的约定,故不作描述
4、题外话
一切就绪后发生了另外一个问题,网站中引用的http资源提示找不到,看报错是被修改成了https,起初以为是
adsbygoogle.js使的坏,最后发现确实是chrome的坑。(其他的浏览器是ok的)
2020年1月,网站HTTPS 内容页面里还包含http页面加载的情况的话,将被Chrome自动阻止显示
解决方案是:
chrome快捷方式,右键“属性”,“快捷方式”选项卡里选择“目标”,添加 --args --disable-web-security --user-data-dir=C:\MyChromeDevUserData
保证该路径/Users/yourname/下存在MyChromeDevUserData文件夹,没有文件夹MyChromeDevUserData,可以自己新建一个