เหตุการณ์ในบันทึก

เหตุการณ์ช่วยให้คุณมีข้อมูลเชิงลึกเกี่ยวกับสิ่งที่เกิดขึ้นภายในแอปของคุณ เช่น ผู้ใช้ การดำเนินการ เหตุการณ์ของระบบ หรือข้อผิดพลาด

Google Analytics จะบันทึก กิจกรรมให้คุณ คุณไม่จำเป็นต้องเพิ่มรหัสใดๆ เพื่อรับ หากแอปจำเป็นต้องรวบรวม ข้อมูลเพิ่มเติม คุณสามารถบันทึกเหตุการณ์ Analytics ได้มากถึง 500 ประเภท ในแอปของคุณ ไม่มีการจํากัดปริมาณเหตุการณ์ทั้งหมดที่แอปของคุณบันทึก โปรดทราบว่าชื่อเหตุการณ์จะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และจะบันทึก 2 เหตุการณ์ที่ระบุ ชื่อต่างกันตรงที่ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่จะทำให้เกิดเหตุการณ์ที่ต่างกัน 2 เหตุการณ์

ก่อนเริ่มต้น

ตรวจสอบว่าคุณได้สร้างโปรเจ็กต์และสามารถเข้าถึง Analytics เป็น อธิบายไว้ใน เริ่มต้นใช้งาน Analytics สำหรับ C++

เหตุการณ์ในบันทึก

หลังจากเริ่มต้นโมดูล firebase::analytics แล้ว คุณจะใช้โมดูลดังกล่าวเพื่อบันทึกได้ ด้วยเมธอด LogEvent()

เพื่อช่วยคุณในการเริ่มต้น Analytics SDK จะกำหนดจำนวน เหตุการณ์แนะนำที่พบได้ทั่วไปในแอปประเภทต่างๆ เช่น แอปค้าปลีกและอีคอมเมิร์ซ แอปการเดินทาง และเกม ดูข้อมูลเพิ่มเติมเกี่ยวกับเหตุการณ์เหล่านี้ และกรณีที่ควรใช้ ให้เรียกดูเหตุการณ์และพร็อพเพอร์ตี้ บทความในศูนย์ช่วยเหลือ Firebase

ดูรายละเอียดการใช้งานสําหรับเหตุการณ์ที่แนะนําได้ใน สถานที่ตั้ง:

  • เหตุการณ์ที่แนะนำ: ดูรายการค่าคงที่ Event
  • พารามิเตอร์ที่กําหนดไว้: ดูรายการค่าคงที่ Parameters

ตัวอย่างต่อไปนี้แสดงวิธีบันทึก SELECT_CONTENT เหตุการณ์:

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

นอกจากพารามิเตอร์ที่กำหนดแล้ว คุณยังเพิ่มพารามิเตอร์ต่อไปนี้ได้ด้วย ในกิจกรรมใดก็ได้

  • พารามิเตอร์ที่กำหนดเอง: พารามิเตอร์ที่กำหนดเองไม่ได้แสดงโดยตรงใน รายงาน Analytics แต่สามารถนำมาใช้เป็นตัวกรองใน คำจำกัดความของกลุ่มเป้าหมายที่นำไปใช้กับทุกรายงานได้ กำหนดเอง จะรวมอยู่ในข้อมูลที่ส่งออกไปยัง BigQuery ด้วย หาก ลิงก์แอปกับโปรเจ็กต์ BigQuery แล้ว

  • VALUE พารามิเตอร์: VALUE เป็นพารามิเตอร์สำหรับจุดประสงค์ทั่วไป ซึ่งมีประโยชน์ในการสะสมเมตริกหลักที่เกี่ยวข้องกับ เหตุการณ์ Analytics เช่น รายได้ ระยะทาง เวลา และคะแนน

หากแอปพลิเคชันของคุณมีความต้องการเฉพาะที่ไม่รวมอยู่ในคำแนะนำ ประเภทเหตุการณ์ Analytics คุณสามารถบันทึกเหตุการณ์ Analytics ที่กำหนดเอง ดังที่แสดงในตัวอย่างนี้

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

คุณสามารถเปิดใช้การบันทึกที่มีข้อมูลขนาดใหญ่เพื่อตรวจสอบการบันทึกเหตุการณ์โดย SDK เพื่อช่วย ตรวจสอบว่ามีการบันทึกเหตุการณ์อย่างถูกต้อง ซึ่งรวมทั้งแบบอัตโนมัติ และเหตุการณ์ที่บันทึกด้วยตนเอง

คุณสามารถเปิดใช้การบันทึกแบบละเอียดด้วยชุดคำสั่ง adb ดังนี้

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

คำสั่งนี้จะแสดงกิจกรรมใน Logcat ของ Android Studio ซึ่งจะช่วยคุณ ตรวจสอบได้ในทันทีว่ามีการส่งเหตุการณ์

ดูเหตุการณ์ Analytics ในหน้าแดชบอร์ด

คุณดูสถิติรวมเกี่ยวกับเหตุการณ์ Analytics ได้ใน แดชบอร์ดคอนโซล Firebase หน้าแดชบอร์ดเหล่านี้จะอัปเดตเป็นระยะ ตลอดทั้งวัน สำหรับการทดสอบทันที ให้ใช้เอาต์พุต Logcat ตามที่อธิบายไว้ใน ส่วนก่อนหน้า

วิธีเข้าถึงข้อมูลนี้ในคอนโซล Firebase

  1. เปิดโปรเจ็กต์ในคอนโซล Firebase
  2. เลือก Analytics จากเมนูเพื่อดู แดชบอร์ดการรายงาน

แท็บเหตุการณ์จะแสดงรายงานเหตุการณ์ที่ สร้างขึ้นโดยอัตโนมัติสําหรับเหตุการณ์ Analytics แต่ละประเภทซึ่งบันทึกโดย แอปของคุณ อ่านเพิ่มเติมเกี่ยวกับแดชบอร์ด