技术:Google报告API V4和Google Visualization API,结合了PHP和JavaScript。我们无法安装和使用Google客户端库的具体原因。
问题:当它是Google报告API返回的类型时,可视化API为我提供了"无效类型整数"。我知道类型整数在可视化API中不支持,
https://developers.google.com/chart/interactive/docs/reference#datatable_addcolumn
因此,问题是动态使用报告API标头的正确方法是什么?我们是否需要每次映射数据类型?
简而言之:我查询分析数据并获取以下标题结构:
[columnHeader] => Array
(
[dimensions] => Array
(
[0] => ga:date
)
[metricHeader] => Array
(
[metricHeaderEntries] => Array
(
[0] => Array
(
[name] => ga:users
[type] => INTEGER
)
[1] => Array
(
[name] => ga:sessions
[type] => INTEGER
)
)
)
)
当我尝试创建列时
...
$mtype = $headers['metricHeader']['metricHeaderEntries'][0]['type'];
...
$column_object = "{'type':'$mtype','label':'$mname'}";
// produces {'type':'INTEGER','label':'ga:users'}
...
data.addColumn($column_object);
(firefox)控制台logs "无效类型,整数,用于列"用户"。
我可以通过硬编码'数字'来"作弊":
$ column_object =" {'type':'number','label':'$ mname'}";
效果很好,但我不必(或缺少某些东西),而是在使指标和尺寸动态时提出了一些挑战。"用户"确实是一个数字/整数。不禁感觉到这是我忽略的东西,可以轻松地从数据中映射列。
在经过大量的研究和实验之后,我认为我可能会发布解决方案的大纲(并提供批评/反馈。)
请记住,这是多个图表类型和多个维度/指标选择之间的图表"选择器",硬编码的一次性无法正常工作。它必须是动态的,并执行所有图表类型才能工作的所有转换。
Analytics返回类型字符串,整数,百分比,时间,货币,浮点的标题,这些标题确实需要映射到与字符串,数字,布尔值,日期,日期,日期和时间表的可视化兼容类型的类型。服务器端处理返回其他应用程序可能会消耗它的RAW JSON编码分析数据,并且数据的任何mods均在JavaScript中执行,并从JQuery上伸出。
。我遇到的问题是,我们"需要知道"给定列的原始数据类型,以适当格式化图表输出。没有"类型"的标头尺寸成员更加复杂。例如,Analytics返回"日期"作为字符串" 20190305"的"日期"的维度,该维度需要转换为图表输出的适当的JavaScript日期对象,但在我们的情况下,需要显示为字符串" 03/05/2019。" <<<<<<<<<<<<<<
收到分析数据后,我运行一个功能,将原始数据类型从分析添加到所有标题列作为自定义字段。这些不会被图表触摸,因此它不会影响功能。然后,我映射G.A.可视化类型的类型使它们正确输出图表,并参考我的"自定义类型成员",其中包含图表中格式化的原始数据类型。
使用HAXIS显示的HAXIS选项和可视化[date | number]格式化的原始类型用于正确格式化数据,用于列数据(工具提示值等)
有效
百分比 ->类型数字,但格式为百分比。
float->类型编号,格式为十进制。
货币 ->类型编号,格式为$货币。
date->键入date(),格式为mm/dd/yyy
time->键入date(),格式多种(通常是HH:MM:SS出于我们的目的)
字符串明显字符串
希望这对任何潜入G.A./Visualization集成的人有帮助。