Etkinlikleri günlüğe kaydetme

Etkinlikler, uygulamanızda neler olduğuna dair bilgi sağlar (ör. kullanıcı işlemleri, sistem etkinliklerini veya hataları içerir.

Google Analytics bazı verileri otomatik olarak günlüğe kaydeder size özel etkinlikler; bunları almak için herhangi bir kod eklemeniz gerekmez. Uygulamanızın ek verileri kullanarak 500 farklı Analytics etkinliği türünü kaydedebilirsiniz. dokunun. 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ı açısından farklılık gösterir.

Başlamadan önce

Projenizi oluşturduğunuzdan ve Analytics'e şurada açıklandığı: C++ İçin Analytics'i Kullanmaya Başlama.

Etkinlikleri günlüğe kaydetme

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

Analytics SDK'sı başlamanıza yardımcı olmak için bir dizi Farklı uygulama türlerinde yaygın olan önerilen etkinlikler perakende ve e-ticaret, seyahat ve oyun uygulamaları. Bu etkinlikler hakkında daha fazla bilgi edinmek için Etkinlikler ve özelliklere göz atarak bunların ne zaman kullanılacağını öğrenin makalelerine göz atın.

Önerilen etkinliklerle ilgili uygulama ayrıntılarını aşağıda bulabilirsiniz: yerler:

  • Ö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 Etkinlik:

  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, aşağıdaki parametreleri de ekleyebilirsiniz kullanabilirsiniz:

  • Özel parametreler: Özel parametreler doğrudan ancak bunlar dışında filtre olarak da kullanılabilir Her rapora uygulanabilecek kitle tanımları. Özel BigQuery'ye aktarılan verilere de dahil edilir. uygulamanızın bir BigQuery projesine bağlı olduğundan emin olun.

  • VALUE Parametresi: VALUE genel amaçlı bir parametre Belirli bir konuyla ilgili temel metrikleri toplamak için Analytics Etkinliği. Örneğin gelir, mesafe, zaman ve puan.

Uygulamanızın, önerilen bir listede yer almayan belirli ihtiyaçları varsa Kendi özel Analytics Etkinliklerinizi günlüğe kaydedebilirsiniz. aşağıdaki örnekte gösterildiği gibi:

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

SDK tarafından etkinliklerin günlüğe kaydedilmesine yardımcı olmak amacıyla ayrıntılı günlük kaydını etkinleştirebilirsiniz. etkinliklerin düzgün şekilde günlüğe kaydedildiğini doğrulayın. Bu, hem otomatik hem de ve manuel olarak günlüğe kaydedilen etkinlikler.

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ğrular.

Analiz etkinliklerini kontrol panelinde görüntüleme

Analytics etkinliklerinizle ilgili toplu istatistikleri Google Ads'de Firebase konsolu kontrol panelleri. Bu kontrol panelleri düzenli aralıklarla güncellenir Gün boyu. Anında test için logcat çıkışını aşağıda açıklandığı şekilde kullanın geri dönüp bakarsınız.

Firebase konsolunda bu verilere erişmek için:

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

Etkinlikler sekmesinde, şurada belirlenmiş etkinlik raporları gösterilir: tarafından günlüğe kaydedilen her farklı Analytics etkinliği türü için otomatik olarak oluşturulur. en iyi şekilde yararlanabilirsiniz. Kontrol paneli hakkında daha fazla bilgi edinin.