Etkinlikleri günlüğe kaydetme

Etkinlikler; kullanıcı işlemleri, sistem etkinlikleri veya hatalar gibi uygulamanızda neler olduğuna dair bilgi sağlar.

Google Analytics bazı etkinlikleri sizin için otomatik olarak günlüğe kaydeder; bunları almak için herhangi bir kod eklemeniz gerekmez. Uygulamanızın ek veri toplaması gerekiyorsa uygulamanıza 500 farklı Analytics etkinlik türünü kaydedebilirsiniz. Uygulamanızın günlüğe kaydettiği toplam etkinlik hacmiyle ilgili bir sınır yoktur. Etkinlik adlarının büyük/küçük harfe duyarlı olduğunu ve adları yalnızca büyük/küçük harf kullanımında farklı olan iki etkinliğin günlüğe iki farklı etkinlikle sonuçlandığını unutmayın.

Başlamadan önce

Projenizi oluşturduğunuzdan ve C++ İçin Analytics'i Kullanmaya Başlama bölümünde açıklandığı şekilde Analytics'e erişebildiğinizden emin olun.

Etkinlikleri günlüğe kaydetme

firebase::analytics modülünü başlattıktan sonra LogEvent() yöntemiyle etkinlikleri günlüğe kaydetmek için kullanabilirsiniz.

Analytics SDK'sı, başlamanıza yardımcı olmak için perakende ve e-ticaret, seyahat ve oyun uygulamaları da dahil olmak üzere farklı uygulama türlerinde yaygın olan bir dizi önerilen etkinliği tanımlar. Bu etkinlikler ve bunların ne zaman kullanılacağı hakkında daha fazla bilgi edinmek için Firebase Yardım Merkezi'ndeki Etkinlikler ve özellikler makalelerine göz atın.

Önerilen etkinliklerin uygulama ayrıntılarını aşağıdaki konumlarda bulabilirsiniz:

  • Önerilen etkinlikler: Event sabit değerlerinin listesini inceleyin.
  • Belirlenen parametreler: Parameters sabit değerlerinin listesine bakın.

Aşağıdaki örnekte, önerilen bir SELECT_CONTENT etkinliğinin nasıl günlüğe kaydedileceği gösterilmektedir:

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

Öngörülen parametrelere ek olarak, herhangi bir etkinliğe aşağıdaki parametreleri de ekleyebilirsiniz:

  • Özel parametreler: Özel parametreler doğrudan Analytics raporlarınızda temsil edilmez, ancak her rapora uygulanabilecek Kitle tanımlarında filtre olarak kullanılabilir. Uygulamanız bir BigQuery projesine bağlıysa özel parametreler BigQuery'ye aktarılan verilere de dahil edilir.

  • VALUE Parametresi: VALUE, bir Analytics etkinliğiyle ilgili temel metrikleri toplamak için faydalı olan genel amaçlı bir parametredir. Örneğin gelir, mesafe, zaman ve puan.

Uygulamanızın önerilen bir Analytics etkinliği türünün kapsamında olmayan belirli ihtiyaçları varsa aşağıdaki örnekte gösterildiği gibi kendi özel Analytics Etkinliklerinizi kaydedebilirsiniz:

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

Android Studio hata ayıklama günlüğündeki etkinlikleri görüntüle

Etkinliklerin SDK tarafından günlüğe kaydedildiğini izlemek amacıyla, etkinliklerin düzgün şekilde günlüğe kaydedildiğini doğrulamaya yardımcı olması için ayrıntılı günlük kaydını etkinleştirebilirsiniz. Buna hem otomatik hem de manuel olarak kaydedilen etkinlikler dahildir.

Ayrıntılı günlük kaydını bir dizi adb komutuyla etkinleştirebilirsiniz:

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

Bu komut, etkinliklerinizi Android Studio logcat'te görüntüleyerek etkinliklerin gönderildiğini hemen doğrulamanıza yardımcı olur.

Analiz etkinliklerini kontrol panelinde görüntüleme

Analytics etkinliklerinizle ilgili toplu istatistikleri Firebase konsolu kontrol panellerinde görüntüleyebilirsiniz. Bu kontrol panelleri gün boyunca düzenli aralıklarla güncellenir. Anında test için önceki bölümde açıklandığı şekilde logcat çıkışını kullanın.

Firebase konsolunda bu verilere erişmek için:

  1. Firebase konsolunda projenizi açın.
  2. Analytics raporlama kontrol panelini görüntülemek için menüden Analytics'i seçin.

Etkinlikler sekmesi, uygulamanız tarafından günlüğe kaydedilen her bir Analytics etkinlik türü için otomatik olarak oluşturulan etkinlik raporlarını gösterir. Kontrol paneli ile ilgili daha fazla bilgi edinin.