הגדרה מתקדמת – Android SDK v2 (מדור קודם)

במסמך הזה מפורטות כמה מתכונות ההגדרה המתקדמות של Google Analytics SDK ל-Android v2.

סקירה

ב-Google Analytics SDK ל-Android נעשה שימוש בשני סיווגים כדי לנהל את המצב הגלובלי של ההטמעה ולשלוח נתונים לשרתים של Google Analytics. ניתן למצוא את כל המחלקות האלה ב-Easytracker כדי לספק תצורה וניהול סשנים פשוטים יותר:

  • GoogleAnalytics – סינגלטון שמטפל במצב הגלובלי של ההטמעה, כולל קבלת אובייקטים של Tracker.
  • Tracker – הכיתה שבאמצעותה שולחים נתונים אל Google Analytics.

לדוגמה, כדי למדוד תצוגה של Activity פשוט:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private Tracker mGaTracker;
  private GoogleAnalytics mGaInstance;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton. Note that the SDK uses
    // the application context to avoid leaking the current context.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get a Tracker.
    mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID.
    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view when the Activity is displayed to the user.
    mGaTracker.sendView("/HomeScreen");
  }
}

שימוש במספר כלי מעקב

החל מגרסה 2 של ה-SDK, ניתן להשתמש בכמה כלי מעקב בהטמעה אחת, אחד לכל מזהה מעקב ייחודי. כל מכשירי המעקב חולקים את אותה מצב גלובלי, של הסינגלטון של GoogleAnalytics.

בדוגמה הבאה, צפייה במסך נשלחת לשני נכסים נפרדים באמצעות שני כלי מעקב, שלכל אחד מהם יש מזהה נכס ייחודי משלו:

import android.app.Activity

import com.google.analytics.tracking.android.GoogleAnalytics
import com.google.analytics.tracking.android.Tracker

/**
 * A simple Activity that sends a screen view to Google Analytics
 * when it is displayed to the user.
 */
public class HomeScreen extends Activity {

  private GoogleAnalytics mGaInstance;
  private Tracker mGaTracker1;
  private Tracker mGaTracker2;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Get the GoogleAnalytics singleton.
    mGaInstance = GoogleAnalytics.getInstance(this);

    // Use the GoogleAnalytics singleton to get two Trackers with
    // unique property IDs.
    mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y");
    mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z");

    ... // The rest of your onCreate() code.
  }

  @Override
  public void onStart() {
    super.onStart();

    // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user.
    mGaTracker1.sendView("/HomeScreen");

    // Send another screen view to the second property, "UA-XXXX-Z".
    mGaTracker2.sendView("/Home");
  }
}

חשוב לזכור שתכונות המדידה האוטומטיות שמסופקות על ידי EasyTrack ישתמשו רק בכלי המעקב שמוגדר כברירת מחדל כדי לבצע את הקריאות. אם אתם משתמשים בתכונות האלה של EasyTrack ואתם רוצים לשלוח נתונים באמצעות מכשירי מעקב אחרים, תצטרכו לעשות זאת באופן ידני.

מכשיר מעקב שמוגדר כברירת מחדל

אומנם הטמעה מסוימת עשויה להשתמש בכמה כלי מעקב, אבל בכל העולם יש לה מכשיר מעקב אחד שמוגדר כברירת מחדל. הערך הראשון של Tracker שמאוחזר הופך לכלי המעקב שמוגדר כברירת מחדל.

כדי לקבל את מכשיר המעקב שמוגדר כברירת מחדל, משתמשים:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get default tracker.
Tracker myDefault = myInstance.getDefaultTracker();

כדי להגדיר את מכשיר המעקב שמוגדר כברירת מחדל, משתמשים:

// First get a tracker using a new property ID.
Tracker newTracker = myInstance.getTracker("UA-XXXX-2");

// Then make newTracker the default tracker globally.
myInstance.setDefaultTracker(newTracker);

שיגור

הגדרות השליחה מנוהלות על ידי ה-Singleton של GAServiceManager. כדי להגדיר את תקופת השליחה:

// Set dispatch period to 30 seconds.
GAServiceManager.getInstance().setDispatchPeriod(30);

כדי לשלוח ידנית מחוץ למרווח הזמן המתוזמן:

// Manually dispatch any queued hits.
GAServiceManager.getInstance().dispatch();

דגימות

ניתן להפעיל דגימה בצד הלקוח כדי להגביל את מספר ההתאמות שנשלחות ל-Google Analytics. אם באפליקציה יש מספר גדול של משתמשים או שהיא שולחת נפח גדול של נתונים ל-Google Analytics, הפעלת הדגימה תעזור להבטיח שהדיווח לא יופסק.

לדוגמה, כדי לאפשר דגימה בצד הלקוח בשיעור של 50% באמצעות Easytracker ו-XML, השתמשו בפרמטר הבא בקובץ analytics.xml:

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

ניתן גם להפעיל דגימה בצד הלקוח באופן פרוגרמטי:

// Get tracker from singleton.
GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this);
Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID.

// Set a sample rate of 50%.
tracker.setSampleRate(50.0d);

ביטול הסכמה ברמת האפליקציה

ניתן להפעיל סימון לביטול הסכמה ברמת האפליקציה, שישבית את Google Analytics בכל האפליקציה. לאחר הגדרת התכונה הזו, הסימון יופיע לכל אורך חיי האפליקציה או עד שתאפס אותו.

כדי לקבל את הגדרת ביטול ההסכמה ברמת האפליקציה, משתמשים ב:

// Get singleton.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Get the app opt out preference using an AppOptOutCallback.
myInstance.requestAppOptOut(new AppOptOutCallback() {
   @Override
   public void reportAppOptOut(boolean optOut) {
     if (optOut) {
     ... // Alert the user that they've opted out.
     }
   });
}

כדי להגדיר את הסימון של ביטול ההסכמה ברמת האפליקציה, משתמשים בישויות הבאות:

myInstance.setAppOptOut(appPreferences.userOptOut);

בדיקה וניפוי באגים

ה-SDK של Google Analytics ל-Android כולל מצב ניפוי באגים שמדפיס מידע שימושי לגבי הנתונים שנשלחים ל-Google Analytics ביומנים.

כדי להפעיל את מצב ניפוי הבאגים באמצעות Easytracker, צריך להוסיף את הקוד הבא לקובץ המשאבים של analytics.xml:

<bool name="ga_debug">true</bool>

כדי להפעיל את מצב ניפוי הבאגים באופן פרוגרמטי, משתמשים בממשקים הבאים:

// Get singleton using application context.
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this);

// Enable debug mode.
myInstance.setDebug(true);

הפלט יודפס ב-logcat באמצעות התג GAV2.