iOS v1 (लेगसी) के लिए Google Analytics SDK

iOS के लिए मोबाइल ऐप्लिकेशन SDK टूल की मदद से, Google Analytics को iOS पर आधारित ऐप्लिकेशन में आसानी से लागू किया जा सकता है. इस दस्तावेज़ में, SDK टूल को अपने ऐप्लिकेशन के साथ इंटिग्रेट करने का तरीका बताया गया है.

SDK टूल की खास जानकारी

यह SDK एक ट्रैकिंग मॉडल का उपयोग करता है, जिसे उपयोगकर्ताओं को परंपरागत वेबसाइटों पर ट्रैक करने और पारंपरिक वेब पेजों में विजेट के साथ इंटरैक्शन के लिए डिज़ाइन किया गया है. इस वजह से, नीचे इस्तेमाल किए गए शब्द पारंपरिक वेबसाइट ट्रैकिंग मॉडल को दिखाते हैं और इन्हें मोबाइल ऐप्लिकेशन को ट्रैक करने के लिए मैप किया जा रहा है. यह SDK टूल कैसे काम करता है, यह समझने के लिए आपको Analytics ट्रैकिंग के बारे में जानकारी होनी चाहिए.

नीचे दिए गए Analytics इंटरैक्शन प्रकारों के साथ अपने फ़ोन ऐप्लिकेशन ट्रैक करने के लिए मोबाइल ट्रैकिंग SDK का उपयोग करें:

पेज व्यू ट्रैकिंग
पेज व्यू, किसी पुरानी वेबसाइट पर आने वाले ट्रैफ़िक की संख्या को मापने का स्टैंडर्ड तरीका है. मोबाइल ऐप्लिकेशन में एचटीएमएल पेज नहीं होते. इसलिए, आपको यह तय करना होगा कि पेज व्यू अनुरोध को कब और कितनी बार ट्रिगर करना है. पेज व्यू के अनुरोध, डायरेक्ट्री स्ट्रक्चर पर रिपोर्ट करने के लिए डिज़ाइन किए जाते हैं. इसलिए, आपको अनुरोधों के लिए जानकारी देने वाले नाम देने चाहिए, ताकि Analytics की कॉन्टेंट रिपोर्ट में पेज के पाथ का नाम रखने का फ़ायदा लिया जा सके. आपके चुने गए नाम आपकी Analytics रिपोर्ट में, पेज पाथ के तौर पर भरे जाएंगे. भले ही, वे असल में एचटीएमएल पेज न हों, लेकिन अपने कॉल के लिए और ग्रुपिंग उपलब्ध कराने के लिए पाथ बनाकर आप इसका इस्तेमाल कर सकते हैं.
ईवेंट ट्रैकिंग
Analytics में, इवेंट इस तरह डिज़ाइन किए जाते हैं कि उपयोगकर्ता के इंटरैक्शन को वेब पेज एलिमेंट पर ट्रैक किया जा सके. साथ ही, इन्हें पेज व्यू अनुरोधों से अलग तरीके से ट्रैक किया जाता है. Google Analytics की इवेंट ट्रैकिंग सुविधा का इस्तेमाल करके, ऐसे अन्य कॉल किए जा सकते हैं जिन्हें Analytics रिपोर्ट इंटरफ़ेस के इवेंट ट्रैकिंग सेक्शन में रिपोर्ट किया जाएगा. इवेंट को कैटगरी के हिसाब से ग्रुप में बांटा जाता है. साथ ही, इनमें हर इवेंट के लिए लेबल का इस्तेमाल भी किया जा सकता है. इससे, इवेंट की रिपोर्टिंग आसान होती है. उदाहरण के लिए, किसी मल्टीमीडिया ऐप्लिकेशन में उसकी वीडियो कैटगरी के लिए, चलाएं/रोकें/रोकें कार्रवाइयां हो सकती हैं और हर वीडियो के नाम के लिए एक लेबल असाइन किया जा सकता है. इसके बाद, Google Analytics की रिपोर्ट वीडियो कैटगरी के साथ टैग किए गए सभी इवेंट के लिए, इवेंट इकट्ठा करेगी. इवेंट ट्रैकिंग के बारे में ज़्यादा जानकारी के लिए, इवेंट ट्रैकिंग गाइड देखें
ईकॉमर्स ट्रैकिंग
शॉपिंग कार्ट से जुड़े लेन-देन और इन-ऐप्लिकेशन खरीदारी को ट्रैक करने के लिए, ई-कॉमर्स ट्रैकिंग की सुविधा का इस्तेमाल करें. किसी ट्रांज़ैक्शन को ट्रैक करने के लिए, addTransaction तरीके का इस्तेमाल करके पूरा ट्रांज़ैक्शन बनाएं. साथ ही, शॉपिंग बास्केट में मौजूद हर प्रॉडक्ट के लिए addItem तरीका चुनें. इकट्ठा होने के बाद, डेटा को Google Analytics इंटरफ़ेस के ई-कॉमर्स रिपोर्टिंग सेक्शन में देखा जा सकता है. ई-कॉमर्स ट्रैकिंग के बारे में ज़्यादा जानकारी के लिए, ई-कॉमर्स ट्रैकिंग गाइड देखें.
कस्टम वैरिएबल
कस्टम वैरिएबल नाम-वैल्यू पेयर वाले टैग होते हैं. Google Analytics ट्रैकिंग को बेहतर बनाने के लिए, ट्रैकिंग कोड में इनका इस्तेमाल किया जा सकता है. कस्टम वैरिएबल का इस्तेमाल कैसे किया जा सकता है, इस बारे में ज़्यादा जानकारी के लिए, कस्टम वैरिएबल गाइड पढ़ें.
Nothumbs सहायता
iPhone के लिए SDK टूल में, अब लाइब्रेरी के Nothumbs वर्शन के साथ-साथ थंब वाला स्टैंडर्ड वर्शन भी उपलब्ध है. लाइब्रेरी के Nothumbs वर्शन का इस्तेमाल करने के लिए, फ़ाइल libGoogleAnalytics.a के बजाय libGoogleAnalytics_NoThumb.a फ़ाइल का इस्तेमाल करें.

