Journaliser les événements

Les événements fournissent des informations sur ce qui se passe dans votre application, comme les actions de l'utilisateur, les événements système ou les erreurs.

Google Analytics enregistre automatiquement certains événements pour vous ; vous n'avez pas besoin d'ajouter de code pour les recevoir. Si votre application doit collecter des données supplémentaires, vous pouvez enregistrer jusqu'à 500 types d'événements Analytics différents dans votre application. Il n'y a pas de limite au volume total d'événements enregistrés par votre application. Notez que les noms d'événements sont sensibles à la casse et que la journalisation de deux événements dont les noms ne diffèrent que par la casse entraînera deux événements distincts.

Avant que tu commences

Assurez-vous que vous avez configuré votre projet et que vous pouvez accéder à Analytics comme décrit dans Premiers pas avec Analytics pour C++ .

Journaliser les événements

Après avoir initialisé le module firebase::analytics , vous pouvez l'utiliser pour enregistrer des événements avec la méthode LogEvent() .

Pour vous aider à démarrer, le SDK Analytics définit un certain nombre d'événements suggérés qui sont communs à différents types d'applications, y compris les applications de vente au détail et de commerce électronique, de voyage et de jeu. Pour en savoir plus sur ces événements et savoir quand les utiliser, parcourez les articles Événements et propriétés du centre d'aide Firebase.

Vous trouverez des informations sur la mise en œuvre des types d'événements suggérés aux emplacements suivants :

  • Evénements suggérés : voir la liste des constantes Event .
  • Paramètres prescrits : voir la liste des constantes Parameters .

L'exemple suivant montre comment consigner un événement SELECT_CONTENT suggéré :

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

En plus des paramètres prescrits, vous pouvez ajouter les paramètres suivants à n'importe quel événement :

  • Paramètres personnalisés : les paramètres personnalisés ne sont pas représentés directement dans vos rapports Analytics, mais ils peuvent être utilisés comme filtres dans les définitions d' audience qui peuvent être appliquées à chaque rapport. Les paramètres personnalisés sont également inclus dans les données exportées vers BigQuery si votre application est associée à un projet BigQuery.

  • Paramètre VALUE : VALUE est un paramètre à usage général qui est utile pour accumuler une métrique clé qui se rapporte à un événement Analytics. Les exemples incluent les revenus, la distance, le temps et les points.

Si votre application a des besoins spécifiques non couverts par un type d'événement Analytics suggéré, vous pouvez consigner vos propres événements Analytics personnalisés, comme illustré dans cet exemple :

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

Afficher les événements dans le journal de débogage d'Android Studio

Vous pouvez activer la journalisation détaillée pour surveiller la journalisation des événements par le SDK afin de vérifier que les événements sont correctement consignés. Cela inclut les événements consignés automatiquement et manuellement.

Vous pouvez activer la journalisation détaillée avec une série de commandes adb :

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

Cette commande affiche vos événements dans le logcat d'Android Studio, vous aidant à vérifier immédiatement que les événements sont envoyés.

Afficher les événements d'analyse dans le tableau de bord

Vous pouvez afficher des statistiques agrégées sur vos événements Analytics dans les tableaux de bord de la console Firebase. Ces tableaux de bord sont mis à jour périodiquement tout au long de la journée. Pour un test immédiat, utilisez la sortie logcat comme décrit dans la section précédente.

Pour accéder à ces données dans la console Firebase :

  1. Dans la console Firebase , ouvrez votre projet.
  2. Sélectionnez Analytics dans le menu pour afficher le tableau de bord des rapports Analytics.

L'onglet Événements affiche les rapports d'événements créés automatiquement pour chaque type distinct d'événement Analytics consigné par votre application. En savoir plus sur le tableau de bord des rapports Analytics dans le centre d'aide Firebase.