在chrome扩展页面之间发送源和介质

时间:2017-07-28 09:38:15

标签: google-chrome-extension google-analytics

我创建了一个扩展程序,可以使用3种不同的方法打开页面:

  1. 右键单击图像并单击菜单项。
  2. 链接我在每张图片上动态创建。
  3. 在后台弹出上传图片。
  4. 用户点击链接或上传自己的图片后,会打开一个新标签,其中包含他点击(或上传)图片的信息。

    我已将utm_source和utm_campaign添加到链接中,但出于某种原因,流量计为直接流量,并且不会将信息添加到分析代码中。

    示例网址:chrome-extension://leoaaeofnhfjkmghbdngecpnadnolnnj/index.html?utm_source=extension&utm_medium=upload#data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/

    除此之外的其他问题,跟踪工作正常(发送网页浏览和事件)。

    是否有人遇到此问题并有解决方法?

1 个答案:

答案 0 :(得分:0)

经过长时间的调查,我找到了解决方案:

首先,我们得到URL参数:

var url_string = window.location;
var url = new URL(url_string);
var utm_source = url.searchParams.get("utm_source");
var utm_medium = url.searchParams.get("utm_medium");

然后我们确保将自己的域名作为引荐来源:

ga('create', 'UA-xxx-x', 'auto',{'alwaysSendReferrer': true});

最后,我们在调用页面视图事件之前手动设置源和媒体:

ga('set', 'campaignSource', utm_source);
ga('set', 'campaignMedium', utm_medium);
ga('send', 'pageview', '/xxx.html');

我猜测协议是chrome-extension:// utm参数没有正确处理,而且推荐是相同的域(扩展ID),它不算数作为转介。

希望这会对某人有所帮助......