Отправка полезной нагрузки пар ключ-значение в Google Analytics

Я пытаюсь отправить N количество настраиваемых пар ключ-значение, прикрепленных к одному Хиту. Этот удар будет иметь свою собственную ключевую категорию/действие/метку, но я определяю свои собственные ключи.

Я пытаюсь интегрировать Google Analytics в свое приложение. Я выполнил все шаги настройки, и он работает, но я пытаюсь понять, как работает отчет о событиях, и как я могу отправить свои собственные пользовательские события из предопределенных пар ключ-значение.

Map<String, String> myMap = new HashMap<>();
myMap.put("hello", "world");
myMap.put("liek", "turtles");
GoogleAnalytics analytics = GoogleAnalytics.getInstance(context);
analytics.setLocalDispatchPeriod(1800);
Tracker tracker = analytics.newTracker(token);
tracker.send(myMap);

который неслучайно получен с ошибкой Logcat.

W/GAv4﹕ Discarding hit. Missing hit type parameter: tid=world, a=504324093

Я экспериментирую с другими API, такими как HitBuilders и set(), но ни один из них не обеспечивает четкое сопоставление пар ключ-значение.

Ответ 1

Я думаю, что вы ищете Пользовательские размеры. Сначала вы должны создать настраиваемое измерение, а затем отправить его вместе с удалением экрана/события.

Используя ваш пример, вы должны использовать его следующим образом:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(TrackerName.APP_TRACKER);
t.setScreen("Home Screen");

// Send the custom dimension value with a screen view.
// Note that the value only needs to be sent once.
t.send(new HitBuilders.ScreenViewBuilder()
    .setCustomDimension(1, "world")
    .setCustomDimension(2, "turtles")
    .build()
);

Где измерение # 1 будет настроено как "измерение приветствия", а размер # 2 будет "размерностью liek". Это пример на экране, но то же самое можно было бы сделать с событием.

Ответ 2

Кажется, вы используете старый SDK Google Analytics, который я бы не рекомендовал. Попробуйте использовать v4 и следуйте Google Analytics SDK для руководства Android.

Я не уверен, что вы пытаетесь сделать точно, но настраиваемое событие можно отправить с помощью EventBuilder следующим образом:

tracker.send(new HitBuilders.EventBuilder()
         .setCategory("your-category")
         .setAction("your-action")
         .setLabel("your-label")
         .build());