Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Consigner les événements

Les événements donnent 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 pas de limite sur le volume total d'événements que votre application enregistre. Notez que les noms d'événements sont sensibles à la casse et que la consignation 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 peut accéder à Google Analytics comme décrit dans Démarrer avec Analytics pour C ++ .

Consigner les événements

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

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 jeux. Pour en savoir plus sur ces événements et quand les utiliser, parcourir les événements et propriétés des articles dans le Firebase Centre d' aide.

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

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

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

  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 :

  • Les paramètres personnalisés: paramètres personnalisés ne sont pas représentés directement dans vos rapports Analytics, mais ils peuvent être utilisés comme filtres dans l' auditoire des définitions qui peuvent être appliquées à tous les rapports. 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.

  • VALUE Paramètre: VALUE est un paramètre objectif général qui est utile pour accumuler une mesure 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 d'analyse suggéré, vous pouvez enregistrer vos propres événements d'analyse 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 enregistrés. Cela inclut à la fois 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 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 de rapports Analytics.

L'onglet Événements montre les rapports d'événements qui sont créés automatiquement pour chaque type distinct de l' événement Analytics enregistrés par votre application. En savoir plus sur les Analytics rapports tableau de bord dans le Firebase Centre d' aide.