Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Catat acara

Peristiwa memberikan wawasan tentang apa yang terjadi di aplikasi Anda, seperti tindakan pengguna, peristiwa sistem, atau kesalahan.

Google Analytics secara otomatis mencatat beberapa peristiwa untuk Anda; Anda tidak perlu menambahkan kode apa pun untuk menerimanya. Jika aplikasi Anda perlu mengumpulkan data tambahan, Anda dapat mencatat hingga 500 jenis peristiwa Analytics yang berbeda di aplikasi Anda. Tidak ada batasan pada total volume peristiwa yang dicatat oleh aplikasi Anda. Perhatikan bahwa nama peristiwa peka huruf besar-kecil dan mencatat dua peristiwa yang namanya berbeda hanya dalam kasus akan menghasilkan dua peristiwa yang berbeda.

Sebelum kamu memulai

Pastikan Anda telah menyiapkan proyek dan dapat mengakses Analytics seperti yang dijelaskan di Memulai Analytics untuk C++ .

Catat acara

Setelah Anda menginisialisasi modul firebase::analytics , Anda dapat menggunakannya untuk mencatat peristiwa dengan metode LogEvent() .

Untuk membantu Anda memulai, SDK Analytics menentukan sejumlah peristiwa yang disarankan yang umum di antara berbagai jenis aplikasi, termasuk aplikasi ritel dan e-niaga, perjalanan, dan game. Untuk mempelajari lebih lanjut tentang peristiwa ini dan kapan menggunakannya, jelajahi artikel Peristiwa dan properti di Pusat Bantuan Firebase.

Anda dapat menemukan detail penerapan untuk jenis peristiwa yang disarankan di lokasi berikut:

  • Acara yang disarankan: lihat daftar konstanta Event .
  • Parameter yang ditentukan: lihat daftar konstanta Parameters .

Contoh berikut menunjukkan cara mencatat Peristiwa SELECT_CONTENT yang disarankan:

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

Selain parameter yang ditentukan, Anda dapat menambahkan parameter berikut ke peristiwa apa pun:

  • Parameter khusus: Parameter khusus tidak direpresentasikan secara langsung dalam laporan Analytics Anda, tetapi dapat digunakan sebagai filter dalam definisi Pemirsa yang dapat diterapkan ke setiap laporan. Parameter kustom juga disertakan dalam data yang diekspor ke BigQuery jika aplikasi Anda ditautkan ke project BigQuery.

  • Parameter VALUE : VALUE adalah parameter tujuan umum yang berguna untuk mengumpulkan metrik utama yang berkaitan dengan Peristiwa Analytics. Contohnya termasuk pendapatan, jarak, waktu dan poin.

Jika aplikasi Anda memiliki kebutuhan khusus yang tidak tercakup oleh jenis Peristiwa Analytics yang disarankan, Anda dapat mencatat Peristiwa Analytics khusus Anda sendiri seperti yang ditunjukkan dalam contoh ini:

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

Lihat acara di log debug Android Studio

Anda dapat mengaktifkan pencatatan log verbose untuk memantau pencatatan log peristiwa oleh SDK guna membantu memverifikasi bahwa peristiwa dicatat dengan benar. Ini termasuk peristiwa yang dicatat secara otomatis dan manual.

Anda dapat mengaktifkan pencatatan verbose dengan serangkaian perintah adb:

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

Perintah ini menampilkan acara Anda di logcat Android Studio, membantu Anda segera memverifikasi bahwa acara sedang dikirim.

Lihat acara analitik di dasbor

Anda dapat melihat statistik gabungan tentang Peristiwa Analytics Anda di dasbor konsol Firebase. Dasbor ini diperbarui secara berkala sepanjang hari. Untuk pengujian langsung, gunakan output logcat seperti yang dijelaskan di bagian sebelumnya.

Untuk mengakses data ini di Firebase console:

  1. Di Firebase console , buka proyek Anda.
  2. Pilih Analytics dari menu untuk melihat dasbor pelaporan Analytics.

Tab Peristiwa menunjukkan laporan peristiwa yang dibuat secara otomatis untuk setiap jenis Peristiwa Analytics yang berbeda yang dicatat oleh aplikasi Anda. Baca selengkapnya tentang dasbor pelaporan Analytics di Pusat Bantuan Firebase.