Registrar eventos

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 por usted; No necesitas 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 los eventos distinguen entre mayúsculas y minúsculas y que el registro de dos eventos cuyos nombres difieren sólo en mayúsculas y minúsculas da como resultado dos eventos distintos.

Antes de que empieces

Asegúrese de haber configurado su proyecto y de poder acceder a Analytics como se describe en Introducción a Analytics para C++ .

Registrar eventos

Después de haber inicializado el módulo firebase::analytics , puedes usarlo para registrar eventos con el método LogEvent() .

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

Puede encontrar detalles de implementación para eventos recomendados en las siguientes ubicaciones:

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

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, puedes 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 tu 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 análisis. 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 mediante el SDK para ayudar a verificar que los eventos se estén registrando 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 le ayuda a verificar inmediatamente que se están enviando los eventos.

Ver eventos de análisis en el panel

Puedes ver estadísticas agregadas sobre tus eventos de Analytics en los paneles de Firebase Console. Estos paneles se actualizan periódicamente a lo largo del día. Para realizar pruebas inmediatas, utilice la salida de logcat como se describe en la sección anterior.

Para acceder a estos datos en Firebase console:

  1. En Firebase console , 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 Analytics registrado por su aplicación. Lea más sobre el tablero .