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

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

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

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

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

מעקב אחר צפיות בדף
צפייה בדף היא אמצעי סטנדרטי למדידת נפח התנועה לאתר מסורתי. אפליקציות לנייד לא מכילות דפי HTML, לכן צריך להחליט מתי (ובאיזו תדירות) להפעיל בקשה לצפייה בדף. בנוסף, מאחר שבקשות צפיות בדף מתוכננות לדווח על מבנים של ספריות, צריך לספק שמות תיאוריים לבקשות כדי לנצל את האפשרות למתן שמות לנתיבי דפים בדוחות התוכן ב-Analytics. השמות שבחרת יאוכלסו בדוחות של Analytics כנתיבי דפים, על אף שהם לא דפי HTML בפועל. עם זאת, אפשר לנצל את היתרונות האלה על ידי בניית נתיבים כדי לספק קיבוצים נוספים לקריאות.
מעקב אחר אירועים
ב-Analytics, אירועים נועדו לעקוב אחר אינטראקציות של משתמשים עם רכיבים בדפי אינטרנט, בנפרד מבקשות לצפייה בדף. אפשר להשתמש בתכונה 'מעקב אחר אירועים' ב-Google Analytics כדי לבצע קריאות נוספות שידווחו בקטע 'מעקב אחר אירועים' בממשק הדוחות של Analytics. האירועים מקובצים לפי קטגוריות ועשויים להשתמש גם בתוויות לכל אירוע, וכך מספקות גמישות בדוחות. לדוגמה, באפליקציית מולטימדיה יכולות להיות פעולות הפעלה/עצירה/השהיה עבור הקטגוריה סרטון ותווית לכל שם סרטון. לאחר מכן, הדוחות של Google Analytics יצברו אירועים עבור כל האירועים שתויגו בקטגוריה סרטון. מידע נוסף על מעקב אחר אירועים זמין במדריך למעקב אחר אירועים
מעקב אחר מסחר אלקטרוני
אפשר להשתמש בתכונת המעקב אחר מסחר אלקטרוני כדי לעקוב אחרי עסקאות בעגלת הקניות ורכישות מתוך האפליקציה. כדי לעקוב אחר עסקה, צריך להפעיל את השיטה addTransaction כדי ליצור עסקה כוללת וגם את השיטה addItem עבור כל מוצר בסל הקניות. אחרי שהם נאספים, הם מוצגים בקטע 'דיווח על מסחר אלקטרוני' בממשק של Google Analytics. למידע נוסף על מעקב אחר מסחר אלקטרוני, אפשר לעיין במדריך למעקב אחר מסחר אלקטרוני.
משתנים מותאמים אישית
משתנים מותאמים אישית הם תגים של צמדי שם-ערך שאפשר להוסיף לקוד המעקב כדי לשפר את המעקב ב-Google Analytics. כדי להבין איך להשתמש במשתנים מותאמים אישית, אפשר לעיין במדריך למשתנים מותאמים אישית.
תמיכה ב-NoThumb
ערכת ה-SDK ל-iPhone כוללת עכשיו גרסת NoThumb של הספרייה וגם גרסת לייק רגילה. כדי להשתמש בגרסת NoThumb של הספרייה, יש להשתמש בקובץ libGoogleAnalytics_NoThumb.a במקום בקובץ libGoogleAnalytics.a.

תחילת העבודה

דרישות

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

הגדרה

  • פותחים את Xcode ויוצרים פרויקט חדש של iPhone OS.
  • גוררים את GANTracker.h ו-libGoogleAnalytics.a מספריית ה-SDK אל הפרויקט החדש.
  • יש לכלול את המסגרת של CFNetwork בפרויקט ולקשר אל libsqlite3.0.dylib.

ה-SDK של Google Analytics לאפליקציות לנייד אמור לפעול עם כל מכשירי iPhone או iPod Touch שבהם פועלת מערכת iOS 2.0 ואילך – הספרייה תואמת לכל גרסאות iOS שתומכות באפליקציות מקוריות.

ערכת ה-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. הוא מספק מעקב ברמת האפליקציות וה-UIViewController כמעט בלי מאמץ פיתוח. ה-API זמין בקטע הורדות בפרויקט analytics-api-samples.

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

