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 خود، به موارد زیر نیاز دارید:
- توسعهدهنده iOS SDK (نیاز به Xcode 3.1+ در حال اجرا در Mac OS X 10.5.3 و بالاتر)
- Google Analytics برای برنامه های موبایل iOS SDK
برپایی
- 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
کنید، روی شی ردیابی تماس بگیرید، و می توانید این کار را به صورت دستی یا در فواصل زمانی مشخص انجام دهید.
مشکلات شناخته شده
dispatch
تماس در شرایط زیر جلوگیری می کنیم:- در متد
applicationWillTerminate
- در
applicationDidEnterBackground
- قبل از تماس با
stopTracker
dispatchSynchronous:
استفاده کنید.ردیابی کمپین ها
پیگیری کمپین عمومی
با نسخه 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 |