我有一个 Facebook iframe 应用程序,我通过 Google Adsense 获利。在不需要 Facebook 身份验证的页面上,广告可以正常投放并反映页面上的内容。需要 Facebook 会话的页面可以很好地呈现广告,但它们非常通用。它们仅反映用户的地理位置而不是页面内容(例如,针对用户城市的 Groupon 广告,以及针对照片上传服务等随机事物的广告)。
我想让 Adsense 根据页面内容呈现有针对性的广告。有问题的页面上有很多好的内容。它们不是像纯登录页面那样的“无内容”页面。
我正在使用类似于另一个问题的已接受答案中的方法: google adsense in facebook application。我的 Adsense javascript 位于一个单独的文件中,该文件被加载到我的画布页面中的 iframe 中,该文件又作为 iframe 加载到 Facebook(就像任何其他 Facebook iframe 应用程序一样)。带有 Adsense 代码的文件包含大量相关内容,可为 Adsense 提供定位广告的上下文。用户看不到此内容,因为我将 iframe 设置为没有滚动条且高度有限。
Adsense bot(用户代理 Mediapartners-Google)是否被 Facebook 登录阻止并且无法索引页面?
或者当用户访问该页面时,Facebook 会添加一个很长的查询字符串,导致 Adsense 将其视为每个用户的不同页面?再说一次,这对 iframe URL 没有影响。
在其他堆栈溢出问题中建议的解决方案要求使用框架集而不是 iframe 加载带有 Adsense 代码和关键字的文件。这真的会有所作为吗?
我知道可能与禁止通过 iframe 加载 Adsense 的 Adsense 条款发生冲突。对于 Facebook 应用程序,确实没有其他方法可以做到这一点,并且由于应用程序 iframe 具有用于广告定位的合法内容并且由发布者(我)“拥有”,因此即使不是 Adsense 条款的文字,它似乎也符合精神使用。
我已经考虑过更改需要打开 Facebook 会话的页面的想法,只需禁用所有控件并向访问这些页面且尚未登录 Facebook 的用户显示 Facebook 登录按钮。我将使用 Javascript 客户端库来管理控件的登录和启用,因此页面不会刷新,因此希望 Adsense 能够读取内容并投放相关的定向广告。然而,这是对这些页面的重大更改,因此如果有更简单的解决方案,我想避免这项工作。