【问题标题】:How to set custom user-agent that Google Analytics can read如何设置 Google Analytics 可以读取的自定义用户代理
【发布时间】:2018-09-13 21:27:38
【问题描述】:

我想为嵌入我的网站的 webview 应用程序设置自定义用户代理。我可以设置这样的自定义代理(“我的应用程序 Android”)。 问题是 Google Analytics 将此代理的流量读取为桌面,而不是像常规 webview 那样移动。 设置自定义用户代理的最佳方法是什么,同时仍保留移动设备和设备操作系统等数据,以便 Google Analytics 等工具仍然可以读取它。

【问题讨论】:

    标签: google-analytics user-agent


    【解决方案1】:

    您可以操纵用户代理,但无法控制 Google 将如何解释生成的设备/操作系统

    • 处理在服务器端完成(Google),因此无法直接修改该数据(即使sending data via the measurement protocol)。

    • Google 不会披露处理细节,因此在 Google Analytics 报告之前,您不会知道实验的结果是什么(这是由于 24-48 hour data processing latency可能会使这样的实验变得乏味)。

    • 试图操纵它可能会“破坏”您的分析:Google 对此含糊其辞,they just say:"Google has libraries to identify real user agents. Hand crafting your own agent could break at any time"。我能想到的 2 个后果:如果 Google 无法解析用户代理或将其标记为 bot/spider 流量(也将是 dropped if you have enabled the bot filtering option),Google 只会丢弃流量。

    虽然文档中没有提到,我也怀疑 Google 依赖其他数据点,可能是:

    我找不到有关该主题的更多详细信息,而且我认为您不会从 Google 那里找到更多详细信息来解释他们使用什么来计算浏览器/设备,因为他们不希望人们弄乱它(类比:您不会找到有关哪些数据点用于 SEO 的详细信息,因为他们不希望人们弄乱它)。我列出的 4 个维度(用户代理、屏幕分辨率、Java 支持、Flash 版本)据我所知是所有 GA 集合中唯一的 4 个特定于设备的维度(其他维度来自它们): https://developers.google.com/analytics/devguides/reporting/core/dimsmets#view=detail&group=platform_or_device

    【讨论】:

    • 你说得对,改变整个用户代理效率不高。我采取了另一种方式并实施了维度,我在答案中包含了详细信息。
    【解决方案2】:

    正如 MAX 的回答,这是真的,在保留所有属性的同时操作用户代理非常困难,比如操作系统和渲染引擎等...

    同时,我仍然希望使用自定义用户代理来定位我的应用用户,并能够从这个 webview 应用中分离流量。

    我做的是这样的:

    1- 设置自定义用户代理

    我没有用自定义的用户代理替换整个用户代理,而是将其附加到用户代理 [AppID/AppVersion],从这个博客中找到了很好的信息:Webviews and User-Agent strings。 p>

    现在用户代理看起来像这样:

    Mozilla/5.0(Linux;Android 9;wv) AppleWebKit/537.36 (KHTML, like Gecko) 版本/4.0 Chrome/68.0.3440.91 移动 Safari/537.36 [自定义应用程序/1.0.1]

    查看:Correct way to format user-agent string in an Android WebView App?

    2- 在 Google Analytics(分析)中设置自定义维度

    由于 Google Analytics 会将来自该代理的所有浏览器值访问标记为 Android Webview,因此我分配了一个自定义维度,以便能够识别 自定义用户代理会话并为其创建一个单独的视图

    在后端使用 PHP 我根据用户代理设置维度的值。

    <script>
    <?php
      if(strpos($_SERVER['HTTP_USER_AGENT'], 'Custom user agent here')!==false)
      {
         $customAgent_value = 'your agent';
      }
    ?>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-', {
      'custom_map': {'dimension1': 'custom_agent'}
      });
    gtag('event', 'custom_agent_event', {'custom_agent': '<?= $customAgent_value;?>'}); 
    </script>   
    

    这对我来说现在很好。我可以从特定的 webview 应用定位用户,同时能够在 Analytics 中分离来自不同 webview 的流量。

    【讨论】:

    • 这里不需要PHP,我相信javascript navigator.userAgent 效果很好
    • @Max 是的,你可以使用 JS,就我的使用而言,我更喜欢在后端使用 php,因为我正在实现其他自定义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    相关资源
    最近更新 更多