Zdarzenia zapewniają wgląd w to, co dzieje się w Twojej aplikacji, takie jak działania użytkowników, zdarzenia systemowe lub błędy.
Google Analytics automatycznie rejestruje niektóre zdarzenia za Ciebie; nie musisz dodawać żadnego kodu, aby je otrzymać. Jeśli Twoja aplikacja musi zbierać dodatkowe dane, możesz zarejestrować w niej do 500 różnych typów zdarzeń Analytics. Nie ma limitu łącznej liczby zdarzeń rejestrowanych przez Twoją aplikację. Należy pamiętać, że w nazwach zdarzeń rozróżniana jest wielkość liter, a rejestrowanie dwóch zdarzeń, których nazwy różnią się tylko wielkością liter, spowoduje powstanie dwóch różnych zdarzeń.
Zanim zaczniesz
Upewnij się, że masz skonfigurowany projekt i masz dostęp do Analytics zgodnie z opisem w artykule Pierwsze kroki z Analytics dla C++ .
Rejestruj zdarzenia
Po zainicjowaniu modułu firebase::analytics
możesz go używać do rejestrowania zdarzeń za pomocą metody LogEvent()
.
Aby ułatwić rozpoczęcie pracy, pakiet Analytics SDK definiuje szereg sugerowanych zdarzeń, które są wspólne dla różnych typów aplikacji, w tym aplikacji do handlu detalicznego i e-commerce, podróży i gier. Aby dowiedzieć się więcej o tych zdarzeniach i kiedy ich używać, przejrzyj artykuły Zdarzenia i właściwości w Centrum pomocy Firebase.
Szczegóły implementacji sugerowanych typów zdarzeń można znaleźć w następujących lokalizacjach:
- Sugerowane zdarzenia: zobacz listę stałych
Event
. - Przepisane parametry: zobacz listę stałych
Parameters
.
Poniższy przykład pokazuje, jak zarejestrować sugerowane zdarzenie 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]));
Oprócz określonych parametrów do dowolnego zdarzenia możesz dodać następujące parametry:
Parametry niestandardowe: parametry niestandardowe nie są przedstawiane bezpośrednio w raportach Analytics, ale można ich używać jako filtrów w definicjach odbiorców , które można zastosować do każdego raportu. Parametry niestandardowe są też uwzględniane w danych eksportowanych do BigQuery , jeśli Twoja aplikacja jest połączona z projektem BigQuery.
Parametr
VALUE
:VALUE
to parametr ogólnego przeznaczenia, który jest przydatny do gromadzenia kluczowych danych dotyczących zdarzenia Analytics. Przykłady obejmują przychody, odległość, czas i punkty.
Jeśli Twoja aplikacja ma określone potrzeby, których nie obejmuje sugerowany typ zdarzenia Analytics, możesz rejestrować własne niestandardowe zdarzenia Analytics, jak pokazano w tym przykładzie:
// 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; }
Wyświetl zdarzenia w dzienniku debugowania Android Studio
Możesz włączyć pełne rejestrowanie, aby monitorować rejestrowanie zdarzeń przez zestaw SDK, aby sprawdzić, czy zdarzenia są rejestrowane prawidłowo. Obejmuje to zarówno zdarzenia rejestrowane automatycznie, jak i ręcznie.
Pełne rejestrowanie można włączyć za pomocą serii poleceń adb:
adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC
To polecenie wyświetla zdarzenia w dzienniku Android Studio, pomagając natychmiast sprawdzić, czy zdarzenia są wysyłane.
Zobacz zdarzenia analityczne na pulpicie nawigacyjnym
Zagregowane statystyki dotyczące zdarzeń Analytics można wyświetlać w panelach kontrolnych konsoli Firebase. Te pulpity nawigacyjne aktualizują się okresowo w ciągu dnia. Do natychmiastowego testowania użyj danych wyjściowych logcat, jak opisano w poprzedniej sekcji.
Aby uzyskać dostęp do tych danych w konsoli Firebase:
- W konsoli Firebase otwórz projekt.
- Wybierz Analytics z menu, aby wyświetlić panel raportowania Analytics.
Karta Zdarzenia zawiera raporty o zdarzeniach, które są tworzone automatycznie dla każdego typu zdarzenia Analytics zarejestrowanego przez Twoją aplikację. Więcej informacji o panelu raportowania Analytics znajdziesz w Centrum pomocy Firebase.