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

Olayları günlüğe kaydet

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Olaylar, kullanıcı eylemleri, sistem olayları veya hatalar gibi uygulamanızda neler olup bittiği hakkında bilgi sağlar.

Google Analytics sizin için bazı olayları 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'e kadar farklı Analytics olay türü kaydedebilirsiniz. Uygulamanızın günlüğe kaydettiği olayların toplam hacminde bir sınır yoktur. Olay adlarının büyük/küçük harf duyarlı olduğunu ve adları yalnızca büyük/küçük harf farkı olan iki olayın günlüğe kaydedilmesinin iki farklı olayla sonuçlanacağını unutmayın.

Sen başlamadan önce

Projenizi kurduğunuzdan ve C++ için Analytics'e Başlarken bölümünde açıklandığı gibi Analytics'e erişebildiğinizden emin olun.

Olayları günlüğe kaydet

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

Başlamanıza yardımcı olmak için Analytics SDK, perakende ve e-ticaret, seyahat ve oyun uygulamaları dahil olmak üzere farklı uygulama türleri arasında 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 etkinlik türleri için uygulama ayrıntılarını aşağıdaki konumlarda bulabilirsiniz:

  • Önerilen olaylar: Event sabitlerinin listesine bakın.
  • Öngörülen parametreler: Parameters sabitleri listesine bakın.

Aşağıdaki örnek, önerilen bir SELECT_CONTENT nasıl günlüğe kaydedileceğini gösterir:

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

Belirtilen parametrelere ek olarak, herhangi bir olaya aşağıdaki parametreleri ekleyebilirsiniz:

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

  • VALUE Parametresi: VALUE , bir Analytics Etkinliği ile ilgili bir temel metriği toplamak için yararlı olan genel amaçlı bir parametredir. Örnekler gelir, mesafe, zaman ve puanları içerir.

Uygulamanızın önerilen bir Analytics Etkinliği türü tarafından kapsanmayan belirli ihtiyaçları varsa, bu ö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 olayları görüntüleyin

Olayların düzgün bir şekilde günlüğe kaydedildiğini doğrulamaya yardımcı olmak için olayların SDK tarafından günlüğe kaydedilmesini izlemek için ayrıntılı günlüğe kaydetmeyi etkinleştirebilirsiniz. Bu, hem otomatik hem de manuel olarak günlüğe kaydedilen olayları içerir.

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

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

Bu komut, olaylarınızı Android Studio logcat'te görüntüler ve olayların gönderildiğini hemen doğrulamanıza yardımcı olur.

Analitik olaylarını gösterge tablosunda görüntüleyin

Firebase konsol gösterge tablolarında Analytics Etkinliklerinizle ilgili toplu istatistikleri görüntüleyebilirsiniz. Bu panolar gün boyunca periyodik olarak güncellenir. Anında test için önceki bölümde açıklandığı gibi logcat çıktısını kullanın.

Firebase konsolunda bu verilere erişmek için:

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

Etkinlikler sekmesi, uygulamanız tarafından günlüğe kaydedilen her farklı Analytics Etkinliği türü için otomatik olarak oluşturulan etkinlik raporlarını gösterir. Firebase Yardım Merkezi'nde Analytics raporlama panosu hakkında daha fazla bilgi edinin.