2012-04-02 78 views
2

我一直在阅读web并尝试了几天的尝试,试图通过jQuery移动转换来展示Google Adsense广告而不破坏ToS。我有点卡住了,所以我转向最聪明的社区。通过使用jQuery移动页面过渡加载AdSense广告

Adsense标签由三个脚本组成(i)通用标签,(ii)插槽列表和(iii)显示屏本身。前两位进入<head>,后者位于<body>

我可以在我的第一页上显示广告就好了。问题出现在页面转换。

由于jQuery Mobile没有重新加载<head>,因此一个选项是在首次加载<head>时准备googletag。这将每个页面的限制设置为最多三个广告,而整个网站的限制并不是很多。此外,这意味着你将不得不移动广告<div>,这也不是很好。最后,这意味着您可以加载广告并在用户转到其所属的页面之前不显示广告。哪个不是ToS兼容的。

有没有办法在每次转换时加载新的新广告?如果是,我会在哪里放置Google脚本以确保它们正确加载?

回答

6

我找到了一种方法,让它在AdSense插入DFP广告管理系统中的Google DFP广告管理系统中工作。 DFP更加灵活,因此更容易。

这是我使用的:

  • <head>:我把谷歌的脚本和定义的所有广告位的整个网站(你将与“生成代码”得到它)。
  • 在每个页面上:您将脚本的<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();}) 

你去那里,每次回去页面时,槽被刷新,每次你去到一个新的一页,新插槽创建(只要它在<head>中定义)。

我希望它能帮上忙!可能有办法让它在AdSense中无缝工作,但我没有尝试。

+0

因此,您必须为网站上显示的每个广告定义唯一的广告位?一定是一个很小的网站? – Kevin 2012-06-14 20:00:09

+0

是的,这是一个web应用程序,因此只有很少的页面呈现很多次。刷新广告在这里是一种生活节省。 – 2012-06-17 17:29:55

+0

这很棒。我以前甚至都不知道DFP广告管理系统。不得不做几个MOD来让它为我运行。必须在调用googletag.pubads()。refresh之前调用googletag.display一次。 – 2012-12-14 19:43:48

0

也许使用jQuery的getScript()方法将有助于这种情况。我建议你尝试在pageinit函数中包含它。让我举个简单的例子。

$(document).delegate('[data-role=page]','pageinit',function(){ // this would get executed on page init of every JQM page 
    $.getScript('path/to/yourlib.js',function(){ // using getScript should help you be able to load scripts since the head doesn't get loaded again 
     Demo(); //This would be code that your lib uses 
    }); 
}); 
+0

感谢您的回复。您的解决方案可以执行该脚本,但插入'

  • 11. 如何使用jQuery移动通过AJAX加载多页面模板?
  • 12. 使用jQuery克隆AdSense广告
  • 13. AdSense - 未显示某些(通用)设备的移动广告
  • 14. jquery移动页面在提交后过渡期间闪烁
  • 15. 从一个页面过渡到另一个jQuery的移动
  • 16. 使用jquery页面加载广告(脚本)
  • 17. AdSense:如何通过登录的用户内容更新广告
  • 18. 通过垂直滑动页面加载
  • 19. Google Adsense广告
  • 20. jquery预加载通过加载()方法加载的页面
  • 21. 错误加载页面,而从一个页面过渡到另一个jquery移动+ Phonegap
  • 22. 跨静态页面使用jQuery过渡动画?
  • 23. 通过弹出加载页面加载
  • 24. 加载页面时到达某一点动宽度的过渡?
  • 25. 支持AdSense移动内容广告的移动框架示例?
  • 26. 如何在Blogger博客上添加Google Adsense移动广告?
  • 27. 如何使用jQuery通过Ajax加载页面片段
  • 28. 如何检测网站上的谷歌AdSense广告通过webcrawling
  • 29. 如何通过HTML DOM元素显示AdSense广告
  • 30. 显示加载动画,而部分页面通过jQuery加载()加载()