ऐडवांस कॉन्फ़िगरेशन

इस दस्तावेज़ में Android के लिए Google Analytics SDK v4 की कुछ बेहतर कॉन्फ़िगरेशन सुविधाओं की खास जानकारी दी गई है.

खास जानकारी

Android के लिए Google Analytics SDK v4 में, डेटा को सेट करने और Google Analytics को भेजने के लिए Tracker क्लास मिलती है. साथ ही, GoogleAnalytics सिंगलटन क्लास की सुविधा मिलती है, जो लागू करने की आपकी प्रोसेस की ग्लोबल कॉन्फ़िगरेशन वैल्यू के लिए इंटरफ़ेस के तौर पर काम करती है.

डेटा लेयर में इवेंट बनाने की प्रोसेस

किसी भी डेटा को मेज़र करने से पहले, आपको GoogleAnalytics सिंगलटन से कम से कम एक ट्रैकर शुरू करना होगा. इसके लिए, आपको Context ऑब्जेक्ट और Google Analytics प्रॉपर्टी आईडी देना होगा. ज़्यादा जानकारी के लिए, Google Analytics का रेफ़रंस देखें.

कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करना

कॉन्फ़िगरेशन फ़ाइल का इस्तेमाल करके भी ट्रैकर शुरू किया जा सकता है. उदाहरण के लिए:

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

डेटा सेट करना और भेजना

Google Analytics को डेटा, बिल्डर की मदद से भेजा जाता है, ताकि पैरामीटर-वैल्यू पेयर को ट्रैकर send तरीके की मदद से भेजा जा सके.

नीचे दिए गए उदाहरण में, ऐप्लिकेशन व्यू बनाकर और ट्रैकर से भेजने के तरीके को कॉल करके, 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 को भेजे जाने वाले हिट की संख्या को सीमित करने के लिए, क्लाइंट-साइड सैंपलिंग चालू की जा सकती है. अगर आपके ऐप्लिकेशन में बहुत ज़्यादा उपयोगकर्ता हैं या 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");

IP की पहचान छिपाएं

आईपी पते की पहचान छिपाने की सुविधा चालू करने पर, Google Analytics को यह पता चलता है कि वह SDK टूल की भेजी गई आईपी जानकारी को छिपाता है. इसके लिए, वह स्टोरेज से पहले आईपी पते की आखिरी ऑक्टेट को हटा देता है.

आईपी पते की पहचान छिपाने की सुविधा चालू करने के लिए, अपनी कॉन्फ़िगरेशन फ़ाइल में यह पैरामीटर इस्तेमाल करें:

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

किसी ट्रैकर के लिए, पहचान की पुष्टि करने वाले आईपी की सुविधा को प्रोग्राम के हिसाब से चालू करने के लिए, setAnonymizeIp तरीका इस्तेमाल करें:

mTracker.setAnonymizeIp(true)

setAnonymizeIp तरीके को किसी भी समय कॉल किया जा सकता है.

जांच और डीबग करना

Android के लिए Google Analytics SDK v4 में, ऐसे टूल मिलते हैं जिनसे टेस्टिंग और डीबग करना आसान हो जाता है.

ड्राई रन

SDK टूल एक dryRun फ़्लैग देता है, जिसे सेट करने पर यह किसी भी डेटा को Google Analytics में भेजे जाने से रोकता है. जब भी आप किसी लागू करने की प्रोसेस की जांच कर रहे हों या उसे डीबग कर रहे हों, तब आपको dryRun फ़्लैग सेट करना चाहिए. साथ ही, अपनी Google Analytics रिपोर्ट में टेस्ट डेटा नहीं दिखाना चाहिए.

ड्राई रन फ़्लैग सेट करने के लिए:

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

लॉगर

Google Analytics, Android Log सिस्टम का इस्तेमाल करके, GAv4 टैग में Logcat लॉग करेगा. डिफ़ॉल्ट रूप से, सिर्फ़ गड़बड़ी, चेतावनी, और जानकारी के लेवल चालू होते हैं. DEBUG लेवल को चालू करने के लिए, अपने डिवाइस या एम्युलेटर पर इस adb कमांड को चलाएं:

adb shell setprop log.tag.GAv4 DEBUG

Logcat से सिर्फ़ Google Analytics के मैसेज देखने के लिए, इस कमांड का इस्तेमाल करें:

adb logcat -v time -s GAv4

ज़्यादा जानकारी के लिए, Google Analytics लॉगर रेफ़रंस देखें.