«

»

Dec 01

Google Analytics V2

Google Analytics:

 
 

רקע תאורטי:

 

שירות של Google שמאפשר לך לנתר אחרי האפליקציה שלך ולעקוב אחר הפעולות של המשתמש שלך באפליקציה.
אתה, בתור המפתח, יכול לבחור אחרי איזה פעולות לעקוב.

 

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

 

בנוסף הוא גם מדווח על:
1. התקנות של האפליקציה.
2. מס’ המשמשים שברשותם האפליקציה (שהתקינו ולא הסירו) ומיקומם.
3. קריסות של המערכת.

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

האופן שבו המידע נשלח הוא ע”י תור של הודעות שכל כמה זמן (שאתה יכול לקבוע) המידע הזה נשלח לשרת של google. אתה, בתור המפתח יכול גם לשלוח באופן ישיר הודעה, לדוגמא אם זאת הודעה מהותית שחשוב לך שתשלח במיידי, ולא לחכות לזמן שכל תור ההודעות ישלח.

לאחרונה (סוף 2012) יצאה גרסה חדשה של GoogleAnalyticsV2 ועליה אני רושם מאמר זה.

יש הרבה אופציות חדשות לדיווח על מידע ב GoogleAnalytics V2, (שמהילך והלאה נקרא לה GoogleAnalytics)

 

מפאת עניין התיחסתי לכל סוגי הדיווחים מלבד:
דיווח על מי שהפנה את המשתמש להתקין את האפליקצה (Referrer).
דיווח על קניות ה InAppBilling שנעשו באפליקציה.
דיווח על פעולות שלוקחות זמן למשתמש.

 
 

דוגמה והסבר:

 

יצירת חשבון באתר של GoogleAnalytics:

 

יש ליצור חשבון ב:
http://www.google.com/analytics/
ולהשיג את ה Developer Key שמשוייך לחשבון שלך.

 

הכנות בקוד:

 

1. יש להוסיף לאפליקציה את ה Jar של Google Analytics: libGoogleAnalytics.jar.

 

2. מכיוון שאנחנו צריכים לשלוח מידע לשרת יש לעדכן את ה Manifest ולתת לו הרשאות גישה לאינטרנט:

 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">

<uses-permission android:name="android.permission.INTERNET">

 

3. להוסיף לתיקיית ה res/values קובץ analytics.xml:
<resources>
<!--Replace placeholder ID with your tracking ID-->
<string name="ga_trackingId">UA-XXXX-Y</string>
<!--Enable Activity tracking-->
<bool name="ga_autoActivityTracking">true</bool>
<!--Enable automatic exception tracking-->
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>

 

4. לקבל מופע של ה Tracker:
GoogleAnalytics myInstance = GoogleAnalytics.getInstance(context.getApplicationContext());
_tracker = myInstance.getTracker(DEVELOPER_KEY);

 

בשביל להגדיר אותו כברירת המחדל שמקבלים כאשר קוראים למתודה getDefaultTracker():
_tracker.setDefaultTracker(_tracker);

 

הגדרות:

 

הפעלת ה tracker במצב דבאג:
בשביל להציג את הדיווחים גם ב logcat יש להגדיר להריץ את ה GoogleAnalytics במצב של debug.
myInstance.setDebug(true);

 

הגדרת כל כמה זמן ישלחו ההודעות בתור:
בברירת המחדל כל 30 דקות נשלחות ההודעות. אפשר לשנות זאת ע”י שינוי ה analytics.xml:
<integer name="ga_dispatchPeriod">60</integer>
או באופן דינמי בקוד:
GAServiceManager.getInstance().setDispatchPeriod(60);
קביעת ערך של 0 יגרום לכל הודעה להשלח במיידי.

 

דיווחים:

 

בשביל להכריח את GoogleAnalytics לשלוח את ההודעות שנצברו בתור במיידי:

GAServiceManager.getInstance().dispatch();

 

דיווח על התחלת וסיום Activity:

 

בשביל זה יש Tracker מוכן שנקרא EasyTracker.
ב OnStart של ה Activity יש לקרוא ל:
EasyTracker.getInstance().activityStart(this);
וב onStop יש לקרוא ל:
EasyTracker.getInstance().activityStop(this);
הוספה ל analytics.xml את השורה:
<bool name="ga_autoActivityTracking">true</bool>
ואז לכל Activity שהוספנו לו את הקוד לדיווח לעיל. נגדיר גם את השם שבו נדווח לו.
<string name="com.camera_eye_scanner.MainActivity">MainActivity</string>

 

דיווח על קריסות באפליקציה:

הוספה ל analytics.xml את השורה:
<bool name="ga_reportUncaughtExceptions">true</bool>

 

דיווח שלך, המפתח, על אירוע:

ב GoogleAnalytics V2 בניגוד לגרסה הישנה יותר יש הפרדה לשני דיווחים:

 

1. דיווח על אינטראקציה של המשתמש עם האפליקציה, לדוגמא כאשר המשתמש לוחץ על כפתור:
_tracker.trackEvent(<Category>, <Action>, <Label>, <Value>);

כאשר Category זה הקטגוריה הכללית, כמו UI_Operation. ה Action זה מה עשו בקטגוריה, כמו Press_Button ו Label זה ה String עצמו שאתה מעביר לשרת. Value זה ערך שתרצה לשלוח לשרת.

 

2. דיווח על צפייה של משתמש בתוכן, לדוגמא כאשר משתמש עובר ל Activity אחר (מקביל ל pageView בגרסה הישנה) או כאשר הוא צופה בוידאו שלך או עובר fragment. (אין צורך להגדיר את זה כאשר המשתמש עובר ל Activity, בשביל זה אפשר להשתמש ב EazyTracker שהדגמתי למעלה.)

 

דיווח על session חדש של המשתמש באפליקציה:

מידע על הפעלה יחידה (כמה זמן הופעלה, כמה זמן הייתה ב background וכו’)

נוסיף ל analytics.xml את הפרמטר הבא שקובע אחרי כמה שניות שהאפליקציה שלנו הייתה ברקע GoogleAnalytics יתייחס ל session כ session חדש אם האפליקציה תחזור לקדימה שוב.
<integer name="ga_sessionTimeout">60</integer>
אפשר גם באופן דינאמי בקוד להכריז על session חדש, לדוגמא כאשר המשתמש לחץ על כפתור ע”י:
_tracker.setStartSession(true);

 
 

לינק להורדת הפרויקט לדוגמה

 

בהצלחה !

 

Leave a Reply

Your email address will not be published.

אתם יכולים להשתמש באפשרויות ותגי ה-HTMLהבאים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>