Google Analytics SDK ל-Android v1 (מדור קודם)

ה-SDK של Google Analytics לאפליקציות לנייד עבור Android מקל על ההטמעה של Google Analytics באפליקציות מבוססות-Android. במסמך הזה מוסבר איך לשלב את ה-SDK באפליקציות שלכם.

סקירה כללית של SDK

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

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

מעקב אחר צפיות בדף
צפייה בדף היא אמצעי סטנדרטי למדידת נפח התנועה לאתר מסורתי. אפליקציות לנייד לא מכילות דפי HTML, לכן צריך להחליט מתי (ובאיזו תדירות) להפעיל בקשה לצפייה בדף. בנוסף, מאחר שבקשות צפיות בדף מתוכננות לדווח על מבנים של ספריות, צריך לספק שמות תיאוריים לבקשות כדי לנצל את האפשרות למתן שמות לנתיבי דפים בדוחות התוכן ב-Analytics. השמות שבחרת יאוכלסו בדוחות של Analytics כנתיבי דפים, על אף שהם לא דפי HTML בפועל. עם זאת, אפשר לנצל את היתרונות האלה על ידי בניית נתיבים כדי לספק קיבוצים נוספים לקריאות.
מעקב אחר אירועים
ב-Analytics, אירועים נועדו לעקוב אחר אינטראקציות של משתמשים עם רכיבים בדפי אינטרנט, בנפרד מבקשות לצפייה בדף. אפשר להשתמש בתכונה 'מעקב אחר אירועים' ב-Google Analytics כדי לבצע קריאות נוספות שידווחו בקטע 'מעקב אחר אירועים' בממשק הדוחות של Analytics. האירועים מקובצים לפי קטגוריות ועשויים להשתמש גם בתוויות לכל אירוע, וכך מספקות גמישות בדוחות. לדוגמה, באפליקציית מולטימדיה יכולות להיות פעולות הפעלה/עצירה/השהיה עבור הקטגוריה סרטון ותווית לכל שם סרטון. לאחר מכן, הדוחות של Google Analytics יצברו אירועים עבור כל האירועים שתויגו בקטגוריה סרטון. מידע נוסף על מעקב אחר אירועים זמין במדריך למעקב אחר אירועים
מעקב אחר מסחר אלקטרוני
אפשר להשתמש בתכונת המעקב אחר מסחר אלקטרוני כדי לעקוב אחרי עסקאות בעגלת הקניות ורכישות מתוך האפליקציה. כדי לעקוב אחר עסקה, צריך להשתמש במחלקה Transaction כדי לייצג את המידע הכולל על הרכישה, וגם את המאפיין Item כדי לייצג כל מוצר בסל הקניות. אחרי שהם נאספים, הם מוצגים בקטע 'דיווח על מסחר אלקטרוני' בממשק של Google Analytics. למידע נוסף על מעקב אחר מסחר אלקטרוני, אפשר לעיין במדריך למעקב אחר מסחר אלקטרוני.
משתנים מותאמים אישית
משתנים מותאמים אישית הם תגים של צמדי שם-ערך שאפשר להוסיף לקוד המעקב כדי לשפר את המעקב ב-Google Analytics. כדי להבין איך להשתמש במשתנים מותאמים אישית, אפשר לעיין במדריך למשתנים מותאמים אישית.

תחילת העבודה

דרישות

כדי לשלב את יכולות המעקב של Google Analytics באפליקציה ל-Android, תצטרכו:

הגדרה

  • מוסיפים את libGoogleAnalytics.jar לספריית /libs של הפרויקט.
  • מוסיפים את ההרשאות הבאות לקובץ המניפסט AndroidManifest.xml של הפרויקט:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

ערכת ה-SDK כוללת אפליקציה לדוגמה שמדגימה איך הפרויקט שלכם צריך להיראות אם מגדירים אותו בהצלחה. אתם יכולים להשתמש בה כתבנית לאפליקציות משלכם המשולבות ב-Analytics.

שימוש ב-SDK

