| Seleziona la piattaforma: | iOS+ Android Web Flutter Unity C++ |
Gli eventi forniscono informazioni su ciò che accade nella tua app, ad esempio azioni degli utenti, eventi di sistema o errori.
Google Analytics registra automaticamente alcuni eventi per te, quindi non devi aggiungere alcun codice per riceverli. Se la tua app deve raccogliere dati aggiuntivi, puoi registrare fino a 500 tipi di eventi Analytics diversi nella tua app. Non esiste un limite al volume totale di eventi registrati dalla tua app. Tieni presente che i nomi degli eventi sono sensibili alle maiuscole e che la registrazione di due eventi i cui nomi differiscono solo per l'uso delle maiuscole comporta la creazione di due eventi distinti.
Prima di iniziare
Assicurati di aver configurato il progetto e di poter accedere a Analytics come descritto in Guida introduttiva a Analytics per C++.
Registrare gli eventi
Dopo aver inizializzato il modulo firebase::analytics, puoi utilizzarlo per registrare gli eventi con il metodo LogEvent().
Per aiutarti a iniziare, l'Analytics SDK definisce una serie di eventi consigliati comuni a diversi tipi di app, tra cui app di vendita al dettaglio ed e-commerce, di viaggi e di giochi. Per scoprire di più su questi eventi e su quando utilizzarli, consulta gli articoli Eventi e proprietà nel Centro assistenza Firebase.
Puoi trovare i dettagli di implementazione per gli eventi consigliati nelle seguenti posizioni:
- Eventi suggeriti: consulta l'elenco delle
Eventcostanti. - Parametri obbligatori: consulta l'elenco delle
Parameterscostanti.
L'esempio seguente mostra come registrare un evento suggerito
SELECT_CONTENT:
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]));
Oltre ai parametri obbligatori, puoi aggiungere i seguenti parametri a qualsiasi evento:
Parametri personalizzati: i parametri personalizzati non sono rappresentati direttamente nei Analytics report, ma possono essere utilizzati come filtri nelle definizioni del pubblico che possono essere applicate a ogni report. I parametri personalizzati sono inclusi anche nei dati esportati in BigQuery se la tua app è collegata a un progetto BigQuery.
Parametro
VALUE:VALUEè un parametro di uso generale utile per accumulare una metrica chiave relativa a un Analytics Evento. Alcuni esempi sono entrate, distanza, tempo e punti.
Se la tua applicazione ha esigenze specifiche non coperte da un tipo di Analytics evento, puoi registrare i tuoi eventi personalizzati Analytics come mostrato in questo esempio:
// 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; }
Visualizzare gli eventi nel log di debug di Android Studio
Puoi attivare il logging dettagliato per monitorare la registrazione degli eventi da parte dell'SDK e verificare che gli eventi vengano registrati correttamente. Sono inclusi sia gli eventi registrati automaticamente sia quelli registrati manualmente.
Puoi attivare il logging dettagliato con una serie di comandi adb:
adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC
Questo comando mostra gli eventi in logcat di Android Studio, consentendoti di verificare immediatamente che gli eventi vengano inviati.
Visualizzare gli eventi di Analytics nella dashboard
Puoi visualizzare le statistiche aggregate sugli eventi Analytics nelle dashboard della console Firebase. Queste dashboard vengono aggiornate periodicamente durante il giorno. Per i test immediati, utilizza l'output logcat come descritto nella sezione precedente.
Per accedere a questi dati nella Firebase console:
- Nella Firebase console, apri il progetto.
- Seleziona Analytics dal menu per visualizzare la dashboard dei report Analytics.
La scheda Eventi mostra i report sugli eventi creati automaticamente per ogni tipo distinto di evento Analytics registrato dalla tua app. Scopri di più sulla dashboard.