Eventos de registro

Os eventos fornecem informações sobre o que está acontecendo no seu aplicativo, como ações do usuário, eventos do sistema ou erros.

O Google Analytics registra automaticamente alguns eventos para você; você não precisa adicionar nenhum código para recebê-los. Se seu aplicativo precisar coletar dados adicionais, você poderá registrar até 500 tipos diferentes de eventos do Analytics em seu aplicativo. Não há limite para o volume total de eventos registrados pelo seu aplicativo. Observe que os nomes dos eventos diferenciam maiúsculas de minúsculas e que registrar dois eventos cujos nomes diferem apenas em maiúsculas e minúsculas resulta em dois eventos distintos.

Antes de você começar

Certifique-se de ter configurado seu projeto e de poder acessar o Analytics conforme descrito em Introdução ao Analytics para C++ .

Registrar eventos

Depois de inicializar o módulo firebase::analytics , você poderá usá-lo para registrar eventos com o método LogEvent() .

Para ajudar você a começar, o SDK do Analytics define vários eventos recomendados que são comuns entre diferentes tipos de aplicativos, incluindo aplicativos de varejo e comércio eletrônico, viagens e jogos. Para saber mais sobre esses eventos e quando usá-los, consulte os artigos Eventos e propriedades na Central de Ajuda do Firebase.

Você pode encontrar detalhes de implementação para eventos recomendados nos seguintes locais:

  • Eventos sugeridos: veja a lista de constantes Event .
  • Parâmetros prescritos: veja a lista de constantes Parameters .

O exemplo a seguir demonstra como registrar um evento SELECT_CONTENT sugerido:

  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]));

Além dos parâmetros prescritos, você pode adicionar os seguintes parâmetros a qualquer evento:

  • Parâmetros personalizados: os parâmetros personalizados não são representados diretamente nos seus relatórios do Analytics, mas podem ser usados ​​como filtros nas definições de público que podem ser aplicados a todos os relatórios. Os parâmetros personalizados também serão incluídos nos dados exportados para o BigQuery se o seu aplicativo estiver vinculado a um projeto do BigQuery.

  • Parâmetro VALUE : VALUE é um parâmetro de uso geral útil para acumular uma métrica principal pertencente a um evento analítico. Os exemplos incluem receita, distância, tempo e pontos.

Se seu aplicativo tiver necessidades específicas não atendidas por um tipo de evento do Analytics sugerido, você poderá registrar seus próprios eventos do Analytics personalizados, conforme mostrado neste exemplo:

// 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;
}

Ver eventos no registro de depuração do Android Studio

Você pode ativar o registro detalhado para monitorar o registro de eventos pelo SDK para ajudar a verificar se os eventos estão sendo registrados corretamente. Isso inclui eventos registrados automática e manualmente.

Você pode ativar o registro detalhado com uma série de comandos adb:

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

Este comando exibe seus eventos no logcat do Android Studio, ajudando você a verificar imediatamente se os eventos estão sendo enviados.

Visualize eventos analíticos no painel

Você pode visualizar estatísticas agregadas sobre seus eventos do Analytics nos painéis do Firebase Console. Esses painéis são atualizados periodicamente ao longo do dia. Para testes imediatos, use a saída do logcat conforme descrito na seção anterior.

Para acessar esses dados no console do Firebase:

  1. No console do Firebase , abra seu projeto.
  2. Selecione Analytics no menu para visualizar o painel de relatórios do Analytics.

A guia Eventos mostra os relatórios de eventos criados automaticamente para cada tipo distinto de evento do Analytics registrado pelo seu aplicativo. Leia mais sobre o painel .