این راهنما نحوه ارتقا به نسخه 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 دنبال کنند:
- همه روشهای راحتی
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.
- مدیریت خودکار جلسه سمت مشتری در نسخه 3 حذف شده است. مدت زمان پایان جلسه را می توان در رابط مدیریت تنظیم کرد و به طور پیش فرض روی 30 دقیقه تنظیم کرد. همچنین می توان جلسات را با استفاده از پارامتر
sessionControl
به صورت دستی شروع و متوقف کرد. درباره مدیریت جلسه در نسخه 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.
جایگزین کنند. - حالت اشکال زدایی منسوخ شده است -- به جای آن از
Logger
استفاده کنید:// v2 (Old) [GAI sharedInstance].debug = YES;
// v3 [[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
- ویژگی
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]]; } - V3 SDK دیگر به طور خودکار جلسه جدیدی را با باز شدن برنامه شروع نمی کند. اگر می خواهید این رفتار را از نسخه 2 حفظ کنید، باید منطق کنترل جلسه خود را زمانی که کاربر برنامه را راه اندازی می کند، پیاده سازی کنید:
- تنظیم انصراف در سطح برنامه دیگر توسط SDK ادامه نمییابد و باید هر بار که برنامه راهاندازی میشود تنظیم شود (به طور پیشفرض روی
NO
است). درباره تنظیم انصراف در سطح برنامه بیشتر بیاموزید .
// AppDelegate.m #import AppDelegate.h #import GAI.h - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { static NSString const *kGaPropertyId = @"UA-XXXX-Y"; idtracker = [[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]];
ارجاع
بخشهای زیر نمونههای مرجعی درباره نحوه تنظیم و ارسال دادهها با استفاده از 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]];