获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Eventos de registro

Os eventos fornecem informações sobre o que está acontecendo em 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 que seu aplicativo registra. Observe que os nomes dos eventos diferenciam maiúsculas de minúsculas e que registrar dois eventos cujos nomes diferem apenas no caso resultará em dois eventos distintos.

Antes de você começar

Verifique se você configurou seu projeto e pode acessar o Analytics conforme descrito em Introdução ao Analytics para C++ .

Registrar eventos

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

Para ajudar você a começar, o Analytics SDK define uma série de eventos sugeridos 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 tipos de eventos sugeridos nos seguintes locais:

  • Eventos sugeridos: veja a lista de Constantes de Event .
  • Parâmetros prescritos: veja a lista de constantes de 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 em seus relatórios do Analytics, mas podem ser usados ​​como filtros nas definições de público que podem ser aplicadas a todos os relatórios. Os parâmetros personalizados também são incluídos nos dados exportados para o BigQuery se seu aplicativo estiver vinculado a um projeto do BigQuery.

  • Parâmetro VALUE : VALUE é um parâmetro de propósito geral que é útil para acumular uma métrica chave que pertence a um evento analítico. Exemplos incluem receita, distância, tempo e pontos.

Se seu aplicativo tiver necessidades específicas não cobertas por um tipo de evento de análise sugerido, você poderá registrar seus próprios eventos de análise 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 log 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 log 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

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

Exibir eventos de análise 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 que são criados automaticamente para cada tipo distinto de Evento do Analytics registrado pelo seu aplicativo. Leia mais sobre o painel de relatórios do Analytics na Central de Ajuda do Firebase.