Google Analytics SDK برای iOS نسخه 1 (قدیمی)

Google Analytics برای برنامه های موبایل SDK برای iOS پیاده سازی Google Analytics را در برنامه های مبتنی بر iOS آسان می کند. این سند نحوه ادغام SDK با برنامه های خود را شرح می دهد.

نمای کلی SDK

این SDK از یک مدل ردیابی استفاده می کند که برای ردیابی کاربران به وب سایت های سنتی و تعامل با ویجت ها در صفحات وب سنتی طراحی شده است. به همین دلیل، عبارات استفاده شده در زیر منعکس کننده مدل مرسوم ردیابی وب سایت هستند و برای ردیابی برنامه های تلفن همراه نگاشت می شوند. برای درک نحوه عملکرد این SDK باید با ردیابی Analytics آشنا باشید.

از SDK ردیابی تلفن همراه برای ردیابی برنامه های تلفن خود با انواع تعامل Analytics زیر استفاده کنید:

ردیابی مشاهده صفحه
نمایش صفحه یک ابزار استاندارد برای اندازه گیری حجم ترافیک به یک وب سایت سنتی است. از آنجایی که برنامه های تلفن همراه حاوی صفحات HTML نیستند، باید تصمیم بگیرید که چه زمانی (و چند وقت یکبار) درخواست مشاهده صفحه را راه اندازی کنید. همچنین، از آنجایی که درخواست‌های مشاهده صفحه برای گزارش ساختارهای دایرکتوری طراحی شده‌اند، باید نام‌های توصیفی برای درخواست‌ها ارائه کنید تا از نام‌گذاری مسیر صفحه در گزارش‌های محتوا در Analytics استفاده کنید. نام‌هایی که انتخاب می‌کنید در گزارش‌های Analytics شما به‌عنوان مسیرهای صفحه پر می‌شوند، حتی اگر در واقع صفحات HTML نیستند، اما می‌توانید با ساختاردهی مسیرها برای ارائه گروه‌بندی‌های اضافی برای تماس‌های خود، از این به نفع خود استفاده کنید.
ردیابی رویداد
در Analytics، رویدادها برای ردیابی تعامل کاربر با عناصر صفحه وب به طور متمایز از درخواست‌های مشاهده صفحه طراحی شده‌اند. می توانید از ویژگی ردیابی رویداد گوگل آنالیتیکس برای برقراری تماس های اضافی استفاده کنید که در بخش ردیابی رویداد رابط گزارش آنالیتیکس گزارش می شود. رویدادها با استفاده از دسته‌ها گروه‌بندی می‌شوند و ممکن است از برچسب‌های هر رویداد نیز استفاده کنند که انعطاف‌پذیری در گزارش‌دهی را فراهم می‌کند. به عنوان مثال، یک برنامه چندرسانه‌ای می‌تواند عملکردهای پخش/توقف/مکث برای دسته ویدیوی خود داشته باشد و برای هر نام ویدیو یک برچسب اختصاص دهد. سپس گزارش‌های Google Analytics رویدادها را برای همه رویدادهای برچسب‌گذاری شده با دسته ویدیو جمع‌آوری می‌کند. برای اطلاعات بیشتر در مورد ردیابی رویداد، به راهنمای ردیابی رویداد مراجعه کنید
ردیابی تجارت الکترونیک
از ویژگی ردیابی تجارت الکترونیک برای ردیابی تراکنش های سبد خرید و خریدهای درون برنامه ای استفاده کنید. برای ردیابی تراکنش، روش addTransaction را برای ایجاد یک تراکنش کلی و همچنین روش addItem برای هر محصول در سبد خرید فراخوانی کنید. پس از جمع‌آوری، داده‌ها را می‌توان در بخش گزارش‌دهی تجارت الکترونیک در رابط Google Analytics مشاهده کرد. برای اطلاعات بیشتر در مورد ردیابی تجارت الکترونیک، به راهنمای ردیابی تجارت الکترونیک مراجعه کنید.
متغیرهای سفارشی
متغیرهای سفارشی تگ‌های جفت نام-مقدار هستند که می‌توانید در کد رهگیری خود وارد کنید تا ردیابی Google Analytics را اصلاح کنید. برای اطلاعات بیشتر در مورد نحوه استفاده از متغیرهای سفارشی، راهنمای متغیر سفارشی را بخوانید.
پشتیبانی NoThumb
SDK برای آیفون اکنون با نسخه NoThumb کتابخانه و همچنین نسخه استاندارد Thumb ارائه می شود. برای استفاده از نسخه NoThumb کتابخانه، از فایل libGoogleAnalytics_NoThumb.a به جای فایل libGoogleAnalytics.a استفاده کنید.

شروع شدن

الزامات

برای ادغام قابلیت‌های ردیابی Google Analytics با برنامه iOS خود، به موارد زیر نیاز دارید:

برپایی

  • Xcode را باز کنید و یک پروژه سیستم عامل آیفون جدید ایجاد کنید.
  • GANTracker.h و libGoogleAnalytics.a را از فهرست راهنمای کتابخانه SDK به پروژه جدید خود بکشید.
  • چارچوب CFNetwork در پروژه خود قرار دهید و با libsqlite3.0.dylib پیوند دهید.