शुरू करें

ज़रूरी शर्तें

Google Analytics की ट्रैकिंग सुविधाओं को अपने iOS ऐप्लिकेशन के साथ इंटिग्रेट करने के लिए, आपको इनकी ज़रूरत होगी:

सेटअप

  • Xcode खोलें और एक नया iPhone OS प्रोजेक्ट बनाएं.
  • SDK टूल की लाइब्रेरी डायरेक्ट्री से GANTracker.h और libGoogleAnalytics.a को खींचकर नए प्रोजेक्ट में छोड़ें.
  • अपने प्रोजेक्ट में CFNetwork फ़्रेमवर्क शामिल करें और libsqlite3.0.dylib में लिंक करें.

मोबाइल ऐप्लिकेशन SDK के लिए Google Analytics को iOS 2.0 या इसके बाद वाले वर्शन पर चलने वाले किसी भी iPhone या iPod Touch के साथ काम करना चाहिए -- लाइब्रेरी सभी iOS वर्शन के साथ काम करती है, जो स्थानीय ऐप्लिकेशन का समर्थन करती है.

SDK टूल के साथ, एक ऐप्लिकेशन का उदाहरण दिया गया है. इसमें बताया गया है कि अगर आपका प्रोजेक्ट सही तरीके से सेट अप हो जाता है, तो उसे कैसा दिखना चाहिए. Analytics से इंटिग्रेट किए गए अपने ऐप्लिकेशन के लिए, इसे टेंप्लेट के तौर पर इस्तेमाल करें.

SDK टूल का इस्तेमाल करना

