Les événements vous renseignent sur ce qui se passe dans votre application (actions des utilisateurs, événements système ou erreurs, par exemple).
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 consigner jusqu'à 500 types d'événements Analytics différents dans votre application. Le volume total d'événements enregistrés par votre application n'est pas limité. Notez que les noms des événements sont sensibles à la casse. Enregistrer deux événements dont les noms ne diffèrent que par la casse entraîne l'enregistrement de deux événements distincts.
Avant de commencer
Assurez-vous d'avoir configuré votre projet et d'avoir accès à Analytics, comme décrit dans la section Premiers pas avec Analytics pour C++.
Événements de journaux
Une fois le module firebase::analytics
initialisé, vous pouvez l'utiliser pour consigner des événements à l'aide de 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, y compris les applications de commerce et d'e-commerce, de voyage et de jeux. Pour en savoir plus sur ces événements et savoir quand les utiliser, consultez les articles Événements et propriétés du centre d'aide Firebase.
Vous trouverez des informations détaillées sur l'implémentation des événements recommandés aux emplacements suivants:
- Événements suggérés: consultez la liste des constantes
Event
. - Paramètres prescrits: consultez 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 applicables à 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 permet d'accumuler une métrique clé concernant un événement Analytics. Exemples : revenus, distance, temps et points.
Si votre application présente 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 illustré dans l'exemple suivant:
// 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 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 enregistrés automatiquement et manuellement.
Vous pouvez activer la journalisation détaillée à l'aide d'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, ce qui vous permet de vérifier immédiatement que des événements sont envoyés.
Afficher les événements d'analyse dans le tableau de bord
Vous pouvez consulter 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 régulièrement 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:
- Dans la console Firebase, ouvrez votre projet.
- Sélectionnez Analytics dans le menu pour afficher le tableau de bord de reporting Analytics.
L'onglet Événements affiche les rapports sur les événements créés automatiquement pour chaque type d'événement Analytics distinct enregistré par votre application. En savoir plus sur le tableau de bord