לפני שמתחילים להשתמש ב-SDK, יש ליצור חשבון בחינם בכתובת www.google.com/analytics וליצור נכס אינטרנט חדש בחשבון הזה באמצעות כתובת אתר מזויפת אבל תיאורית (למשל http://mymobileapp.mywebsite.com). אחרי שיוצרים את הנכס, רושמים או שומרים עותק של מזהה נכס האינטרנט שנוצר עבור הנכס החדש שנוצר.

.

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

דוגמאות ושיטות מומלצות

קוד לדוגמה ושיטות מומלצות זמינות בכתובת code.google.com בפרויקט analytics-api-samples.

ספריית Easytracker

במלון יש ספריית Easytracker. השירות מספק מעקב ברמת האפליקציה וברמת הפעילות כמעט ללא מאמץ פיתוח. ה-API זמין בקטע הורדות בפרויקט analytics-api-samples.

הפעלת מכשיר המעקב

מתקשרים אל GoogleAnalyticsTracker.getInstance() כדי לקבל את הסינגלטון של מכשיר המעקב. לאחר מכן קוראים לשיטה startNewSession ומעבירים את מזהה נכס האינטרנט ואת הפעילות שעוקבים אחריה. אפשר לקרוא לשיטה הזו ישירות בשיטת onCreate של הפעילות אם באפליקציה יש רק פעילות אחת. למשל:

package com.google.android.apps.analytics.sample;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

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

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this);

    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
        // scope of session-level.
        tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
        // Track a page view. This is probably the best way to track which parts of your application
        // are being used.
        // E.g.
        // tracker.trackPageView("/help"); to track someone looking at the help screen.
        // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
        // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stopSession();
  }
}

אם האפליקציה שלך כוללת פעילויות מרובות, תוכל להשתמש בספריית Easytracker שצוינה בקטע הורדות של הפרויקט analytics-api-samples.

מעקב אחר צפיות בדף ואירועים

המעקב אחר צפיות בדף ואירועים הוא פשוט: פשוט קוראים ל-trackPageView של אובייקט המעקב בכל פעם שרוצים להפעיל צפייה בדף. להתקשר אל trackEvent כדי להקליט אירוע. למידע נוסף על צפיות בדפים ואירועים, עיינו למעלה בקטע סקירה כללית של SDK.

שימוש במשתנים מותאמים אישית

אפשר להוסיף משתנה מותאם אישית גם בקלות: פשוט משתמשים בשיטה setCustomVar שסופקה על ידי ה-SDK לנייד. כדאי לתכנן מראש כדי ליצור אינדקס לכל משתנה מותאם אישית, כדי שלא מחליפים משתנה קיים. מידע נוסף על משתנים מותאמים אישית זמין במדריך למשתנים מותאמים אישית. שימו לב שהשיטה setCustomVar לא שולחת נתונים ישירות מעצמה. במקום זאת, הנתונים נשלחים עם האירוע או הצפייה הבאים במעקב. עליך להתקשר אל setCustomVar לפני שתעקוב אחר צפייה בדף או אירוע. לתשומת ליבכם: היקף ברירת המחדל של משתנים מותאמים אישית הוא היקף ברמת הדף.

שימוש במעקב אחר מסחר אלקטרוני

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

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

קריאה ל-addTransaction ו-addItem מוסיפה את העסקה או הפריט למאגר פנימי של מסחר אלקטרוני, שאליו ניתן להוסיף עוד פריטים ועסקאות. רק בהתקשרות אל trackTransactions, העסקאות והפריטים יישלחו אל סדרן העבודה וימתינו בתור לשליחה ל-Google Analytics.

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

הקוד לדוגמה הבא יכול לעזור לכם להתחיל. אנחנו מניחים שתתבצע קריאה לשיטה onPurchaseCompleted אחרי אישור או דחייה של הרכישה.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   *
   * @param purchase A PurchaseObject containing all of the transaction information needed to
   *     send the ecommerce hit to Google Analytics.
   */
  public void onPurchaseCompleted(PurchaseObject purchase) {
    tracker.addTransaction(new Transaction.Builder(
        purchase.getTransactionId(),
        purchase.getTotal())
        .setStoreName(purchase.getStoreName())
        .setTotalTax(purchase.getTotalTax())
        .setShippingCost(purchase.getShippingCost())
        .build());
    for (PurchaseLineItem lineItem : purchase.getLineItems()) {
        tracker.addItem(new Item.Builder(
            purchase.getTransactionId(),
            lineItem.getItemSKU(),
            lineItem.getItemCost(),
            lineItem.getQuantity())
            .setItemName(lineItem.getItemName())
            .setItemCategory(lineItem.getItemCategory())
            .build());
    }
    if (purchase.isConfirmed()) {
      tracker.trackTransactions();
    } else {
      // The purchase was denied or failed in some way.  We need to clear out
      // any data we've already put in the Ecommerce buffer.
      tracker.clearTransactions();
    }
  }

למידע נוסף על מסחר אלקטרוני, ניתן לעיין במדריך למעקב אחר מסחר אלקטרוני.

הסתר זהות IP

כדי לבצע אנונימיזציה של פרטי IP של משתמשים, יש להשתמש בשיטה setAnonymizeIp. כך מערכת Google Analytics יכולה לבצע אנונימיזציה של המידע שנשלח על ידי ה-SDK על ידי הסרת 8 התווים האחרונים בכתובת ה-IP לפני האחסון שלה.

