Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin 谷歌分析的用户代理字符串_Xamarin_Google Analytics_User Agent - Fatal编程技术网

Xamarin 谷歌分析的用户代理字符串

Xamarin 谷歌分析的用户代理字符串,xamarin,google-analytics,user-agent,Xamarin,Google Analytics,User Agent,我创建了一个相对简单的应用程序,用于使用Xamarin表单应用程序将事件推送到Google Analytics。该库可以正常工作,事件可以记录到GA帐户中 我需要改进的一个方面是“设备类型”报告。GA使用API请求中的用户代理来确定设备的负载—操作系统、平台、分辨率、制造商等。如果我使用浏览器进行调用,那么显然我会得到所有这些,但是因为我使用的是基本的HttpClient,所以没有默认的用户代理字符串 我需要存储一个可能的字符串的大字典(不是一个好主意),构建一个字符串(一个好主意,除非你必须做

我创建了一个相对简单的应用程序,用于使用Xamarin表单应用程序将事件推送到Google Analytics。该库可以正常工作,事件可以记录到GA帐户中

我需要改进的一个方面是“设备类型”报告。GA使用API请求中的用户代理来确定设备的负载—操作系统、平台、分辨率、制造商等。如果我使用浏览器进行调用,那么显然我会得到所有这些,但是因为我使用的是基本的
HttpClient
,所以没有默认的用户代理字符串

我需要存储一个可能的字符串的大字典(不是一个好主意),构建一个字符串(一个好主意,除非你必须做大量的自省来获得详细信息),或者有一些方法来询问设备本身它对用户代理字符串使用了什么

如果我必须构建自己的系统,那么我首先要做的就是能够识别我使用的操作系统(Android、iOS、Windows)以及设备类型(平板电脑、手机)。当然,设备制造商、型号等都很好,但我自己建立这种查找功能很快就会变得疯狂

我找不到关于GA如何解析用户代理字符串的清晰文档,因此我不完全清楚识别我自己的一般形式

我已经在网上找到了用户代理字符串的长列表。我所希望的是某种算法或文档,可以帮助生成至少一个基本的用户代理字符串,允许库消费者报告一些基本的设备信息,这些信息将依次显示在他们的GA仪表板上

编辑

我想我应该提到,理想情况下,我会有一个PCL的方式来做这件事。现在这个库是完全PCL的,如果我能避免生成特定于平台的实现,那就太好了。这不是一个硬性要求,而是一个真正的“好东西”。

iOS UIWebView(最终用户看不见): 注意:这样做一次,并将结果存储起来以备将来使用,因为创建
UIWebView
,运行JavaScript并不便宜(性能方面)

样本输出:

Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E230
Dalvik/2.1.0 (Linux; U; Android 5.1.1; Z716BL Build/LMY47V)
Android Java系统: 样本输出:

Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E230
Dalvik/2.1.0 (Linux; U; Android 5.1.1; Z716BL Build/LMY47V)
注意:如果您对创建自己的用户代理感兴趣,您应该在他从ASOP源代码中提取代码时查看这一点


我会查看RFC 1945的格式和链接,这看起来不错。在理想的情况下,我不想保持PCL合规性,但如果没有其他建议,我可能会朝这个方向努力。@ctacke A
user-agent
by design取决于平台。。。。您可以使用
Xamarin.Forms
依赖项服务,但这仍然会被调用到平台代码中。否则,你只需要编一些不依赖于任何平台相关结果的字符串,并将其发布到GA,但我不确定这会为你带来什么样的细分分析,因为GA会分解用户代理,为你提供设备(浏览器)、版本等。。作为最终用户演示的一部分。我们要做的另一件事是将我们的应用程序版本标记到字符串中……是的,我知道它们是,但我可以用PCL Xamarin表单做一些简单的事情,比如检测操作系统和习惯用法,因此,如果没有特定于平台的库,我可以合理地生成一些东西,上面写着“我在安卓平板电脑上”或“我在iPhone上”