Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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. Примеры включают доход, расстояние, время и очки.

Если у вашего приложения есть особые потребности, которые не покрываются предлагаемым типом события 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("Log current screen.");
  // Log the user's current screen.
  analytics::LogEvent(analytics::kEventScreenView, "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.

На вкладке « События » отображаются отчеты о событиях , которые автоматически создаются для каждого отдельного типа события аналитики, зарегистрированного вашим приложением. Узнайте больше о панели управления отчетами Analytics в Справочном центре Firebase.