正确使用Google报告API标头进行可视化数据表标头的方法



技术: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集成的人有帮助。

最新更新