مستندات فنی اتریبیوشن

راهنمای iOS برای توسعه دهندگان

متریکس
نسخه

{
title: ‘کتابخانه متریکس برای iOS’,
lang: ‘fa’,
permalink: ‘/sdk/ios’,
slug: ‘ios’,
version: ‘2.1.0’,
latest: true,
toc: true,

}


پروژه نمونه پیاده‌سازی متریکس را می‌توانید برای زبان Swift در
اینجا
و برای زبان Objective-C در
اینجا
ملاحظه نمایید.


اضافه‌کردن کتابخانه به پروژه

pod مربوط به کتابخانه متریکس را به صورت زیر به Podfile پروژه خود اضافه و دستور نصب را اجرا نمایید:

  1. pod 'Metrix/native', '2.1.0'

در صورتی که از CocoaPods در پروژه خود استفاده نمی‌کنید، می‌توانید فایل مربوط به فریمورک کتابخانه را از
اینجا
دریافت و به پروژه خود اضافه نمایید.

راه‌اندازی کتابخانه در اپلیکیشن

از عبارت زیر جهت import متریکس استفاده نمایید:

Swift

  1. import Metrix

Objective-C

  1. @import Metrix;

در کلاس AppDelegate پروژه خود و در متد didFinishLaunchingWithOptions با فراخوانی متد زیر، کتابخانه متریکس را راه‌اندازی کنید:

Swift

  1. MetrixClient.initialize(metrixAppId: "APP_ID")

Objective-C

  1. [MetrixClient initializeWithMetrixAppId:@"APP_ID"];

APP_ID: کلید اپلیکیشن شما که از پنل متریکس دریافت می‌کنید.

با این فراخوانی، کتابخانه متریکس در اپلیکیشن شما فعال و قابل استفاده خواهد بود.


امکانات و قابلیت‌ها

نشست (session)

هر تعاملی که کاربر با یک اپلیکیشن دارد، در قالب یک نشست صورت می‌گیرد. کتابخانه متریکس اطلاعات مربوط به نشست‌های مختلف کاربر در اپلیکیشن شما و بازه زمانی آنها را جمع‌آوری می‌کند و در اختیار شما می‌گذارد.

شناسه نشست

کتابخانه متریکس برای هر نشست یک شناسه منحصر به فرد تولید می‌کند که می‌توانید این شناسه را دریافت نمایید.
برای دریافت این شناسه متد زیر را فراخوانی کنید.

Swift

  1. MetrixClient.setSessionIdListener { (sessionId: String) in
  2. // your logic
  3. }

Objective-C

  1. [MetrixClient setSessionIdListener:^(NSString *sessionId) {
  2. // your logic
  3. }];

شماره نشست جاری

با استفاده از متد زیر می‌توانید از شماره نشست جاری کاربر در تمام مدت استفاده خود از اپلیکیشن شما اطلاع پیدا کنید:

Swift

  1. MetrixClient.setSessionNumberListener { (sessionNum: Int) in
  2. // your logic
  3. }

Objective-C

  1. [MetrixClient setSessionNumberListener:^(NSInteger sessionNumber) {
  2. // your logic
  3. }];

رویداد (event)

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

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

  • سفارشی (custom): وابسته به منطق اپلیکیشن شما و تعاملی که کاربر با اپلیکیشن شما دارد می‌توانید رویدادهای سفارشی خود را در قالبی که در ادامه شرح داده خواهد شد بسازید و ارسال کنید.
  • درآمدی (revenue): نوع خاصی از رویدادهای سفارشی قابل تعریف است که مربوط به میزان درآمد کسب شده در اپلیکیشن شما می‌باشد و دارای یک مقدار قابل اندازه‌گیری از جنس درآمد مالی است.

ساختن یک رویداد سفارشی

برای ساخت یک رویداد سفارشی در ابتدا در پنل خود از قسمت مدیریت رویدادها، رویداد موردنظر خود را ثبت کنید و نامک (slug) آن را به عنوان نام رویداد در اپلیکیشن استفاده کنید.

وقوع رویداد به دو صورت می‌تواند ثبت شود:

۱. ثبت رویداد تنها با استفاده از نامک آن که در پنل معرفی شده است:

Swift

  1. MetrixClient.newEvent(slug: "event-slug")

Objective-C

  1. [MetrixClient newEventWithSlug: @"event-slug"];

