Ereignisse protokollieren

Plattform auswählen : iOS+ Android Web Flutter Unity C++

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

Google Analytics protokolliert einige Ereignisse automatisch. Sie müssen also keinen Code hinzufügen, um diese Ereignisse zu erhalten. Wenn Sie zusätzliche Daten benötigen, können Sie bis zu 500 verschiedene Analytics Ereignistypen in Ihrer App erfassen. Es gibt keine Beschränkung für die Gesamtzahl der Ereignisse, die Ihre App protokolliert. Beachten Sie, dass bei Ereignisnamen zwischen Groß- und Kleinschreibung unterschieden wird. 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 auf Analytics zugreifen können, wie unter Erste Schritte mit Analytics für C++ beschrieben.

Ereignisse protokollieren

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

Das Analytics SDK definiert eine Reihe empfohlener Ereignisse, die bei verschiedenen Arten von Apps üblich sind, z. B. bei Einzelhandels-, E-Commerce-, Reise- und Gaming-Apps. Weitere Informationen zu diesen Ereignissen und ihrer Verwendung finden Sie in den Artikeln zu Ereignissen und Eigenschaften in der Firebase-Hilfe.

Implementierungsdetails für empfohlene Ereignisse finden Sie an den folgenden Stellen:

  • Vorgeschlagene Ereignisse: Liste der Event Konstanten
  • Vorgeschriebene Parameter: Liste der Parameters Konstanten

Das folgende Beispiel zeigt, wie Sie ein vorgeschlagenes SELECT_CONTENT-Ereignis protokollieren:

  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 in Ihren Analytics Berichten nicht direkt dargestellt, können aber als Filter in Zielgruppen Definitionen verwendet werden, die auf jeden Bericht angewendet werden können. Benutzerdefinierte Parameter sind auch in den 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 Sie einen wichtigen Messwert für ein Analytics Ereignis erfassen können. Beispiele sind Umsatz, Entfernung, Zeit und Punkte.

Wenn Ihre Anwendung spezielle Anforderungen hat, die von einem vorgeschlagenen Analytics Ereignistyp nicht abgedeckt werden, können Sie eigene benutzerdefinierte Analytics Ereignisse protokollieren, wie in diesem Beispiel:

// 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-Debug-Log ansehen

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

Sie können die ausführliche Protokollierung 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.

Analytics-Ereignisse im Dashboard ansehen

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

So greifen Sie in der Firebase Console auf diese Daten zu:

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

Auf dem Tab Ereignisse werden die Ereignisberichte angezeigt, die automatisch für jeden einzelnen Typ von Analytics Ereignis erstellt werden, das von Ihrer App protokolliert wird. Weitere Informationen zum Dashboard.