Google Analytics SDK برای iOS - مهاجرت به نسخه 3

این راهنما نحوه ارتقا به نسخه 3 Google Analytics SDK برای iOS را شرح می دهد.

در یک نگاه: چه جدید در V3 است

APIها در V3 به گونه‌ای اصلاح شده‌اند که در پلتفرم‌های بومی و وب سازگارتر باشند. همه کاربران V2 باید به این تغییرات توجه داشته باشند:

  • بازدیدها اکنون با استفاده از روش send:(NSDictionary *)params ارسال می شوند.
  • مدیریت خودکار جلسه سمت کلاینت حذف شده است. به جای آن، زمان پایان جلسه را می توان در رابط مدیریت پیکربندی کرد. بیشتر بدانید .
  • حالت اشکال زدایی با Logger جایگزین شده است
  • جدید: یک پرچم dryRun برای جلوگیری از نمایش داده های ارسال شده در گزارش ها اضافه شده است.
  • جدید: پشتیبانی از ارزهای محلی برای iOS اضافه شده است.

برای فهرست کامل تغییرات، به Changelog مراجعه کنید.

قبل از اینکه شروع کنی

قبل از شروع به‌روزرسانی به نسخه 3، به موارد زیر نیاز دارید:

مسیرها را ارتقا دهید

برای شروع، یک مسیر ارتقا به v3 را از پیاده سازی فعلی خود انتخاب کنید:

v1.x تا v3

توصیه می شود که کاربران Google Analytics iOS SDK v1.x برای شروع استفاده از نسخه 3، راهنمای شروع نسخه 3 را دنبال کنند.

v2.x تا v3

کاربران v2.x باید این مراحل را برای ارتقا به نسخه 3 دنبال کنند:

  1. همه روش‌های راحتی send<hit-type> با روش جدید send: جایگزین کنید:
    // v2 (Old)
    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
    [tracker sendView:@"HomeScreen"];
    
    // v3
    id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
    // Set the screen name on the tracker so that it is used in all hits sent from this screen.
    [tracker set:kGAIScreenName value:@"Home Screen"];
    
    // Send a screenview.
    // [tracker send:[[GAIDictionaryBuilder createAppView]  build]];   // Previous V3 SDK versions.
    [tracker send:[[GAIDictionaryBuilder createScreenView]  build]];   // SDK Version 3.08 and up.
    
  2. مدیریت خودکار جلسه سمت مشتری در نسخه 3 حذف شده است. مدت زمان پایان جلسه را می توان در رابط مدیریت تنظیم کرد و به طور پیش فرض روی 30 دقیقه تنظیم کرد. همچنین می توان جلسات را با استفاده از پارامتر sessionControl به صورت دستی شروع و متوقف کرد. درباره مدیریت جلسه در نسخه 3 بیشتر بدانید.

  3. کاربران ردیابی خودکار صفحه باید ارجاع به GAITrackedViewController.trackedViewName را با GAITrackedViewController.screenName :
    // v2 (Old)
    #import "GAITrackedViewController.h"
    
    @implementation AboutViewController
    
    - (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      self.trackedViewName = @"About Screen";
    }
    
    // ... Rest of ViewController implementation.
    
    // v3
    #import "GAITrackedViewController.h"
    
    @implementation AboutViewController
    
    - (void)viewDidAppear:(BOOL)animated {
      [super viewDidAppear:animated];
      self.screenName = @"About Screen";
    }
    
    // ... Rest of ViewController implementation.
    
    جایگزین کنند.
  4. حالت اشکال زدایی منسوخ شده است -- به جای آن از Logger استفاده کنید:
    // v2 (Old)
    [GAI sharedInstance].debug = YES;
    
    // v3
    [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
    
  5. ویژگی GAI.useHttp حذف شده است -- برای ارسال بازدیدها با استفاده از HTTP به جای HTTPS پیش فرض، به جای آن، پارامتر kGAIUseSecure را روی هر GAITracker تنظیم کنید:
    // v2 (Old)
    // AppDelegate.m
    
    #import AppDelegate.h
    #import GAI.h
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        static NSString const *kGaPropertyId = @"UA-XXXX-Y";
        id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];
    
        // Send hits using HTTP (default=HTTPS).
        tracker.useHttps = NO;
    
    }
    
    // v3
    // AppDelegate.m
    
    #import AppDelegate.h
    #import GAI.h
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        static NSString const *kGaPropertyId = @"UA-XXXX-Y";
        id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];
    
        // Send hits using HTTP (default=HTTPS).
        [tracker set:kGAIUseSecure value:[@NO stringValue]];
    
    }
    
  6. V3 SDK دیگر به طور خودکار جلسه جدیدی را با باز شدن برنامه شروع نمی کند. اگر می خواهید این رفتار را از نسخه 2 حفظ کنید، باید منطق کنترل جلسه خود را زمانی که کاربر برنامه را راه اندازی می کند، پیاده سازی کنید:
  7. // AppDelegate.m
    
    #import AppDelegate.h
    #import GAI.h
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
        static NSString const *kGaPropertyId = @"UA-XXXX-Y";
        id tracker = [[GAI sharedInstance] trackerWithTrackingId:kGaPropertyId];
    
        // CAUTION: Setting session control directly on the tracker persists the
        // value across all subsequent hits, until it is manually set to null.
        // This should never be done in normal operation.
        //
        // [tracker set:kGAISessionControl value:@"start"];
    
        // Instead, send a single hit with session control to start the new session.
        [tracker send:[[[GAIDictionaryBuilder createEventWithCategory:@"UX"
                                                               action:@"appstart"
                                                                label:nil
                                                                value:nil] set:@"start" forKey:kGAISessionControl] build]];
    
    
  8. تنظیم انصراف در سطح برنامه دیگر توسط SDK ادامه نمی‌یابد و باید هر بار که برنامه راه‌اندازی می‌شود تنظیم شود (به طور پیش‌فرض روی NO است). درباره تنظیم انصراف در سطح برنامه بیشتر بیاموزید .

