উন্নত কনফিগারেশন

এই নথিটি Android-এর জন্য Google Analytics SDK v4-এর কিছু উন্নত কনফিগারেশন বৈশিষ্ট্যগুলির একটি ওভারভিউ প্রদান করে৷

ওভারভিউ

অ্যান্ড্রয়েডের জন্য Google Analytics SDK v4 Google Analytics-এ ডেটা সেট এবং পাঠাতে একটি Tracker ক্লাস এবং একটি GoogleAnalytics সিঙ্গেলটন প্রদান করে যা আপনার বাস্তবায়নের বৈশ্বিক কনফিগারেশন মানগুলির একটি ইন্টারফেস হিসাবে কাজ করে।

আরম্ভ

কোনও ডেটা পরিমাপ করার আগে, আপনাকে অবশ্যই একটি Context বস্তু এবং একটি Google Analytics সম্পত্তি আইডি প্রদান করে GoogleAnalytics সিঙ্গলটনের মাধ্যমে কমপক্ষে একটি ট্র্যাকার শুরু করতে হবে। বিস্তারিত জানার জন্য, GoogleAnalytics রেফারেন্স দেখুন।

একটি কনফিগারেশন ফাইল ব্যবহার করে

কনফিগারেশন ফাইল ব্যবহার করে একটি ট্র্যাকার শুরু করাও সম্ভব। উদাহরণ স্বরূপ:

package com.google.android.apps.mobileplayground;

import android.app.Application;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;

/**
 * An extension to Application class to provide tracker for analytics purposes. Having the tracker
 * instances here allows all the activities to access the same tracker instances. The trackers can
 * be initialised on startup or when they are required based on performance requirements.
 */
public class AnalyticsSampleApp extends Application {

  // The following line should be changed to include the correct property id.
  private static final String PROPERTY_ID = "UA-XXXXX-Y";

  /**
   * Enum used to identify the tracker that needs to be used for tracking.
   *
   * A single tracker is usually enough for most purposes. In case you do need multiple trackers,
   * storing them all in Application object helps ensure that they are created only once per
   * application instance.
   */
  public enum TrackerName {
    APP_TRACKER, // Tracker used only in this app.
    GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
    ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
  }

  HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

  public AnalyticsSampleApp() {
    super();
  }
  synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
          : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
              : analytics.newTracker(R.xml.ecommerce_tracker);
      mTrackers.put(trackerId, t);

    }
    return mTrackers.get(trackerId);
  }
}

সেটিং এবং ডেটা পাঠানো

ট্র্যাকার send পদ্ধতির মাধ্যমে পাঠানো প্যারামিটার-মান জোড়া সেট করতে নির্মাতাদের ব্যবহার করে Google Analytics-এ ডেটা পাঠানো হয়।

একটি অ্যাপ ভিউ তৈরি করে এবং ট্র্যাকার পাঠানোর পদ্ধতিতে কল করে কীভাবে Google Analytics-এ একটি স্ক্রিন ভিউ পাঠাতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// Send a screen view.
t.send(new HitBuilders.ScreenViewBuilder().build());

পরিমাপ প্রোটোকল অ্যাম্পারস্যান্ড সিনট্যাক্স

আপনি HitBuilders.ScreenViewBuilder এর সাথে একটি একক হিটের মান সেট করতে পরিমাপ প্রোটোকল অ্যাম্পারস্যান্ড সিনট্যাক্স ব্যবহার করতে পারেন। পরবর্তী সমস্ত হিটের মান সেট করতে, ট্র্যাকার অবজেক্টটি ব্যবহার করুন।

// Setting the content description field on a single hit using ampersand syntax.
tracker.send(new HitBuilders.ScreenViewBuilder()
  .set("&cd", "Home Screen")
  .build()
);

উপলব্ধ পরিমাপ প্রোটোকল পরামিতিগুলির সম্পূর্ণ তালিকার জন্য, পরিমাপ প্রোটোকল পরামিতি রেফারেন্স দেখুন।

একাধিক হিট মান প্রয়োগ

ট্র্যাকারে সরাসরি সেট করা যেকোনো মান বজায় থাকবে এবং একাধিক হিটগুলিতে প্রয়োগ করা হবে, যেমন এই উদাহরণে:

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// Send a screen view.
t.send(new HitBuilders.ScreenViewBuilder().build());

// This event will also be sent with the most recently set screen name.
// Build and send an Event.
t.send(new HitBuilders.EventBuilder()
    .setCategory(getString(categoryId))
    .setAction(getString(actionId))
    .setLabel(getString(labelId))
    .build());

// Clear the screen name field when we're done.
t.setScreenName(null);

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

একাধিক ট্র্যাকার ব্যবহার করা

আপনার মোবাইল অ্যাপ্লিকেশনে, আপনি বিভিন্ন বৈশিষ্ট্যে ডেটা পাঠাতে একাধিক ট্র্যাকার ব্যবহার করতে পারেন:


public class MyApp extends Application {

  public void initTrackers() {
    GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

    globalTracker = analytics.newTracker(R.xml.global_tracker);
    ecommerceTracker = analytics.newTracker(R.xml.ecommerce_tracker);
  }

  public static Tracker globalTracker;
  public static Tracker ecommerceTracker;

  ...
}

যদিও আপনার মোবাইল অ্যাপ্লিকেশানে একাধিক ট্র্যাকার থাকতে পারে, আপনি ট্র্যাকারে enableExceptionReporting() পদ্ধতিতে কল করে ধরা পড়া ব্যতিক্রমগুলি রিপোর্ট করতে শুধুমাত্র একটি ট্র্যাকার ব্যবহার করতে পারেন৷

স্যাম্পলিং

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

