Правильный способ использования заголовков API отчетов Google для заголовков таблиц данных визуализации - PullRequest
0 голосов
/ 04 марта 2019

Технологии: Google Reporting API V4 и Google Visualization API, сочетающие PHP и Javascript.Существуют конкретные причины, по которым мы не можем установить и использовать клиентскую библиотеку Google.

Проблема: API-интерфейс визуализации дает мне «недопустимый тип Integer», когда именно этот тип возвращает API отчетов Google.Я знаю, что целочисленный тип не поддерживается в API визуализации,

https://developers.google.com/chart/interactive/docs/reference#DataTable_addColumn

Итак, вопрос в том, каков правильный подход к динамическому использованию заголовков API отчетности для построения заголовков таблиц диаграммы?Нужно ли нам каждый раз отображать типы данных?

В двух словах: я запрашиваю данные Google Analytics и получаю следующую структуру заголовка:

            [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) консольные журналы «Недопустимый тип, INTEGER, для столбца« Пользователи ».

Я могу« обмануть »здесь жестким кодированием« число »дляtype:

$ column_object = "{'type': 'number' , 'label': '$ mname'}";

Что отлично работает, но я не долженЭто не обязательно (или я что-то упускаю) и создает некоторые проблемы при создании динамических метрик и измерений. «Пользователи» - это действительно число / целое число. Не могу не почувствовать, что я упустил из виду то, что легко сопоставило бы столбцы с данными.

1 Ответ

0 голосов
/ 18 марта 2019

Без ответов, после долгих исследований и экспериментов, я подумал, что могу опубликовать план своего решения (и предложить его для критики / обратной связи).

Имейте в виду, что это «селектор» диаграммы между несколькимитипы диаграмм и выбор нескольких измерений / метрик, одноразовый код не будет работать.Он должен быть динамическим и выполнять все преобразования для всех типов диаграмм.

Analytics возвращает заголовки типов STRING, INTEGER, PERCENT, TIME, CURRENCY, FLOAT, которые действительно должны быть сопоставлены с типами, совместимыми с визуализацией.строки, числа, логического значения, даты, даты и времени.Обработка на стороне сервера возвращает необработанные данные Google Analytics в кодировке JSON, если другие приложения могут их использовать, и любые моды для данных выполняются в Javascript с шагом вверх от jQuery.

Проблема, с которой я столкнулся, заключается в том, что мы«Необходимо знать» исходный тип данных данного столбца для правильного форматирования при выводе диаграммы.Это дополнительно усложняется тем, что элемент измерений заголовка не имеет «тип».Например, Analytics возвращает измерение «дата» в виде строки «20190305», которое необходимо преобразовать в надлежащий объект Javascript Date для вывода диаграммы, но в нашем случае необходимо отобразить в виде строки «03/05/2019».

При получении данных Analytics я запускаю функцию добавления исходных типов данных из Analytics во все столбцы заголовка в качестве настраиваемых полей.Они не затрагиваются диаграммами, поэтому это не влияет на функциональность.Затем я сопоставляю типы GA с типами визуализации, чтобы они правильно выводили диаграмму, и ссылаюсь на мои «элементы пользовательских типов», которые содержат исходный тип данных для форматирования в диаграмме.

Исходные типы ссылаются направильное форматирование данных с использованием параметров hAxis для отображения hAxis и средства визуализации [Date | Number] для данных столбца (значения всплывающей подсказки и т. д.)

Эффективно

  • процентов -> номер типа, но форматируется в процентах с%.

  • с плавающей точкой -> номер типа, форматируется в десятичном формате.

  • валюта-> введите номер, отформатируйте в $ валюту.

  • дата -> введите Дата (), отформатируйте в ММ / ДД / ГГГ

  • время-> тип Date (), различные форматы (обычно это ЧЧ: ММ: СС для наших целей)

  • строка, очевидно, строка

Надеюсь, что этополезно для любого, кто погружается в интеграцию GA / Visualization.

...