Google Analytics for Mobile Apps SDK باید با هر iPhone یا iPod Touch دارای iOS 2.0 یا بالاتر کار کند -- این کتابخانه با تمام نسخه های iOS که از برنامه های بومی پشتیبانی می کنند سازگار است.

یک برنامه مثال همراه با SDK ارائه می شود که نشان می دهد در صورت راه اندازی موفقیت آمیز پروژه شما چگونه باید باشد. با خیال راحت از آن به عنوان یک الگو برای برنامه های یکپارچه با Analytics خود استفاده کنید.

با استفاده از SDK

قبل از شروع استفاده از SDK، ابتدا باید یک حساب رایگان در www.google.com/analytics ایجاد کنید و یک ویژگی وب جدید در آن حساب با استفاده از یک URL وب سایت جعلی اما توصیفی ایجاد کنید (به عنوان مثال http://mymobileapp.mywebsite.com ) . پس از ایجاد ویژگی، یک کپی از شناسه ویژگی وب که برای ویژگی جدید ایجاد شده است را یادداشت کنید یا نگه دارید.

شما باید به کاربران خود، چه در خود برنامه یا در شرایط خدمات خود، نشان دهید که این حق را برای خود محفوظ می دارید که به صورت ناشناس فعالیت یک کاربر را در برنامه خود پیگیری و گزارش دهید. استفاده شما از Google Analytics SDK علاوه بر این، تحت شرایط خدمات Google Analytics است که هنگام ثبت نام برای یک حساب، باید با آن موافقت کنید.

نمونه ها و بهترین روش ها

می‌توانید کد نمونه و بهترین روش‌ها را در code.google.com تحت پروژه analytics-api-samples بیابید.

کتابخانه EasyTracker

یک کتابخانه EasyTracker در دسترس است. این برنامه ردیابی سطح برنامه و UIViewController را تقریباً بدون هیچ تلاشی برای توسعه فراهم می کند. می توانید آن را در بخش دانلودهای پروژه analytics-api-samples پیدا کنید.

راه اندازی ردیاب

ردیاب را با فراخوانی متد startTrackerWithAccountID روی ردیاب تکی که از طریق [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 را روی YES تنظیم کنید. این به Google Analytics می‌گوید که اطلاعات ارسال شده توسط SDK را با حذف آخرین اکتت آدرس IP قبل از ذخیره‌سازی آن، ناشناس کند.

در اینجا مثالی از نحوه تنظیم آن آورده شده است:

 [[GANTracker sharedTracker] setAnonymizeIp:YES];

شما می توانید anonymizeIp را در هر زمان تنظیم کنید.

تنظیم نرخ نمونه

شما می توانید نرخ نمونه را با استفاده از ویژگی sampleRate تنظیم کنید. اگر برنامه شما ترافیک Analytics زیادی ایجاد می کند، تنظیم نرخ نمونه ممکن است مانع از تولید گزارش های شما با استفاده از داده های نمونه برداری شود. نمونه‌گیری به‌طور مداوم در بین کاربران منحصر به فرد انجام می‌شود، بنابراین وقتی نرخ نمونه فعال است، یکپارچگی در روند و گزارش‌دهی وجود دارد. پارامتر sampleRate یک عدد NSUI است و می‌تواند ارزشی بین 0 تا 100 داشته باشد. در اینجا مثالی آورده شده است که sampleRate را به 95٪ کاهش می دهد:

 [[GANTracker sharedTracker] setSampleRate:95];

نرخ 0 تولید بازدید را خاموش می کند، در حالی که نرخ 100 همه داده ها را به Google Analytics ارسال می کند. بهتر است قبل از فراخوانی هر روش ردیابی، sampleRate تنظیم کنید.

می‌توانید از راهنمای مفاهیم نمونه‌گیری اطلاعات بیشتری کسب کنید.

دسته بندی بازدیدها

برای صرفه جویی در هزینه اتصال و شارژ باتری، توصیه می کنیم درخواست های ردیابی خود را دسته بندی کنید. شما می توانید هر زمان که بخواهید یک درخواست دسته ای dispatch کنید، روی شی ردیابی تماس بگیرید، و می توانید این کار را به صورت دستی یا در فواصل زمانی مشخص انجام دهید.

مشکلات شناخته شده

  • ارجاعات/منابع ترافیک : در حال حاضر امکان ردیابی منبع کمپین/ارجاع دانلود برنامه در دستگاه iOS وجود ندارد.
  • ما به شدت از dispatch تماس در شرایط زیر جلوگیری می کنیم:
    • در متد applicationWillTerminate
    • در applicationDidEnterBackground
    • قبل از تماس با stopTracker
    انجام این کار می تواند منجر به ارسال دوبار بازدید شود. در عوض، از متد dispatchSynchronous: استفاده کنید.
  • فراخوانی متدهای GANTracker در رشته های مختلف می تواند منجر به خطاهای مبهم 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 باید از قالب خاصی پیروی کند. این باید به شکل مجموعه‌ای از پارامترهای URL باشد و باید حداقل یک پارامتر 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 یک جلسه جدید شروع می شود و درست برمی گردد.

    پارامتر ضروری شرح مثال ها)
    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