Journaliser les événements

Les événements fournissent un aperçu de ce qui se passe dans votre application, comme les actions des utilisateurs, 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 aucune limite sur le 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 diffèrent uniquement par la casse entraîne 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 for 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 recommandés qui sont communs à différents types d'applications, notamment les applications de vente au détail et de commerce électronique, de voyage et de jeux. Pour en savoir plus sur ces événements et savoir quand les utiliser, parcourez les articles sur les événements et les propriétés dans le centre d'aide Firebase.

Vous pouvez trouver les détails de mise en œuvre des événements recommandés aux emplacements suivants :

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

L'exemple suivant montre comment enregistrer 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 pouvant ê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 lié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é relative à 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 enregistrer vos propres événements Analytics personnalisés, comme indiqué 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("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;
}

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 journalisés. Cela inclut les événements enregistré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 ainsi à 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 des tests immédiats, 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 automatiquement créés pour chaque type distinct d'événement Analytics enregistré par votre application. En savoir plus sur le tableau de bord .