שליחה – Android SDK גרסה 2 (מדור קודם)

במאמר הזה נסביר איך לנהל את שליחת הנתונים ל-Google Analytics באמצעות Google Analytics SDK ל-Android v2.

סקירה

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

השליחה היא ייחודית לספריות האוספים לנייד, ונועדה להקל על האתגרים של גישה לא אמינה לרשת וחיי סוללה מוגבלים.

יש שני סוגים של שילוח:

  • שליחה תקופתית – היטים נשלחים באופן אוטומטי במרווחים קבועים שצוינו באופן פרוגרמטי או בקובץ analytics.xml.
  • שליחה ידנית – שלח היטים באופן ידני כדי לשלוח נתונים כשנוח לך, לדוגמה כשיש חיבור HTTP קיים.

שני סוגי השליחה מתרחשים מה-thread הראשי של ממשק המשתמש בגרסה 2 של ה-SDK

בהמשך המסמך מוסבר בפירוט על כל סוג של שליחה, ואיך ליישם אותם באפליקציה.

שליחה תקופתית

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

ברירת המחדל למשלוח היא 30 דקות. אפשר להוסיף מרווח זמן בשניות על ידי שימוש בפרמטר ga_dispatchPeriod בקובץ analytics.xml או קריאה ל-setDispatchPeriod(int dispatchPeriodInSeconds) כמו בדוגמה הבאה:

בקובץ analytics.xml:

<integer name="ga_dispatchPeriod">60</integer>

באופן פרוגרמטי:

GAServiceManager.getInstance().setDispatchPeriod(60);

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

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

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

שליחה ידנית

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

ניתן לשלוח היטים באופן ידני באמצעות המופע GAServiceManager:

GAServiceManager.getInstance().dispatch();