将广告投放到Chrome扩展程序中?

时间:2016-07-22 00:41:50

标签: javascript google-chrome google-chrome-extension

根据Google Developer计划政策(https://developer.chrome.com/webstore/program_policies),将广告添加到Chrome扩展程序中是完全可以接受的:

  

广告必须在上下文中显示,或明确说明与其捆绑的应用或扩展程序。通过调整设置或完全卸载应用或扩展程序,还可以轻松删除广告。广告可能无法模拟或模拟系统通知或警告。

因此,我正在尝试添加广告,并且我正在使用Chitika,因为不允许使用AdSense。我花了很长时间才接近广告,我不得不编辑缩小的文件以及更多符合Chrome扩展程序清单content_security_policy的内容。无论如何,截至目前,只有1家公司的广告正在展示,但其余的广告被屏蔽了:

getads.js:340 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' https://www.google-analytics.com https://secure.adnxs.com https://gum.criteo.com https://ib.adnxs.com https://mm.chitika.net https://cdn.chitika.net". Either the 'unsafe-inline' keyword, a hash ('sha256-KaerrywnDX+trLhtIG9qlTDyP6iiK4PCLN7LWCvctFc='), or a nonce ('nonce-...') is required to enable inline execution.

我该怎么做才能解决这个问题?我已尝试添加keyworkd unsafe-inline,但我收到了另一条错误消息:

Ignored insecure CSP value "'unsafe-inline'" in directive 'object-src'.

此时我能做些什么?我并不真正控制广告如何嵌入到我的软件中,所以我有点受限。有人有想法吗?如果没有,是否有另一个适用于Chrome扩展程序的广告平台?我不想要任何令人烦恼的东西......只是一个320x50的广告或者其他东西..而且它变得如此令人沮丧,因为我每月在我的Chrome扩展程序上获得800万次页面展示,而我无法生成任何内容收入!

感谢您的帮助。

修改:这是我的广告代码:

( function() {
if (window.CHITIKA === undefined) { window.CHITIKA = { 'units' : [] }; };
var unit = {"calltype":"async[2]","publisher":"USER_NAME","width":300,"height":250,"sid":"Chitika Default"};
var placement_id = window.CHITIKA.units.length;
window.CHITIKA.units.push(unit);
document.write('<div id="chitikaAdBlock-' + placement_id + '"></div>');
}());

你必须包括:

<script type="text/javascript" src="../../js/getads.js" async></script>可在此处找到:http://cdn.chitika.net/getads.js。我用https版本替换了所有域名。

编辑2:我的content_security_policy看起来像这样:

"content_security_policy": "script-src 'self' https://www.google-analytics.com https://secure.adnxs.com https://gum.criteo.com https://ib.adnxs.com https://mm.chitika.net https://cdn.chitika.net; object-src 'self'",

2 个答案:

答案 0 :(得分:0)

developer program policies网站上,您可以找到以下注释:

  

目前,AdSense可能不会用于在Chrome扩展程序中投放广告   或Chrome应用,每AdSense policies

事实上,这意味着现在您无法在Chrome扩展程序中使用广告。

答案 1 :(得分:-1)

如果unsafe-inline不起作用,则尝试使用哈希来标识您尝试执行的每个脚本。这样,如果试图在html中执行的代码对应于您定义的哈希,那么代码将被执行。有关此内容的更多信息:http://www.w3.org/TR/2015/CR-CSP2-20150721/#script-src-hash-usage