gpt4 book ai didi

jquery-mobile - 使用 jQuery Mobile 通过页面转换加载 adsense 广告

转载 作者:行者123 更新时间:2023-12-02 08:49:05 25 4
gpt4 key购买 nike

我一直在阅读 web并尝试了几天,寻找一种在不违反 ToS 的情况下通过 jQuery 移动转换显示 Google Adsense 广告的方法。我有点卡住了,所以我求助于最聪明的社区。

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

我可以很好地在第一页上展示广告。问题来自页面转换。

由于 jQuery Mobile 不会重新加载 <head> , 一个选项是准备 googletag在加载 <head> 时第一次。这将限制设置为每页最多三个广告,这在整个网站上并不多。另外,这意味着您将不得不移动广告 <div>周围,​​也不是很好。最后,这意味着您可以加载广告并且在用户转到它所属的页面之前不显示它们(如果有的话)。这也不是 ToS 兼容的。

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

最佳答案

我找到了一种方法,可以在将 Adsense 插入 DFP 的情况下使其在 Google DFP 中运行。 DFP 更灵活,因此更容易。

这是我使用的:

  • <head> :我放置了 google 脚本并为整个网站 定义了所有广告位(您将使用“生成标签”获得它)。
  • 在每一页上:你把<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();})

好了,每次你回到一个页面,slots 都会被刷新,每次你进入一个新页面,一个新的slots 被创建(前提是它在 <head> 中被定义)。

希望对您有所帮助!可能有一种方法可以让它在 Adsense 中无缝运行,但我没有尝试过。

关于jquery-mobile - 使用 jQuery Mobile 通过页面转换加载 adsense 广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com