Mad*_*het 2 adsense jquery-mobile
我一直在阅读网络,并试图寻找一种方法,通过jQuery移动过渡显示谷歌Adsense广告,而不会破坏ToS.我有点卡住所以我转向最聪明的社区.
Adsense标签由三个脚本组成(i)一般脚本,(ii)插槽列表和(iii)显示器本身.前两个进入<head>,后者进入<body>.
我可以在我的第一页上显示广告.页面转换带来问题.
由于jQuery Mobile没有重新加载<head>,因此选项是准备第一次googletag加载<head>.这会将限制设置为每页最多三个广告,这在整个网站上并不是很多.此外,它意味着您将不得不移动广告<div>,这也不是那么好.最后,这意味着您可以加载广告,直到用户转到它所属的页面时才显示它们,如果有的话.这也不是ToS兼容的.
有没有办法在每次转换时加载新的新广告?如果是,我在哪里放置Google脚本以确保它们正确加载?
我找到了一种方法,可以在插入DFP广告管理系统的Google广告管理系统中使其工作.DFP更灵活,因此更容易.
这是我用过的:
<head>:我把谷歌脚本和定义了整个网站的所有adslots (你会得到它与"生成标签").<body>像在其他任何地方一样放置脚本的一部分.这样,您每次加载新页面时都可以投放新广告.但是,如果您在页面之间浏览,则永远不会让它们刷新.
为此,您可以使用googletag.pubads().refresh().但是,您只想刷新正在加载的页面中的插槽,否则会破坏某些条款和条件.另外,您refresh还不能使用尚未显示的插槽,因此如果您为整个网站定义了插槽但是尚未加载所有页面,则会失败,这很可能.
但是您可以将当前页面中的插槽传递给该refresh()功能.我是这样做的:
function refreshAds() {
// Get all the slots
var allSlots = googletag.pubads().getSlots();
var slotsToRefresh = Array();
// Select the slots that are on the current page based on their dom Id
for (var i=0; i<allslots.length; ++i)
if (isSlotIdOnTheCurrentPage(allSlots[i].getSlotId().getDomId()))
slotsToRefresh.push(allSlots[i]); // I let you implement the logic behind naming ids slots and divs
if (slotsToRefresh.length > 0)
googletag.pubads().refresh(slotsToRefresh);
}
$(document).on("pagechange", function() {refreshAds();})
Run Code Online (Sandbox Code Playgroud)
在那里,每次返回页面时,都会刷新插槽,每次进入新页面时,都会创建一个新插槽(前提是它已定义<head>).
我希望它会有所帮助!可能有一种方法可以让它在Adsense中无缝地工作,但我没有尝试.
| 归档时间: |
|
| 查看次数: |
3324 次 |
| 最近记录: |