SDK टूल का इस्तेमाल शुरू करने से पहले, आपको www.google.com/analytics पर बिना किसी शुल्क के एक खाता बनाना होगा. साथ ही, किसी जाली, लेकिन जानकारी देने वाली वेबसाइट के यूआरएल (उदाहरण के लिए, http://mymobileapp.mywebsite.com) का इस्तेमाल करके, उस खाते में एक नई वेब प्रॉपर्टी बनानी होगी. प्रॉपर्टी बनाने के बाद, नई प्रॉपर्टी के लिए जनरेट किए गए वेब प्रॉपर्टी आईडी को नोट कर लें या उसकी कॉपी रखें.

आपको अपने ऐप्लिकेशन में या अपनी सेवा की शर्तों में उपयोगकर्ताओं को यह बताना होगा कि आपके पास अपने ऐप्लिकेशन में उपयोगकर्ता की गतिविधि को अपनी पहचान छिपाकर, उसकी रिपोर्ट करने और उसे ट्रैक करने का अधिकार है. इसके अलावा, Google Analytics SDK टूल का इस्तेमाल, Google Analytics की सेवा की शर्तों के हिसाब से भी किया जाता है. किसी खाते के लिए साइन अप करते समय आपको इसकी सहमति देनी होगी.

सैंपल और सबसे सही तरीके

सैंपल कोड और सबसे सही तरीके देखने के लिए, code.google.com पर जाएं. यह टूल, analytics-api-sample प्रोजेक्ट में मौजूद है.

EasyTracker लाइब्रेरी

EasyTracker लाइब्रेरी की सुविधा उपलब्ध है. यह ऐप्लिकेशन और UIViewController लेवल ट्रैकिंग की सुविधा देता है. इसे बनाने में डेवलपमेंट की कोई ज़रूरत नहीं होती. इसे analytics-api-सैंपल प्रोजेक्ट के डाउनलोड सेक्शन में देखा जा सकता है.

ट्रैकर शुरू हो रहा है

[GANTracker sharedTracker] से मिले ट्रैकर सिंगलटन पर startTrackerWithAccountID तरीके को कॉल करके, ट्रैकर चालू करें. आम तौर पर, इस तरीके को सीधे आपके ऐप्लिकेशन का ऐक्सेस देने वाले व्यक्ति के 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 टूल की खास जानकारी देखें.

कस्टम वैरिएबल का इस्तेमाल करना

कस्टम वैरिएबल जोड़ना भी आसान है: बस मोबाइल SDK टूल से मिले setCustomVariableAtIndex तरीके का इस्तेमाल करें. आपको समय से पहले प्लान बनाना चाहिए, ताकि हर कस्टम वैरिएबल मैप को इंडेक्स किया जा सके. इसलिए, पहले से मौजूद किसी भी वैरिएबल को ओवरराइट न करें. कस्टम वैरिएबल के बारे में ज़्यादा जानकारी के लिए, कस्टम वैरिएबल गाइड देखें. ध्यान दें कि setCustomVariableAtIndex वाला तरीका, सीधे तौर पर डेटा नहीं भेजता. इसके बजाय, ट्रैक किए गए अगले पेज व्यू या इवेंट के साथ डेटा भेजा जाता है. किसी पेज व्यू या इवेंट को ट्रैक करने से पहले, आपको setCustomVariableAtIndex को कॉल करना होगा. ध्यान दें कि कस्टम वैरिएबल का डिफ़ॉल्ट स्कोप, पेज के दायरे वाला होता है.

ई-कॉमर्स ट्रैकिंग का इस्तेमाल करना

अपने ऐप्लिकेशन में ई-कॉमर्स ट्रैकिंग चालू करने के लिए, इन चार तरीकों का इस्तेमाल किया जा सकता है:

  • 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 की पहचान छिपाएं

उपयोगकर्ता की आईपी जानकारी की पहचान छिपाने के लिए, anonymizeIp प्रॉपर्टी को 'हां' पर सेट करें. इसकी मदद से Google Analytics, स्टोरेज से पहले आईपी पते के आखिरी ऑक्टेट को हटाकर, SDK टूल से भेजी गई जानकारी की पहचान छिपाता है.

यहां इसे सेट करने का उदाहरण दिया गया है:

 [[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: तरीके का इस्तेमाल करें.
  • अलग-अलग थ्रेड पर GANTracker के तरीकों को कॉल करने से, SQLite की गड़बड़ियां हो सकती हैं. यह पक्का करें कि सभी कॉल एक ही थ्रेड से किए जाएं.
  • अभियानों की ट्रैकिंग

    सामान्य कैंपेन ट्रैकिंग

    iOS के लिए Google Analytics SDK के वर्शन 1.3 की मदद से, अब कैंपेन के रेफ़रल ट्रैक किए जा सकते हैं. उदाहरण के लिए, अगर आपका ऐप्लिकेशन कस्टम यूआरएल स्कीम लागू करता है, तो कैंपेन क्वेरी पैरामीटर वाला यूआरएल बनाया जा सकता है. किसी ऐसे यूआरएल की वजह से जब आपका ऐप्लिकेशन लॉन्च होता है, तो क्वेरी पैरामीटर को फिर से हासिल किया जा सकता है. साथ ही, उन्हें setreferrer में पास किया जा सकता है, ताकि वह जानकारी Google Analytics में सेव हो जाए.

    कैंपेन की रेफ़रल जानकारी सेट करने के लिए, setReferrer तरीके का इस्तेमाल इस तरह करें:

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

    इस सुविधा का इस्तेमाल करने की दो पाबंदियां हैं. सबसे पहले, setReferrer को कॉल करने से पहले आपको startTrackerWithAccountID को कॉल करना होगा. आपको ऐसा इसलिए करना होगा, क्योंकि startTrackerWithAccountID को कॉल करने से पहले, Google Analytics में इस्तेमाल किए जाने वाले SQLite डेटाबेस को सेट अप नहीं किया जाता और setReferrer को उस डेटाबेस की ज़रूरत होती है. अगर आपने startTrackerWithAccountID को कॉल नहीं किया है, तो आपको गड़बड़ी का मैसेज दिखेगा.

    दूसरी पाबंदी यह है कि setReferrer में दी जाने वाली रेफ़रल स्ट्रिंग को किसी खास फ़ॉर्मैट का पालन करना होगा. यह यूआरएल पैरामीटर के सेट का रूप होना चाहिए और इसमें कम से कम gclid पैरामीटर या utm_campaign, utm_medium, और utm_source में से हर एक में एक gclid पैरामीटर शामिल होना चाहिए. बाद वाले मामले में, इसमें 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 में पास किया जाता है, तो रेफ़रर की जानकारी नहीं बदलेगी और आपको 'गलत' की रिटर्न वैल्यू मिलेगी. सही वैल्यू से पता चलता है कि रेफ़रर को अपडेट किया गया है और उसे आने वाले समय में होने वाले हर हिट में जोड़ा जाएगा. आपको गड़बड़ी का मैसेज भी दिखेगा. इसकी जांच करके, यह पता लगाया जा सकता है कि कॉल पूरा न होने पर क्या गड़बड़ी हुई.

    यह भी ध्यान रखें कि जब setReferrer को कॉल किया जाता है और यह 'सही' दिखाता है, तो एक नया सेशन शुरू हो जाएगा.

    पैरामीटर ज़रूरी है ब्यौरा उदाहरण
    utm_campaign हां कैंपेन का नाम; इसका इस्तेमाल कीवर्ड विश्लेषण के लिए किया जाता है, ताकि किसी प्रॉडक्ट के प्रमोशन या रणनीतिक कैंपेन की पहचान की जा सके utm_campaign=spring_sale
    utm_source हां कैंपेन का सोर्स; इसका इस्तेमाल सर्च इंजन, न्यूज़लेटर या अन्य सोर्स की पहचान करने के लिए किया जाता है utm_source=google
    utm_medium हां कैंपेन का मीडियम; इसका इस्तेमाल ईमेल या हर क्लिक की लागत (सीपीसी) जैसे मीडियम की पहचान करने के लिए किया जाता है utm_medium=cpc
    utm_term नहीं कैंपेन शब्द; विज्ञापनों के लिए कीवर्ड उपलब्ध कराने के लिए पेड सर्च के साथ इस्तेमाल किया जाता है utm_term=running+shoes
    utm_content नहीं कैंपेन का कॉन्टेंट; इसका इस्तेमाल A/B टेस्टिंग और कॉन्टेंट के हिसाब से टारगेट किए गए विज्ञापनों में किया जाता है, ताकि एक ही यूआरएल पर ले जाने वाले विज्ञापनों और लिंक में अंतर किया जा सके utm_content=logolink
    utm_content=textlink