Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Registrar eventos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Los eventos brindan información sobre lo que sucede en su aplicación, como acciones del usuario, eventos del sistema o errores.

Google Analytics registra automáticamente algunos eventos para usted; no necesita agregar ningún código para recibirlos. Si su aplicación necesita recopilar datos adicionales, puede registrar hasta 500 tipos de eventos de Analytics diferentes en su aplicación. No hay límite en el volumen total de eventos que registra su aplicación. Tenga en cuenta que los nombres de eventos distinguen entre mayúsculas y minúsculas y que registrar dos eventos cuyos nombres difieren solo en mayúsculas y minúsculas dará como resultado dos eventos distintos.

Antes de que empieces

Asegúrese de haber configurado su proyecto y poder acceder a Analytics como se describe en Primeros pasos con Analytics para C++ .

Registrar eventos

Una vez que haya inicializado el módulo firebase::analytics , puede usarlo para registrar eventos con el método LogEvent() .

Para ayudarlo a comenzar, el SDK de Analytics define una serie de eventos sugeridos que son comunes entre los diferentes tipos de aplicaciones, incluidas las aplicaciones minoristas y de comercio electrónico, viajes y juegos. Para obtener más información sobre estos eventos y cuándo usarlos, explore los artículos Eventos y propiedades en el Centro de ayuda de Firebase.

Puede encontrar detalles de implementación para los tipos de eventos sugeridos en las siguientes ubicaciones:

  • Eventos sugeridos: consulte la lista de constantes de Event .
  • Parámetros prescritos: ver la lista de Parameters constantes.

El siguiente ejemplo demuestra cómo registrar un 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]));

Además de los parámetros prescritos, puede agregar los siguientes parámetros a cualquier evento:

  • Parámetros personalizados: los parámetros personalizados no se representan directamente en sus informes de Analytics, pero se pueden usar como filtros en las definiciones de audiencia que se pueden aplicar a cada informe. Los parámetros personalizados también se incluyen en los datos exportados a BigQuery si su aplicación está vinculada a un proyecto de BigQuery.

  • Parámetro VALUE : VALUE es un parámetro de propósito general que es útil para acumular una métrica clave que pertenece a un evento de Analytics. Los ejemplos incluyen ingresos, distancia, tiempo y puntos.

Si su aplicación tiene necesidades específicas que no están cubiertas por un tipo de evento de análisis sugerido, puede registrar sus propios eventos de análisis personalizados como se muestra en este ejemplo:

// 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 en el registro de depuración de Android Studio

Puede habilitar el registro detallado para monitorear el registro de eventos por parte del SDK para ayudar a verificar que los eventos se registren correctamente. Esto incluye eventos registrados tanto automática como manualmente.

Puede habilitar el registro detallado con una serie 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 muestra sus eventos en el logcat de Android Studio, lo que lo ayuda a verificar de inmediato que los eventos se envían.

Ver eventos de análisis en el tablero

Puede ver estadísticas agregadas sobre sus eventos de análisis en los paneles de la consola de Firebase. Estos tableros se actualizan periódicamente a lo largo del día. Para pruebas inmediatas, use la salida logcat como se describe en la sección anterior.

Para acceder a estos datos en Firebase console:

  1. En la consola de Firebase , abre tu proyecto.
  2. Seleccione Analytics en el menú para ver el panel de informes de Analytics.

La pestaña Eventos muestra los informes de eventos que se crean automáticamente para cada tipo distinto de evento de análisis registrado por su aplicación. Obtenga más información sobre el panel de informes de Analytics en el Centro de ayuda de Firebase.