我想为嵌入我的网站的Webview应用程序设置自定义用户代理。我可以设置一个这样的自定义代理(“我的Android应用”)。 问题在于,Google Analytics(分析)将该代理的流量读取为桌面,而不是像常规Webview一样移动。 在设置自定义用户代理的同时仍保留移动数据和Device OS等数据的最佳方法是什么,以便Google Analytics(分析)之类的工具仍可以读取它。
答案 0 :(得分:1)
您可以操纵用户代理,但无法控制Google如何解释生成的设备/操作系统:
处理是在服务器端完成的(Google),因此无法直接修改该数据(即使在sending data via the measurement protocol时也是如此)。
Google不会披露处理细节,因此您不会知道实验的结果是什么,直到Google Analytics(分析)报告了这些结果为止(由于{{3 }}可能会使这样的实验变得乏味。
"Google has libraries to identify real user agents. Hand crafting your own agent could break at any time"
。我能想到的2个后果:如果Google无法解析用户代理或将其标记为漫游器/蜘蛛流量(也将是they just say),它只会丢弃流量。尽管文档中未提及,但我也怀疑Google依赖其他数据点,可能是:
我找不到关于该主题的更多详细信息,并且我认为您不会从Google找到更多详细信息来解释他们用于计算浏览器/设备的内容,因为他们不想让人们弄乱它(类比:您不会找到有关用于SEO的数据点的详细信息,因为它们不希望人们弄乱它。据我所知,我列出的4个维度(用户代理,屏幕分辨率,Java支持,Flash版本)是所有GA集合中唯一特定于设备的4个维度(其他维度是从这些集合中得出的): Flash version
答案 1 :(得分:0)
就像 MAX的答案一样,在保留所有属性(如OS和渲染引擎等)的同时操作用户代理非常困难。
与此同时,我仍然想使用自定义用户代理来定位我的应用用户,并能够将流量与该Webview应用分开。
这是我做的:
1-设置自定义用户代理
我没有将整个用户代理替换为自定义代理,而是将其附加到用户代理 [AppID / AppVersion] ,从此博客中找到了很多有用的信息:Webviews and User-Agent strings。
现在用户代理看起来像这样:
Mozilla / 5.0(Linux; Android 9; wv) AppleWebKit / 537.36(KHTML,像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应用程序定位用户,同时可以将流量与Google Analytics(分析)中不同Webview的流量分开。