۲. ثبت رویداد به همراه تعداد دلخواه attribute مربوط به آن:

به عنوان مثال فرض کنید در یک برنامه خرید آنلاین می‌خواهید یک رویداد سفارشی بسازید:

Swift

  1. let myAttributes = [
  2. "first_name": "Mohammad",
  3. "last_name": "Bagheri",
  4. "manufacturer": "Nike",
  5. "product_name": "shirt",
  6. "type": "sport",
  7. "size": "large"]
  8. MetrixClient.newEvent(slug: "jqgjh", attributes: myAttributes)

Objective-C

  1. NSMutableDictionary *myAttributes = [[NSMutableDictionary alloc] init];
  2. myAttributes[@"first_name"] = @"Ali";
  3. myAttributes[@"last_name"] = @"Bagheri";
  4. myAttributes[@"manufacturer"] = @"Nike";
  5. myAttributes[@"product_name"] = @"shirt";
  6. myAttributes[@"type"] = @"sport";
  7. myAttributes[@"size"] = @"large";
  8. [MetrixClient newEventWithSlug: @"jqgjh" attributes:myAttributes];

ورودی‌های متد newEvent در این حالت، بدین شرح هستند:

  • ورودی اول: نامک رویداد مورد نظر شما که در پنل متریکس معرفی شده است.
  • ورودی دوم: یک Dictionary که ویژگی‌های یک رویداد را مشخص می‌کند.

توجه: هر رویداد می‌تواند حداکثر ۵۰ attribute داشته باشد که طول key و value آن حداکثر ۵۱۲ بایت می‌باشد.

مشخص کردن Attribute‌های پیش‌فرض همه‌ی رویدادها

با استفاده از این تابع می‌توانید به تعداد دلخواه Attribute به همه‌ی رویدادهای خود اضافه کنید:

Swift

  1. let attributes = ["manufacturer": "Nike"]
  2. MetrixClient.addUserAttributes(userAttrs: attributes)

Objective-C

  1. NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init];
  2. attributes[@"manufacturer"] = @"Nike";
  3. [MetrixClient addUserAttributesWithUserAttrs: attributes];

توجه: هر رویداد می‌تواند حداکثر ۵۰ attribute داشته باشد که طول key و value آن حداکثر ۵۱۲ بایت می‌باشد.

ساختن رویداد درآمدی

با استفاده از این تابع می‌توانید یک رویداد درآمدی بسازید. برای این کار در ابتدا در پنل خود از قسمت مدیریت رویدادها، رویداد موردنظر خود را ثبت کنید و نامک (slug) آن را به عنوان نام رویداد در اپلیکیشن استفاده کنید.

Swift

  1. MetrixClient.newRevenue(slug: "my_event_slug", revenue: 12000, currency: .IRR, orderId: "myOrderId")

Objective-C

  1. [MetrixClient newRevenueWithSlug: @"my_event_slug" revenue: 12000 currency: RevenueCurrencyIRR orderId: @"myOrderId"];

ورودی‌های متد newRevenue بدین شرح هستند:

  • ورودی اول: نامک رویداد مورد نظر شما که در پنل متریکس معرفی شده است.
  • ورودی دوم: یک مقدار عددی است که همان میزان درآمد است.
  • ورودی سوم: واحد پول مورد استفاده است و می‌تواند سه مقدار .IRR (پیش‌فرض) یا .USD و یا .EUR را داشته باشد.
  • ورودی چهارم: این ورودی دلخواه است و شماره سفارش را تعیین می‌کند.

دریافت شناسه دستگاه‌های متریکس

برای هر دستگاهی که اپلیکیشن شما را نصب کند، متریکس یک شناسه منحصر به فرد تولید می‌کند که شما می‌توانید این شناسه را به محض شناسایی دریافت نمایید.
برای دسترسی به این شناسه از طریق متد زیر می‌توانید آن را دریافت کنید

Swift

  1. MetrixClient.setUserIdListener { (userId: String) in
  2. // your logic
  3. }

Objective-C

  1. [MetrixClient setUserIdListener:^(NSString *userId) {
  2. // your logic
  3. }];

نکته: شناسه متریکس زمانی در اختیار شما قرار می‌گیرید که دستگاه توسط سرویس متریکس شناسایی شده باشد.

امضاء کتابخانه

