iOS के लिए Google Analytics SDK टूल - वर्शन 3 पर माइग्रेट करना

इस गाइड में, iOS के लिए Google Analytics SDK के वर्शन 3 पर अपग्रेड करने का तरीका बताया गया है.

एक नज़र में जानकारी: वर्शन 3 में नया क्या है

वर्शन 3 में मौजूद एपीआई को रीफ़ैक्टर किया गया है, ताकि नेटिव और वेब प्लैटफ़ॉर्म पर वे ज़्यादा बेहतर तरीके से काम कर सकें. वर्शन 2 के सभी उपयोगकर्ताओं को इन बदलावों पर ध्यान देना चाहिए:

  • अब हिट एक ही send:(NSDictionary *)params तरीके का इस्तेमाल करके भेजे जाते हैं.
  • अपने-आप क्लाइंट-साइड सेशन मैनेजमेंट की सुविधा हटा दी गई है. इसके बजाय, सेशन खत्म होने के समय को मैनेजमेंट इंटरफ़ेस में कॉन्फ़िगर किया जा सकता है. ज़्यादा जानें.
  • डीबग मोड को Logger से बदल दिया गया है
  • नया: भेजा गया डेटा रिपोर्ट में न दिखे, इसके लिए dryRun फ़्लैग जोड़ा गया है.
  • नई सुविधा: iOS के लिए, स्थानीय मुद्राओं के लिए सुविधा जोड़ दी गई है.

बदलावों की पूरी सूची देखने के लिए, चेंजलॉग देखें.

आरंभ करने से पहले

v3 पर अपग्रेड करने से पहले, आपको इन चीज़ों की ज़रूरत होगी:

पाथ अपग्रेड करें

शुरू करने के लिए, अपने मौजूदा लागू किए गए वर्शन से v3 पर अपग्रेड पाथ चुनें:

v1.x से v3 तक

यह सुझाव दिया जाता है कि Google Analytics iOS SDK v1.x के उपयोगकर्ता, v3 का इस्तेमाल शुरू करने के लिए, v3 शुरुआती निर्देश का पालन करें.

v2.x से v3

v2.x उपयोगकर्ताओं को v3 पर अपग्रेड करने के लिए यह तरीका अपनाना होगा:

  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 प्रॉपर्टी हटा दी गई है -- डिफ़ॉल्ट एचटीटीपीएस के बजाय एचटीटीपी का इस्तेमाल करके हिट भेजने के लिए, हर GAITracker पर kGAIUseSecure पैरामीटर सेट करें:
    // 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 में शब्दकोशों का इस्तेमाल करके डेटा भेजना

वर्शन 3 में, डेटा भेजने के लिए एक send: तरीके का इस्तेमाल किया जाता है. इसमें Google Analytics के NSDictionary फ़ील्ड और वैल्यू को आर्ग्युमेंट के तौर पर लिया जाता है. 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

v3 में डेटा भेजने के बारे में ज़्यादा जानें.

वर्शन 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]];

v3 में डेटा सेट करने के बारे में ज़्यादा जानें