Ereignisse protokollieren

Ereignisse liefern Informationen darüber, was in Ihrer App geschieht, z. B. Nutzeraktionen, Systemereignisse oder Fehler.

Google Analytics protokolliert einige Ereignisse automatisch für Sie. Sie müssen keinen Code hinzufügen, um sie zu erhalten. Wenn Ihre App zusätzliche Daten erfassen muss, können Sie bis zu 500 unterschiedliche Analytics-Ereignistypen in Ihrer App erfassen. Die Gesamtzahl der Ereignisse, die in Ihrer App protokolliert werden, ist nicht begrenzt. Bei Ereignisnamen wird zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie zwei Ereignisse protokollieren, deren Namen sich nur durch die Groß- und Kleinschreibung unterscheiden, werden zwei unterschiedliche Ereignisse erfasst.

Hinweis

Sie müssen Ihr Projekt eingerichtet haben und wie unter Erste Schritte mit Analytics für C++ beschrieben auf Analytics zugreifen können.

Protokollereignisse

Nachdem Sie das firebase::analytics-Modul initialisiert haben, können Sie damit Ereignisse mit der Methode LogEvent() protokollieren.

Zum Einstieg sind im Analytics SDK eine Reihe empfohlener Ereignisse definiert, die für verschiedene Arten von Apps üblich sind, z. B. für Einzelhandels- und E-Commerce-Apps, Reise- und Gaming-Apps. Weitere Informationen zu diesen Ereignissen und zu ihrer Verwendung finden Sie in den Artikeln Ereignisse und Properties in der Firebase-Hilfe.

Implementierungsdetails zu empfohlenen Ereignissen finden Sie an den folgenden Stellen:

  • Vorgeschlagene Ereignisse: Siehe Liste der Event-Konstanten.
  • Vorgeschriebene Parameter: siehe Liste der Parameters-Konstanten.

Das folgende Beispiel zeigt, wie ein vorgeschlagenes SELECT_CONTENT-Ereignis protokolliert wird:

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

Zusätzlich zu den vorgeschriebenen Parametern können Sie jedem Ereignis die folgenden Parameter hinzufügen:

  • Benutzerdefinierte Parameter: Benutzerdefinierte Parameter werden nicht direkt in Ihren Analytics-Berichten dargestellt, sondern können als Filter in Zielgruppendefinitionen verwendet werden, die auf jeden Bericht angewendet werden können. Benutzerdefinierte Parameter sind auch in Daten enthalten, die nach BigQuery exportiert werden, wenn Ihre App mit einem BigQuery-Projekt verknüpft ist.

  • VALUE-Parameter: VALUE ist ein allgemeiner Parameter, mit dem sich ein wichtiger Messwert für ein Analytics-Ereignis erfassen lässt. Beispiele sind Umsatz, Entfernung, Zeit und Punkte.

Wenn Ihre Anwendung bestimmte Anforderungen hat, die durch einen vorgeschlagenen Analytics-Ereignistyp nicht abgedeckt werden, können Sie Ihre eigenen benutzerdefinierten Analytics-Ereignisse erfassen, wie in diesem Beispiel gezeigt:

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

Ereignisse im Android Studio-Debugprotokoll ansehen

Sie können die ausführliche Protokollierung aktivieren, um die Protokollierung von Ereignissen durch das SDK zu überwachen und so zu prüfen, ob Ereignisse ordnungsgemäß protokolliert werden. Dazu gehören sowohl automatisch als auch manuell aufgezeichnete Ereignisse.

Sie können das ausführliche Logging mit einer Reihe von ADB-Befehlen aktivieren:

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

Mit diesem Befehl werden Ihre Ereignisse im Android Studio-Logcat angezeigt. So können Sie sofort prüfen, ob Ereignisse gesendet werden.

Analyseereignisse im Dashboard aufrufen

In den Console-Dashboards für Firebase können Sie zusammengefasste Statistiken zu Ihren Analytics-Ereignissen aufrufen. Diese Dashboards werden mehrmals täglich aktualisiert. Verwenden Sie für sofortige Tests die Logcat-Ausgabe wie im vorherigen Abschnitt beschrieben.

So greifen Sie in der Firebase-Konsole auf diese Daten zu:

  1. Öffnen Sie in der Firebase Console Ihr Projekt.
  2. Wählen Sie im Menü Analytics aus, um das Berichtsdashboard für Analytics aufzurufen.

Auf dem Tab Ereignisse sehen Sie die Ereignisberichte, die automatisch für jeden Analytics-Ereignistyp erstellt werden, der von Ihrer App protokolliert wird. Weitere Informationen zum Dashboard