Jump to content

Firebase Google Analytics с 1.15.3.0


Yaroslav Brovin

1,256 views

Добрый вечер,

Начиная с FGX Native 1.15.3.0, появится новый компонент для сборка аналитики использования вашего приложения TfgFirebaseAnalytics.

image.png

Данный компонент позволяет собрать информацию об использовании вашего приложения пользователями. Например, вы можете определить:

  1. Какую форму пользователи открывают чаще всего.
  2. Какие версии вашего приложения успешно запускаются.
  3. Сколько пользователей первый раз запустили приложение.
  4. Какие покупки чаще всего делают в вашем приложении.
  5. С какими компонентами чаще всего взаимодействуют. 
  6. И многое другое.

Подробности о Firebase Analyticshttps://firebase.google.com/docs/analytics?authuser=0

Настройка использования

Чтобы использовать новый компонент, необходимо выполнить общую регистрацию FGX Native приложения в Firebase консоли (Шаги такие же, как регистрация приложения для использования Push-уведомлений): 

Дополнительно для Android нужно вручную добавить зависимость на библиотеку "com.google.firebase:firebase-analytics:21.2.0"

https://forum.fgx-native.com/blogs/entry/56-интеграция-android-библиотек-просто-и-быстро-с-11520/

image.png

Если вы не выполните корректную настройку приложения, то на iOS запуск приложения закончится ошибкой старта, а в Android ни одна метрика не будет отправлена в облако Firebase. 

Отправка событий

Чтобы начать отправку событий необходимо разместить новый компонент TfgFirebaseAnalytics. Рекомендуем разместить его на общем дата модуле, чтобы вы могли пользоваться одним экземпляром компонента в любом месте. Однако, вы можете использовать и несколько экземпляров данного компонента.

Как только вы размещаете его в приложении, так сразу компонент начинает автоматический сбор базовых событий в вашем iOS/Android приложении, такие как:

  • Определение первого запуска приложения
  • Статистику использования разных версий вашего приложения.
  • Сбор сессий использования. 
  • И тд.

Такие события доступны в консоли Firebase в разделе Analytics -> Realtime.

image.png

Помимо автоматического сбора событий, вы можете выполнять отправку своих событий.

Каждое событие, происходящее в вашем приложении, характеризуется:

  • Name - имя. Строковый код события. Firebase предлагает готовые коды событий. С ними можно познакомиться на этой странице. Вы можете использовать, как готовые коды, так и свои собственные.
    Например: событие select_content предназначено для информирования о том, что пользователь выбрал важный для вас контент (нажал на кнопку, открыл форму и тд).
  • Parameters - параметры в формате - название параметра - значение. Каждое событие может сопровождаться соответствующими параметрами. Firebase описывает связанные с событиями параметрами, которые вы можете отправить.
    Например, событие select_content сопровождается двумя параметрами: content_type и item_id (документация)

Для отправки события в компоненте есть два метода, позволяющие это сделать:

/// <summary>
///   Отправляет на сервер Firebase событие с именем <c>AName</c>, параметрами c именами <c>AKeys</c> и значениями
///   <c>AValues</c>.
/// </summary>
procedure LogEvent(const AName: string; const AKeys: TArray<string>; const AValues: array of const); overload;

/// <summary>Отправляет на сервер Firebase событие с именем <c>AName</c>.</summary>
procedure LogEvent(const AName: string); overload;

    Чтобы узнать, что пользователь нажал на кнопку покупки в вашем приложении, необходимо добавить в обработчик вызов метода LogEvent:

    procedure TFormMain.fgButtonBuyTap(Sender: TObject);
    begin
      fbAnalytics.LogEvent('select_content', ['content_type', 'item_id'], ['Button', 'Buy subscription']);
    end;

    Определение открытых экранов/форм

    Помимо отправки любых событий, компонент TfgFirebaseAnalytics позволяет отправлять информацию о том, какие формы/экраны открывает пользователь. Чтобы воспользоваться данной возможностью, необходимо в момент отображения формы передавать на сервер Firebase информацию о текущей форме.

    /// <summary>
    ///   Задает текущее название экрана, которое определяет текущий визуальный контекст в вашем приложении.
    ///   Это помогает определить области в вашем приложении, где пользователи проводят свое время и как они
    ///   взаимодействуют с вашим приложением.
    /// </summary>
    procedure SetCurrentScreen(const AScreenName: string; const AScreenClassName: string);

    Для удобства отслеживания, когда форма появляется на переднем плане, в FGX Native 1.15.3.0 для формы TfgForm добавлены два новых события:

    /// <summary>Вызывается, когда форма выходит на передний план на экране.</summary>
    /// <remarks>Не вызывается для встроенных форм-фреймов.</remarks>
    property OnActivate: TNotifyEvent read FOnActivate write FOnActivate;
    
    /// <summary>Вызывается, когда форма уходит с переднего плана на экране.</summary>
    /// <remarks>Не вызывается для встроенных форм-фреймов.</remarks>
    property OnDeactivate: TNotifyEvent read FOnDeactivate write FOnDeactivate;

    Именно их мы рекомендуем использовать для указания текущего экрана в Firebase Analytics.

    Например, код по отображению главной формы может выглядеть так:

    procedure TFormMain.fgFormActivate(Sender: TObject);
    begin
      Shared.fbAnalytics.SetCurrentScreen('Main form', ClassName);
    end;

    Первым параметром указывание название экрана, вторым - класс. 

    Общие настройки

    Помимо главной задачи отправления статистики в Firebase Analyitcs, вы можете выполнять базовые настройки компонента:

    /// <summary>
    ///   Удаляет все аналитические данные для этого приложения с устройства и сбрасывает идентификатор экземпляра приложения.
    /// </summary>
    procedure ResetAnalyticsData;
    
    /// <summary>
    ///   Включен ли сбор аналитики для этого приложения на данном устройстве. Этот параметр сохраняется во всех сеансах
    ///   приложения. По умолчанию он включен.
    /// </summary>
    property Enabled: Boolean read FEnabled write SetEnabled default DefaultEnabled;
    
    /// <summary>Уникальный идентификатор текущего пользователя.</summary>
    property UserId: string read FUserId write SetUserId;
    
    /// <summary>Задает продолжительность бездействия, которая завершает текущий сеанс.</summary>
    property SessionTimeoutDuration: Integer read FSessionTimeoutDuration write SetSessionTimeoutDuration default DefaultSessionTimeoutDuration;

    С остальными подробности использования вы можете ознакомиться в официальной документации Firebase:  https://firebase.google.com/docs/analytics?authuser=0

    Спасибо

    • Like 6
    • Thanks 1

    2 Comments


    Recommended Comments

    Здравствуйте, сделал все как в описании, но вот проблема, нет такой библиотеки в репозитории

    com.google.firebase:firebase-analytics:21.2.0

    На скриншоте те что из доступных

    Screenshot_12.png

    Edited by r3h0soft
    Link to comment
    • Administrators

    Добрый вечер,

    7 минут назад, r3h0soft сказал:

    Здравствуйте, сделал все как в описании, но вот проблема, нет такой библиотеки в репозитории

    Просто введите название библиотеки вручную в первое поле "com.google.firebase:firebase-analytics:21.2.0". Поиск сделан только для одного репозитория из двух (maven). Для Google репозитория апи поиска не доступно.

    • Like 1
    Link to comment
    Guest
    Add a comment...

    ×   Pasted as rich text.   Restore formatting

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    • Recently Browsing   0 members

      • No registered users viewing this page.
    ×
    ×
    • Create New...