אפשר להתקשר אל setAnonymizeIp בכל זמן.

הגדרת תדירות דגימה

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

שיעור של 0 מכבה את יצירת ההיטים, וקצב של 100 שולח את כל הנתונים ל-Google Analytics. עדיף להתקשר אל setSampleRate לפני שמפעילים שיטות מעקב.

למידע נוסף על דגימה זמין במדריך בנושא עקרונות הדגימה.

קיבוץ התאמות

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

בעיות מוכרות

  • קריאה לשיטות של GoogleAnalyticstracker בשרשורים שונים עלולה לגרום לשגיאות לא ברורות. חשוב לבצע את כל השיחות מאותו שרשור.
  • מעקב אחר קמפיינים

    ה-SDK תומך בשני סוגים של מעקב אחר קמפיינים.

    - מעקב אחר קמפיינים ב-Google Play – מאפשר לכם לעקוב אחרי הפניות להתקנות דרך Google Play.
    - מעקב כללי אחר קמפיינים – מאפשר לכם לעקוב אחר כל קמפיין שמפנה משתמשים לאפליקציה שלכם.

    מעקב אחר קמפיינים ב-Google Play

    הגרסה של Android 1.6 OS תומכת בשימוש בפרמטר referrer של כתובת אתר בקישורים להורדה אל Google Play. ערכת Google Analytics SDK for Android משתמשת בפרמטר הזה כדי לאכלס באופן אוטומטי פרטי קמפיינים ב-Google Analytics עבור האפליקציה שלכם. כך ניתן לתעד את המקור של התקנת האפליקציה ולשייך אותו לצפיות בדפים ולאירועים עתידיים. פעולה זו יכולה להיות שימושית לצורך מדידת היעילות של פרסומת מסוימת באפליקציה, לדוגמה.

    כדי שמעקב אחר ההפניות יפעל, צריך להוסיף את קטע הקוד הבא לקובץ המניפסט AndroidManifest.xml של הפרויקט:

    <!-- Used for install referrer tracking -->
    <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
    </receiver>
    

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

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

    מעקב כללי אחר קמפיינים

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

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

      tracker.setReferrer(referrer);
    

    יש שתי הגבלות לשימוש בתכונה הזו. קודם צריך להתקשר אל startNewSession לפני שמתקשרים אל setReferrer. צריך לעשות זאת כי מסד הנתונים של SQLite המשמש את Google Analytics לא מוגדר לפני הקריאה ל-startNewSession, ול-setReferrer נדרש מסד הנתונים הזה. אם עוד לא התקשרת אל startNewSession, יינתן לך IllegalStateException.

    ההגבלה השנייה היא שמחרוזת ההפניה שמועברת אל setReferrer צריכה להיות בפורמט ספציפי. היא צריכה להיות בצורת קבוצת פרמטרים של כתובת אתר וחייבת לכלול לפחות פרמטר gclid או אחד מהפרמטרים utm_campaign, utm_medium ו-utm_source. במקרה השני, הוא יכול לכלול גם את הפרמטרים utm_term ו-utm_content.

    הפרמטר gclid הוא חלק מתכונת התיוג האוטומטי שמקשרת באופן אוטומטי בין Google Analytics ל-Google Ads. דוגמה להפניה לקמפיין באמצעות תיוג אוטומטי עשויה להיראות כך:

    referrer = “gclid=gclidValue”;
    

    מחרוזת ההפניה של הקמפיין הידני עשויה להיראות כך:

    referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

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

    בנוסף, שימו לב שסשן חדש יתחיל כשתתבצע קריאה ל-setReferrer והוא יחזיר את הערך true.

    פרמטר חובה תיאור דוגמאות
    utm_campaign כן שם הקמפיין; משמש לניתוח של מילות מפתח כדי לזהות קידום מכירות של מוצר ספציפי או קמפיין אסטרטגי utm_campaign=spring_sale
    utm_source כן מקור הקמפיין; משמש לזיהוי מנוע חיפוש, ניוזלטר או מקור אחר utm_source=google
    utm_medium כן אמצעי ההגעה לאתר בקמפיין; משמש לזיהוי אמצעי הגעה לאתר, כמו אימייל או עלות לקליק (CPC) utm_medium=cpc
    utm_term לא מונח של קמפיין; משמש לחיפוש בתשלום כדי לספק את מילות המפתח למודעות utm_term=running+shoes
    utm_content לא תוכן הקמפיין. משמש לבדיקות A/B ולמודעות שמטורגטות לפי תוכן כדי להבדיל בין מודעות או קישורים שמפנים לאותה כתובת URL utm_content=logolink
    utm_content=textlink