উদাহরণস্বরূপ, 50% হারে ক্লায়েন্ট-সাইড স্যাম্পলিং সক্ষম করতে, আপনার কনফিগারেশন ফাইলে নিম্নলিখিত প্যারামিটারটি ব্যবহার করুন:

<string name="ga_sampleFrequency">50.0</string>

একটি ট্র্যাকারের জন্য প্রোগ্রাম্যাটিকভাবে ক্লায়েন্ট-সাইড স্যাম্পলিং সক্ষম করতে:

mTracker.setSampleRate(50.0d);

অ্যাপ-স্তরের অপ্ট আউট

আপনি একটি অ্যাপ-লেভেল অপ্ট আউট পতাকা সক্ষম করতে পারেন যা সমগ্র অ্যাপ জুড়ে Google Analytics অক্ষম করবে। মনে রাখবেন যে প্রতিবার অ্যাপটি শুরু হওয়ার সময় এই পতাকাটি অবশ্যই সেট করতে হবে এবং ডিফল্টে false হবে।

অ্যাপ-স্তরের অপ্ট আউট সেটিং পেতে, ব্যবহার করুন:

boolean isOptedOut = GoogleAnalytics.getInstance(this).getAppOptOut();

অ্যাপ-লেভেল অপ্ট আউট সেট করতে, ব্যবহার করুন:

GoogleAnalytics.getInstance(this).setAppOptOut(true);

একটি সাধারণ বাস্তবায়নে, একটি অ্যাপ SharedPreferences এ পরিবর্তনের জন্য শুনতে পারে এবং সেই অনুযায়ী Google Analytics অপ্ট-আউট সেটিং আপডেট করতে পারে:

SharedPreferences userPrefs = PreferenceManager.getDefaultSharedPreferences(this);

userPrefs.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener () {

  @Override
  public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
    if (key.equals(TRACKING_PREF_KEY)) {
      GoogleAnalytics.getInstance(getApplicationContext()).setAppOptOut(sharedPreferences.getBoolean(key, false));
    } else {
      // Any additional changed preference handling.
    }
  }
});

ক্লায়েন্ট-সাইড ব্যবহারকারী ডেটা মুছুন

আপনি যদি আপনার শেষ ব্যবহারকারীদের জন্য Google Analytics ক্লায়েন্ট-সাইড ডেটা রিসেট বা মুছতে চান তবে আপনি ক্লায়েন্ট আইডি ফাইলটি মুছে ফেলতে পারেন।

gaClientId ফাইলটি মুছে ফেললে একটি নতুন ক্লায়েন্ট আইডি তৈরি করতে বাধ্য হবে এবং পরবর্তী সমস্ত হিট নতুন ক্লায়েন্ট আইডি ব্যবহার করবে৷ আগের ডেটা নতুন ক্লায়েন্ট আইডির সাথে যুক্ত হবে না।

gaClientId ফাইলটি মুছতে Context.deleteFile পদ্ধতি ব্যবহার করুন:

context.deleteFile("gaClientId");

বেনামী আইপি

বেনামী আইপি কার্যকারিতা সক্ষম করা Google অ্যানালিটিক্সকে SDK দ্বারা পাঠানো আইপি তথ্যকে বেনামী করতে বলে আইপি ঠিকানার শেষ অক্টেটটি সঞ্চয়স্থানের আগে সরিয়ে দিয়ে।

বেনামী আইপি কার্যকারিতা সক্ষম করতে, আপনার কনফিগারেশন ফাইলে নিম্নলিখিত প্যারামিটারটি ব্যবহার করুন:

<string name="ga_anonymizeIp">true</string>

একটি ট্র্যাকারের জন্য প্রোগ্রাম্যাটিকভাবে বেনামী আইপি কার্যকারিতা সক্ষম করতে setAnonymizeIp পদ্ধতি ব্যবহার করুন:

mTracker.setAnonymizeIp(true)

setAnonymizeIp পদ্ধতি যে কোনো সময় কল করা যেতে পারে।

পরীক্ষা এবং ডিবাগিং

অ্যান্ড্রয়েডের জন্য Google Analytics SDK v4 পরীক্ষা এবং ডিবাগিং সহজ করার জন্য সরঞ্জাম সরবরাহ করে।

ড্রাই রান

SDK একটি dryRun ফ্ল্যাগ প্রদান করে যেটি সেট করা হলে, Google Analytics-এ কোনো ডেটা পাঠানো থেকে বাধা দেয়। আপনি যখনই কোনো বাস্তবায়ন পরীক্ষা বা ডিবাগ করছেন তখনই dryRun ফ্ল্যাগ সেট করা উচিত এবং আপনার Google অ্যানালিটিক্স রিপোর্টে পরীক্ষার ডেটা উপস্থিত হতে চান না।

ড্রাই রান পতাকা সেট করতে:

// When dry run is set, hits will not be dispatched, but will still be logged as
// though they were dispatched.
GoogleAnalytics.getInstance(this).setDryRun(true);

লগার

গুগল অ্যানালিটিক্স অ্যান্ড্রয়েড Log সিস্টেম ব্যবহার করে GAv4 ট্যাগের অধীনে logcat এ লগ করবে। ডিফল্টরূপে শুধুমাত্র ERROR, WARN এবং INFO লেভেল সক্রিয় করা আছে। DEBUG স্তর সক্ষম করতে আপনার ডিভাইস বা এমুলেটরে নিম্নলিখিত adb কমান্ডটি চালান:

adb shell setprop log.tag.GAv4 DEBUG

logcat থেকে শুধুমাত্র Google Analytics বার্তাগুলি দেখতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

adb logcat -v time -s GAv4

আরও তথ্যের জন্য, GoogleAnalytics লগার রেফারেন্স দেখুন।