Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Журнал событий

События дают представление о том, что происходит в вашем приложении, например о действиях пользователя, системных событиях или ошибках.

Google Analytics автоматически регистрирует некоторые события для вас; вам не нужно добавлять код для их получения. Если вашему приложению требуется сбор дополнительных данных, вы можете зарегистрировать до 500 различных типов событий Analytics в своем приложении. Нет ограничений на общий объем событий, регистрируемых вашим приложением. Обратите внимание, что имена событий чувствительны к регистру и что регистрация двух событий, имена которых различаются только регистром, приведет к двум различным событиям.

Прежде чем вы начнете

Убедитесь , что вы создали свой проект и получить доступ Analytics , как описано в НАЧАТЬ с Analytics для C ++ .

Журнал событий

После инициализации firebase::analytics модуля, вы можете использовать его для регистрации событий с LogEvent() методом.

Чтобы помочь вам приступить к работе, Analytics SDK определяет ряд предлагаемых событий, которые являются общими для разных типов приложений, включая приложения для розничной торговли и электронной коммерции, туристические и игровые приложения. Чтобы узнать больше об этих событиях и когда использовать их, просматривать свойства и события , статьи в Firebase справочном центре.

Подробные сведения о реализации предлагаемых типов событий можно найти в следующих местах:

  • Предлагаемые мероприятия: просмотреть список Event констант.
  • Предписанные параметры: просмотреть список Parameters констант.

В следующем примере показано , как войти рекомендуемую SELECT_CONTENT событие:

  const analytics::Parameter kSelectContentParameters[] = {
    analytics::Parameter(analytics::kParameterItemID , id),
    analytics::Parameter(analytics::kParameterItemName, "name"),
    analytics::Parameter(analytics::kUserPropertySignUpMethod, "Google"),
    analytics::Parameter("favorite_food", mFavoriteFood),
    analytics::Parameter("user_id", mUserId),
  };
  analytics::LogEvent(
    analytics::kEventSelectContent, kSelectContentParameters,
    sizeof(kSelectContentParameters) / sizeof(kSelectContentParameters[0]));

Помимо прописанных параметров, вы можете добавить к любому событию следующие параметры:

  • Пользовательские параметры: Пользовательские параметры не представлены непосредственно в отчетах Analytics, но они могут быть использованы в качестве фильтров в аудитории определениях , которые могут быть применены к каждому отчету. Пользовательские параметры также включены в данные экспортируются в BigQuery , если ваше приложение связано с проектом BigQuery.

  • VALUE Параметр: VALUE общего параметр цели, которая полезна для накопления ключевого показателя , который относится к Analytics Event. Примеры включают доход, расстояние, время и баллы.

Если у вашего приложения есть особые потребности, которые не покрываются предлагаемым типом событий Analytics, вы можете регистрировать собственные настраиваемые события Analytics, как показано в этом примере:

// Copyright 2016 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

#include "firebase/analytics.h"
#include "firebase/analytics/event_names.h"
#include "firebase/analytics/parameter_names.h"
#include "firebase/analytics/user_property_names.h"
#include "firebase/app.h"

// Thin OS abstraction layer.
#include "main.h"  // NOLINT

// Execute all methods of the C++ Analytics API.
extern "C" int common_main(int argc, const char* argv[]) {
  namespace analytics = ::firebase::analytics;
  ::firebase::App* app;

  LogMessage("Initialize the Analytics library");
#if defined(__ANDROID__)
  app = ::firebase::App::Create(GetJniEnv(), GetActivity());
#else
  app = ::firebase::App::Create();
#endif  // defined(__ANDROID__)

  LogMessage("Created the firebase app %x",
             static_cast<int>(reinterpret_cast<intptr_t>(app)));
  analytics::Initialize(*app);
  LogMessage("Initialized the firebase analytics API");

  LogMessage("Enabling data collection.");
  analytics::SetAnalyticsCollectionEnabled(true);
  // App session times out after 30 minutes.
  // If the app is placed in the background and returns to the foreground after
  // the timeout is expired analytics will log a new session.
  analytics::SetSessionTimeoutDuration(1000 * 60 * 30);

  LogMessage("Get App Instance ID...");
  auto future_result = analytics::GetAnalyticsInstanceId();
  while (future_result.status() == firebase::kFutureStatusPending) {
    if (ProcessEvents(1000)) break;
  }
  if (future_result.status() == firebase::kFutureStatusComplete) {
    LogMessage("Analytics Instance ID %s", future_result.result()->c_str());
  } else {
    LogMessage("ERROR: Failed to fetch Analytics Instance ID %s (%d)",
               future_result.error_message(), future_result.error());
  }

  LogMessage("Set user properties.");
  // Set the user's sign up method.
  analytics::SetUserProperty(analytics::kUserPropertySignUpMethod, "Google");
  // Set the user ID.
  analytics::SetUserId("uber_user_510");

  LogMessage("Set current screen.");
  // Set the user's current screen.
  analytics::SetCurrentScreen("Firebase Analytics C++ testapp", "testapp");

  // Log an event with no parameters.
  LogMessage("Log login event.");
  analytics::LogEvent(analytics::kEventLogin);

  // Log an event with a floating point parameter.
  LogMessage("Log progress event.");
  analytics::LogEvent("progress", "percent", 0.4f);

  // Log an event with an integer parameter.
  LogMessage("Log post score event.");
  analytics::LogEvent(analytics::kEventPostScore, analytics::kParameterScore,
                      42);

  // Log an event with a string parameter.
  LogMessage("Log group join event.");
  analytics::LogEvent(analytics::kEventJoinGroup, analytics::kParameterGroupID,
                      "spoon_welders");

  // Log an event with multiple parameters.
  LogMessage("Log level up event.");
  {
    const analytics::Parameter kLevelUpParameters[] = {
        analytics::Parameter(analytics::kParameterLevel, 5),
        analytics::Parameter(analytics::kParameterCharacter, "mrspoon"),
        analytics::Parameter("hit_accuracy", 3.14f),
    };
    analytics::LogEvent(
        analytics::kEventLevelUp, kLevelUpParameters,
        sizeof(kLevelUpParameters) / sizeof(kLevelUpParameters[0]));
  }

  LogMessage("Complete");

  // Wait until the user wants to quit the app.
  while (!ProcessEvents(1000)) {
  }

  analytics::Terminate();
  delete app;

  LogMessage("Shutdown");

  return 0;
}

Просмотр событий в журнале отладки Android Studio

Вы можете включить подробное ведение журнала, чтобы отслеживать регистрацию событий SDK, чтобы убедиться, что события регистрируются правильно. Сюда входят события, регистрируемые как автоматически, так и вручную.

Вы можете включить подробное ведение журнала с помощью ряда команд adb:

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

Эта команда отображает ваши события в журнале Android Studio, помогая вам немедленно проверить отправку событий.

Просмотр событий аналитики на панели инструментов

Вы можете просмотреть сводную статистику о ваших событиях Analytics на панелях консоли Firebase. Эти информационные панели периодически обновляются в течение дня. Для немедленного тестирования используйте вывод logcat, как описано в предыдущем разделе.

Чтобы получить доступ к этим данным в консоли Firebase:

  1. В Firebase консоли , откройте свой проект.
  2. Выберите Analytics из меню для просмотра Аналитики отчетов приборной панели.

Вкладка События показывает отчеты о событиях , которые автоматически создаются для каждого отдельного типа Analytics Event протоколируются приложениями. Подробнее о Analytics сообщающего приборной панели в Firebase справочного центре.