شما می‌توانید با فعال‌سازی قابلیت sdk signature در پنل خود و دریافت شناسه‌ مخصوص خود، امنیت ارتباط و انتقال اطلاعات را افزایش داده و از سلامت آمار اپلیکیشن خود اطمینان بیشتری حاصل کنید.

در صورتی که sdk signature را در پنل خود فعال کرده‌اید و به app secret ها دسترسی دارید نیاز است که متد زیر را فراخوانی کنید:

Swift

  1. MetrixClient.setAppSecret(secretId: secretId, info1: info1, info2: info2, info3: info3, info4: info4)

Objective-C

  1. [MetrixClient setAppSecretWithSecretId:secretId info1:info1 info2:info2 info3:info3 info4:info4];

توجه: این فراخوانی باید در متد didFinishLaunchingWithOptions در کلاس AppDelegate برنامه صورت گیرد.

دریافت اطلاعات کمپین

با استفاده از متد زیر، می‌توانید اطلاعات کمپین تبلیغاتی که در ترکر خود در پنل قرار داده‌اید را دریافت کنید.

Swift

  1. MetrixClient.setOnAttributionChangedListener { (data: AttributionData) in
  2. print("Attribution status: \(data.attributionStatus.rawValue)")
  3. // TODO
  4. }

Objective-C

  1. [MetrixClient setOnAttributionChangedListener:^(AttributionData *data) {
  2. printf("AttributionStatus: %s", [[data attributionStatusRaw] UTF8String]);
  3. // TODO
  4. }];

مدل AttributionData اطلاعات زیر را در اختیار شما قرار می‌دهد.

  1. attributionData.acquisitionAd // نام تبلیغ
  2. attributionData.acquisitionAdSet // گروه تبلیغاتی
  3. attributionData.acquisitionCampaign // کمپین تبلیغاتی
  4. attributionData.acquisitionSource // شبکه تبلیغاتی
  5. attributionData.acquisitionSubId // زیرگروه تبلیغاتی
  6. attributionData.attributionStatus // وضعیت کاربر در کمپین را مشخص می‌کند

مقدار AttributionStatus شامل یکی از موارد زیر است:

  • ATTRIBUTED اتربیوت شده
  • NOT_ATTRIBUTED_YET هنوز اتربیوت نشده
  • ATTRIBUTION_NOT_NEEDED نیاز به اتربیوت ندارد
  • UNKNOWN حالت ناشناخته

مشخص کردن tracker پیش‌فرض

شما می‌توانید برای کاربرانی که نصب آنها از یک کلیک ناشی نمی‌شود ترکر داشته باشید، به این منظور باید شناسه مربوط به ترکر خود را که در پنل تعریف کرده‌اید با فراخوانی متد زیر در اپلیکیشن قرار دهید.

توجه: تحت هیچ شرایطی اپلیکیشن خود را با ترکر پیش‌فرض روی استور منتشر نکنید. در این صورت همه نصب‌های ارگانیک شما نیز در متریکس روی ترکر مذکور شمرده می‌شود.

Swift

  1. MetrixClient.setDefaultTracker(trackerToken: "tracker-token")

Objective-C

  1. [MetrixClient setDefaultTrackerWithTrackerToken: @"tracker-token"];

توجه: این فراخوانی باید در متد didFinishLaunchingWithOptions در کلاس AppDelegate برنامه صورت گیرد.

تفکیک نصب‌های organic بر‌اساس استور‌های مختلف

اگر شما می‌خواهید اپلیکیشن خود را در استور های مختلف مانند منتشر کنید، می‌توانید مشاهده کنید که کاربر از کدام استور ( مثلا اپ‌استور، سیبچه و… ) اپلیکیشن را نصب کرده و منبع نصب‌های ارگانیک خود را شناسایی کنید.

برای این منظور، نیاز است که برای اپلیکیشن خود جهت انتشار در استورهای مختلف، بیلدهای جداگانه بسازید و در هر بیلد با فراخوانی متد زیر نام استور مربوط را تنظیم نمایید.

Swift

  1. MetrixClient.setStore(storeName: "store name")

Objective-C

  1. [MetrixClient setStoreWithStoreName:@"store name"];

توجه: این فراخوانی باید در متد didFinishLaunchingWithOptions در کلاس AppDelegate برنامه صورت گیرد.