首页 文章

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

提问于
浏览
0

我创建了一个扩展,从3种不同的方法打开一个页面:

  • 右键单击图像并单击菜单项 .

  • 链接我在每个图像上动态创建 .

  • 在后台弹出上传图像 .

一旦用户点击链接或上传他自己的图像,就会打开一个新选项卡,其中包含他点击(或上传)图像的信息 .

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

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

除此之外,跟踪工作正常(发送网页浏览和事件) .

任何人都遇到过这个问题并有一个解决方法?

1 回答

  • 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 params无法正确处理,并且因为引用是相同的域(扩展名id),所以它不算作引用 .

    希望这会帮助别人......

相关问题