Zdarzenia w dzienniku

Zdarzenia pozwalają stwierdzić, co dzieje się w aplikacji. Dostarczają informacji o użytkownikach. czynności, zdarzenia systemowe lub błędy.

Google Analytics automatycznie rejestruje niektóre wydarzenia dla Ciebie, nie musisz dodawać żadnego kodu, aby je otrzymywać. Jeśli aplikacja musi zbierać możesz zarejestrować do 500 różnych typów zdarzeń Analytics, w aplikacji. Nie ma limitu całkowitej liczby zdarzeń rejestrowanych przez aplikację. Pamiętaj, że w nazwach zdarzeń jest rozróżniana wielkość liter, a logowanie 2 zdarzeń, których nazwy różnią się tylko przypadkiem, gdy powstaną 2 różne zdarzenia.

Zanim zaczniesz

Upewnij się, że Twój projekt jest skonfigurowany i masz dostęp do Analytics jako opisane w Pierwsze kroki z Analytics dla C++

Zdarzenia w dzienniku

Po zainicjowaniu modułu firebase::analytics możesz używać go do logowania za pomocą metody LogEvent().

Aby ułatwić rozpoczęcie pracy, pakiet SDK Analytics określa szereg zalecane zdarzenia, które są typowe w różnych typach aplikacji, na przykład aplikacje związane z handlem detalicznym, e-commerce, podróżami i grami. Aby dowiedzieć się więcej o tych wydarzeniach i ich zastosowania znajdziesz w sekcji Zdarzenia i właściwości w Centrum pomocy Firebase.

Szczegółowe informacje o implementacji zalecanych zdarzeń znajdziesz w tych artykułach: lokalizacje:

  • Sugerowane zdarzenia: zobacz listę stałych Event.
  • Zalecane parametry: patrz lista stałych Parameters.

Poniższy przykład pokazuje, jak zapisać sugerowane wartości SELECT_CONTENT Zdarzenie:

  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]));

Oprócz określonych parametrów możesz dodać następujące parametry: do dowolnego wydarzenia:

  • Parametry niestandardowe: parametry niestandardowe nie są odzwierciedlane bezpośrednio w raportów Analytics, ale możesz ich używać jako filtrów Definicje odbiorców, które można zastosować w każdym raporcie. Niestandardowy zakres dat są też uwzględniane w danych eksportowanych do BigQuery, jeśli Twoja aplikacja jest połączona z projektem BigQuery.

  • VALUE Parametr: VALUE jest parametrem ogólnego przeznaczenia. przydatne do gromadzenia kluczowych danych związanych z Zdarzenie Analytics. Mogą to być na przykład przychody, dystans, czas i punkty.

Jeśli Twoja aplikacja ma konkretne potrzeby, których nie uwzględnia zalecany typu zdarzenia Analytics – możesz rejestrować własne, niestandardowe zdarzenia Analytics. Jak w tym przykładzie:

// 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;
}

Wyświetlanie zdarzeń w dzienniku debugowania Android Studio

Możesz włączyć logowanie szczegółowe, aby monitorować logowanie zdarzeń przez pakiet SDK. sprawdzać, czy zdarzenia są prawidłowo rejestrowane. Uwzględniane są zarówno automatycznie, zdarzeń rejestrowanych ręcznie.

Logowanie szczegółowe możesz włączyć za pomocą serii poleceń adb:

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

To polecenie wyświetla zdarzenia w dzienniku Androida Studio, od razu sprawdzić, czy zdarzenia są wysyłane.

Wyświetlanie zdarzeń analitycznych w panelu

Zbiorcze statystyki zdarzeń Analytics możesz wyświetlać w Panele konsoli Firebase. Te panele są okresowo aktualizowane w ciągu dnia. Aby przeprowadzić natychmiastowe testy, użyj danych wyjściowych logcat zgodnie z opisem w poprzedniej sekcji.

Aby uzyskać dostęp do tych danych w konsoli Firebase:

  1. W konsoli Firebase otwórz projekt.
  2. Aby wyświetlić statystyki, wybierz z menu Statystyki. panelu raportowania.

Na karcie Zdarzenia znajdziesz raporty o zdarzeniach, tworzone automatycznie dla każdego rodzaju zdarzenia Analytics rejestrowanego przez do aplikacji. Dowiedz się więcej o panelu.