ارجاع

بخش‌های زیر نمونه‌های مرجعی درباره نحوه تنظیم و ارسال داده‌ها با استفاده از V3 SDK ارائه می‌دهند.

ارسال داده ها با استفاده از دیکشنری ها در نسخه 3

در V3، داده ها با استفاده از یک روش send: ارسال می شوند که یک NSDictionary از فیلدها و مقادیر Google Analytics را به عنوان آرگومان می گیرد. یک کلاس ابزار GAIDictionaryBuilder برای ساده کردن فرآیند بازدید از ساختمان ارائه شده است:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value:@"Home Screen"];

// Previous V3 SDK versions.
// [tracker send:[[GAIDictionaryBuilder createAppView] setValue:@"Premium"  // Creates a Map of hit type 'AppView' (screenview) and set any additional fields.
//                                                     forKey:[customDimensionForIndex:1] build]; // Build and return the dictionary to the send method.

// SDK Version 3.08 and up.
[tracker send:[[GAIDictionaryBuilder createScreenView] setValue:@"Premium"  // Creates a Map of hit type 'ScreenView' and set any additional fields.
                                                       forKey:[customDimensionForIndex:1] build]; // Build and return the dictionary to the send method.

کلاس GAIDictionaryBuilder را می توان برای ساخت هر یک از انواع ضربه های پشتیبانی شده مانند رویدادها استفاده کرد:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"     // Event category (required)
                                                      action:@"button_press"  // Event action (required)
                                                       label:@"play"          // Event label
                                                       value:nil] build]];    // Event value

درباره ارسال داده در نسخه 3 بیشتر بیاموزید .

تنظیم داده ها در ردیاب در نسخه 3

مقادیر همچنین ممکن است مستقیماً روی یک GAITracker با استفاده از روش set:value:forKey تنظیم شوند. مقادیر تنظیم شده مستقیماً برای همه بازدیدهای بعدی از آن GAITracker اعمال می شود:

// Values set directly on a tracker apply to all subsequent hits.
[tracker set:kGAIScreenName value:@"Home Screen"];

// This screenview hit will include the screen name "Home Screen".
// [tracker send:[[GAIDictionaryBuilder createAppView] build]];   // Previous V3 SDK versions.
[tracker send:[[GAIDictionaryBuilder createScreenView] build]];   // SDK Version 3.08 and up.

// And so will this event hit.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"
                                                      action:@"button_press"
                                                       label:@"play"
                                                       value:nil] build]];

برای پاک کردن مقداری که در GAITracker تنظیم شده است، ویژگی را روی nil تنظیم کنید:

// Clear the previously-set screen name value.
[tracker set:kGAIScreenName
       value:nil];

// Now this event hit will not include a screen name value.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"
                                                      action:@"button_press"
                                                       label:@"play"
                                                       value:nil] build]];

درباره تنظیمات داده در نسخه 3 بیشتر بیاموزید