লগ ইভেন্ট

প্ল্যাটফর্ম নির্বাচন করুন: iOS+ অ্যান্ড্রয়েড ওয়েব ফ্লাটার ইউনিটি C++

ইভেন্টগুলো আপনার অ্যাপে কী ঘটছে, যেমন ব্যবহারকারীর কার্যকলাপ, সিস্টেম ইভেন্ট বা ত্রুটি, সে সম্পর্কে ধারণা দেয়।

Google Analytics স্বয়ংক্রিয়ভাবে আপনার জন্য কিছু ইভেন্ট লগ করে; সেগুলি পাওয়ার জন্য আপনাকে কোনো কোড যোগ করতে হবে না। যদি আপনার অ্যাপের অতিরিক্ত ডেটা সংগ্রহের প্রয়োজন হয়, তবে আপনি আপনার অ্যাপে ৫০০টি পর্যন্ত বিভিন্ন ধরনের Analytics ইভেন্ট লগ করতে পারেন। আপনার অ্যাপ মোট যতগুলো ইভেন্ট লগ করবে, তার কোনো সীমা নেই। মনে রাখবেন যে ইভেন্টের নামগুলো কেস-সেনসিটিভ (বড় হাতের অক্ষরের চেয়ে বড় বা ছোট হাতের অক্ষরের) হয় এবং শুধুমাত্র নামের বড় বা ছোট অক্ষরের পার্থক্যের কারণে দুটি ইভেন্ট লগ করলে তা দুটি স্বতন্ত্র ইভেন্ট হিসেবে গণ্য হবে।

শুরু করার আগে

নিশ্চিত করুন যে আপনি আপনার প্রজেক্ট সেট আপ করেছেন এবং "Get Started with Analytics for C++" এ বর্ণিত পদ্ধতি অনুযায়ী Analytics অ্যাক্সেস করতে পারছেন।

লগ ইভেন্ট

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

অ্যান্ড্রয়েড স্টুডিও ডিবাগ লগে ইভেন্টগুলি দেখুন

ইভেন্টগুলো সঠিকভাবে লগ হচ্ছে কিনা তা যাচাই করতে, আপনি এসডিকে দ্বারা ইভেন্ট লগিং নিরীক্ষণের জন্য ভার্বোস লগিং সক্রিয় করতে পারেন। এর মধ্যে স্বয়ংক্রিয়ভাবে এবং ম্যানুয়ালি লগ করা উভয় ধরনের ইভেন্টই অন্তর্ভুক্ত।

আপনি কয়েকটি adb কমান্ডের মাধ্যমে বিস্তারিত লগিং চালু করতে পারেন:

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

এই কমান্ডটি অ্যান্ড্রয়েড স্টুডিও লগক্যাটে আপনার ইভেন্টগুলো প্রদর্শন করে, যা আপনাকে ইভেন্ট পাঠানো হচ্ছে কিনা তা তাৎক্ষণিকভাবে যাচাই করতে সাহায্য করে।

ড্যাশবোর্ডে অ্যানালিটিক্স ইভেন্টগুলো দেখুন

আপনি Firebase কনসোল ড্যাশবোর্ডগুলিতে আপনার Analytics ইভেন্টগুলির সমষ্টিগত পরিসংখ্যান দেখতে পারেন। এই ড্যাশবোর্ডগুলি দিনভর পর্যায়ক্রমে আপডেট হয়। তাৎক্ষণিক পরীক্ষার জন্য, পূর্ববর্তী বিভাগে বর্ণিত logcat আউটপুট ব্যবহার করুন।

Firebase কনসোলে এই ডেটা অ্যাক্সেস করতে:

  1. Firebase কনসোলে আপনার প্রজেক্টটি খুলুন।
  2. Analytics রিপোর্টিং ড্যাশবোর্ডটি দেখতে মেনু থেকে Analytics নির্বাচন করুন।

ইভেন্টস ট্যাবে আপনার অ্যাপ দ্বারা লগ করা প্রতিটি স্বতন্ত্র ধরনের Analytics ইভেন্টের জন্য স্বয়ংক্রিয়ভাবে তৈরি হওয়া ইভেন্ট রিপোর্টগুলো দেখানো হয়। ড্যাশবোর্ড সম্পর্কে আরও পড়ুন।