מפעילים את מכשיר המעקב באמצעות קריאה ל-method startTrackerWithAccountID ב-Singleton של מכשיר המעקב שהתקבל דרך [GANTracker sharedTracker]. בדרך כלל נוח לקרוא לשיטה הזו ישירות בשיטה applicationDidFinishLaunching של מואצל האפליקציה. העברת מזהה נכס האינטרנט, תקופת השליחה הנדרשת והענקת גישה אופציונלית. למשל:

#import "BasicExampleAppDelegate.h"

#import "GANTracker.h"

// Dispatch period in seconds
static const NSInteger kGANDispatchPeriodSec = 10;

@implementation BasicExampleAppDelegate

@synthesize window = window_;

- (void)applicationDidFinishLaunching:(UIApplication *)application {
  // **************************************************************************
  // PLEASE REPLACE WITH YOUR ACCOUNT DETAILS.
  // **************************************************************************
  [[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-0000000-1"
                                        dispatchPeriod:kGANDispatchPeriodSec
                                              delegate:nil];

  NSError *error;
  if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                       name:@"iPhone1"
                                                      value:@"iv1"
                                                  withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackEvent:@"my_category"
                                       action:@"my_action"
                                        label:@"my_label"
                                        value:-1
                                   withError:&error]) {
    // Handle error here
  }

  if (![[GANTracker sharedTracker] trackPageview:@"/app_entry_point"
                                   withError:&error]) {
    // Handle error here
  }

  [window_ makeKeyAndVisible];
}

- (void)dealloc {
  [[GANTracker sharedTracker] stopTracker];
  [window_ release];
  [super dealloc];
}

@end

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

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

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

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

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

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

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

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

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

הקוד לדוגמה הבא יכול לעזור לכם להתחיל.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   */
- (void) processPurchase:Purchase purchase {
  [[GANTracker sharedTracker] addTransaction:[purchase transactionId]
                                  totalPrice:[purchase totalPrice]
                                   storeName:[purchase store]
                                    totalTax:[purchase tax]
                                shippingCost:[purchase shipping]
                                   withError:&error];
  if (error) {
    // Handle error
  }
  for (PurchaseItem item in [purchase items]) {
    [[GANTracker sharedTracker] addItem:[purchase transactionId]
                                itemSKU:[item itemSKU]
                              itemPrice:[item price]
                              itemCount:[item count]
                           itemCategory:[item category]
                              withError:&error];
    if (error) {
      // Handle error
    }
  }

  if ([purchase isConfirmed]) {
    [[GANTracker sharedTracker] trackTransactions:&error];
  } 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.
    [[GANTracker sharedTracker] clearTransactions:&error];
  }
}

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

הסתר זהות IP

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

דוגמה להגדרה:

 [[GANTracker sharedTracker] setAnonymizeIp:YES];

אפשר להגדיר את anonymizeIp בכל שלב.

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

אפשר להגדיר את קצב הדגימה באמצעות המאפיין sampleRate. אם האפליקציה מייצרת נפח תנועה גדול ב-Analytics, הגדרת קצב הדגימה עשויה למנוע את יצירת הדוחות על סמך נתונים שנדגמו. הדגימה מתבצעת באופן עקבי אצל משתמשים ייחודיים, כך שקצב הדגימה מופעל ונשארת תקינות במגמות ובדיווח. הפרמטר sampleRate הוא מספר NSUInteger ויכול להיות לו ערך בין 0 ל-100, כולל. הנה דוגמה שמפחיתה את sampleRate ל-95%:

 [[GANTracker sharedTracker] setSampleRate:95];

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

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

קיבוץ התאמות

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

בעיות מוכרות

  • הפניות/מקורות תנועה: בשלב זה לא ניתן לעקוב אחר הקמפיין/מקור ההפניה של הורדת אפליקציה במכשיר iOS.
  • מומלץ מאוד לא להתקשר אל dispatch במצבים הבאים:
    • בשיטה applicationWillTerminate
    • בתוך applicationDidEnterBackground
    • לפני השיחה אל stopTracker
    זה עלול לגרום לשליחת היטים פעמיים. במקום זאת, כדאי להשתמש בשיטה dispatchSynchronous:.
  • קריאה לשיטות GANMonitor בשרשורים שונים עלולה לגרום לשגיאות SQLite מעורפלות. חשוב לבצע את כל השיחות מאותו שרשור.
  • מעקב אחר קמפיינים

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

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

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

      [[GANTracker sharedTracker] setReferrer:referrer withError:&error];
    

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

    ההגבלה השנייה היא שמחרוזת ההפניה שמועברת אל 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