کتابخانه متریکس برای React-Native
- اضافه کردن پکیج متریکس به پروژه
- راهاندازی کتابخانه در اپلیکیشن
- راهاندازی برای اپلیکیشن Android
- راهاندازی برای اپلیکیشن iOS
- امکانات و قابلیتها
- نشست (session)
- شناسه نشست
- شماره نشست جاری
- رویداد (event)
- ساختن یک رویداد سفارشی
- مشخص کردن Attributeهای پیشفرض همهی رویدادها
- ساختن رویداد درآمدی
- دریافت شناسه دستگاههای متریکس
- شمارش پاک کردن اپلیکیشن Android
- دریافت اطلاعات کمپین
- Deep Linking در اپلیکیشن Android
- سناریو استاندارد
- سناریو deferred
- مشخص کردن tracker پیشفرض
- فعالسازی برای اپلیکیشن Android
- فعالسازی برای اپلیکیشن iOS
- تفکیک نصبهای organic براساس استورهای مختلف
- فعالسازی برای اپلیکیشن Android
- فعالسازی برای اپلیکیشن iOS
- پیادهسازی سرویس پوش نوتیفیکیشن
پروژه نمونه پیادهسازی متریکس در react-native را میتوانید در اینجا ملاحظه نمایید.
به محل پروژه react-native خود بروید و دستور زیر را وارد کنید:
npm install @metrixorg/react-native-plugin
بسته به پلتفرم هدف برنامه خود مراحل زیر را جهت فعالسازی انجام دهید:
۱. شناسه اپلیکیشن خود را به صورت meta-data
در فایل AndroidManifest.xml
اپلیکیشن خود قرار دهید:
<manifest>
...
<application>
...
<!-- خطوط زیر را اضافه کنید و کلید اپلیکیشن خود را جایگزین نمایید -->
<meta-data
android:name="ir.metrix.APPLICATION_ID"
android:value="YOUR_APP_ID" />
</application>
</manifest>
فایل AndroidManifest.xml
در مسیر android -> app -> src -> main
قرار دارد.
YOUR_APP_ID
: کلید اپلیکیشن شما که از پنل متریکس دریافت میکنید.
۲. پس از فعالسازی
sdk signature
در پنل خود، از ستون
Encoded
شناسه مربوط به
signature
را دریافت و به شکل زیر در فایل
AndroidManifest.xml
برنامه خود قرار دهید:
<manifest>
...
<application>
...
<!-- خطوط زیر را اضافه کنید و شناسه را جایگزین نمایید -->
<meta-data
android:name="ir.metrix.SIGNATURE"
android:value="YOUR_SIGNATURE" />
</application>
</manifest>
۱. جهت دریافت وابستگیهای متریکس به مسیر اپلیکیشن iOS در پروژه خود رفته و دستور نصب پاد را اجرا نمایید:
cd ios
pod install
۲. در constructor کلاس اصلی برنامه خود، مطابق قطعه کد زیر، با فراخوانی متد initialize
، کتابخانه متریکس را راهاندازی کنید:
Metrix.initialize("YOUR_APP_ID");
YOUR_APP_ID
: کلید اپلیکیشن شما که از پنل متریکس دریافت میکنید.
۳.در صورتی که sdk signature را در پنل خود فعال کردهاید و به app secret ها دسترسی دارید نیاز است که متد زیر را فراخوانی کنید:
Metrix.setAppSecret(secretId, info1, info2, info3, info4);
هر تعاملی که کاربر با یک اپلیکیشن دارد، در قالب یک نشست صورت میگیرد. کتابخانه متریکس اطلاعات مربوط به نشستهای مختلف کاربر در اپلیکیشن شما و بازه زمانی آنها را جمعآوری میکند و در اختیار شما میگذارد.
کتابخانه متریکس برای هر نشست یک شناسه منحصر به فرد تولید میکند که میتوانید این شناسه را دریافت نمایید. برای دریافت این شناسه متد زیر را فراخوانی کنید.
Metrix.setSessionIdListener(sessionId => {
// TODO
});
با استفاده از متد زیر میتوانید از شماره نشست جاری کاربر در تمام مدت استفاده خود از اپلیکیشن شما اطلاع پیدا کنید:
Metrix.setSessionNumberListener(sessionNum => {
// TODO
});
هرگونه تعاملی که کاربر با اپلیکیشن شما دارد میتواند به عنوان یک رویداد در پنل و اپلیکیشن شما تعریف شود تا کتابخانه متریکس اطلاعات آماری مربوط به آن را در اختیار شما قرار دهد.
در کتابخانه متریکس دو نوع رویداد قابل تعریف است:
- سفارشی (custom): وابسته به منطق اپلیکیشن شما و تعاملی که کاربر با اپلیکیشن شما دارد میتوانید رویدادهای سفارشی خود را در قالبی که در ادامه شرح داده خواهد شد بسازید و ارسال کنید.
- درآمدی (revenue): نوع خاصی از رویدادهای سفارشی قابل تعریف است که مربوط به میزان درآمد کسب شده در اپلیکیشن شما میباشد و دارای یک مقدار قابل اندازهگیری از جنس درآمد مالی است.
برای ساخت یک رویداد سفارشی در ابتدا در پنل خود از قسمت مدیریت رویدادها، رویداد موردنظر خود را ثبت کنید و نامک (slug) آن را به عنوان نام رویداد در اپلیکیشن استفاده کنید.
وقوع رویداد به دو صورت میتواند ثبت شود:
۱. ثبت رویداد تنها با استفاده از نامک آن که در پنل معرفی شده است:
Metrix.newEvent("my_event_slug");
۲. ثبت رویداد به همراه تعداد دلخواه attribute مربوط به آن:
به عنوان مثال فرض کنید در یک برنامه خرید آنلاین میخواهید یک رویداد سفارشی بسازید:
var attributes = {};
attributes["first_name"] = "Ali";
attributes["last_name"] = "Bagheri";
attributes["manufacturer"] = "Nike";
attributes["product_name"] = "shirt";
attributes["type"] = "sport";
attributes["size"] = "large";
Metrix.newEvent("purchase_event_slug", attributes);
ورودیهای متد newEvent در این حالت، بدین شرح هستند:
- ورودی اول: نامک رویداد مورد نظر شما که در پنل متریکس معرفی شده است.
- ورودی دوم: یک
Map<String, String>
که ویژگیهای یک رویداد را مشخص میکند.
با استفاده از این تابع میتوانید به تعداد دلخواه Attribute
به همهی رویدادهای خود اضافه کنید:
var attributes = {};
attributes["manufacturer"] = "Nike";
Metrix.setUserAttributes(attributes);
با استفاده از توابع زیر میتوانید Attribute
های از پیش تعیین شده را به کاربر اختصاص دهید:
Metrix.setUserCustomId("userId"); // call when user tries to login in your system and set userId value that user already knows in your system
Metrix.deleteUserCustomId(); // call when your user goes to logout in your system
Metrix.setUserFirstName("userFirstName");
Metrix.setUserLastName("userLastName");
Metrix.setUserPhoneNumber("phoneNumber");
Metrix.setUserHashedPhoneNumber("hashedPhoneNumber");
Metrix.setUserEmail("email");
Metrix.setUserHashedEmail("hashedEmail");
Metrix.setUserCountry("country");
Metrix.setUserCity("city");
Metrix.setUserRegion("region");
Metrix.setUserLocality("locality");
Metrix.setUserGender(gender); // gender value could be "MALE" , "FEMALE" or "OTHER"
Metrix.setUserBirthday(birthday); // birthday value type should be 'Long' timestamp
Metrix.setUserFcmToken("fcmToken");
Metrix.userChannelEnabled(channel); // channel value could be "SMS", "PUSH" or "EMAIL"
Metrix.userChannelDisabled(channel); // channel value could be "SMS", "PUSH" or "EMAIL"
توجه: هر رویداد میتواند حداکثر ۵۰ attribute داشته باشد که طول key و value آن حداکثر ۵۱۲ بایت میباشد.
با استفاده از این تابع میتوانید یک رویداد درآمدی بسازید. برای این کار در ابتدا در پنل خود از قسمت مدیریت رویدادها، رویداد موردنظر خود را ثبت کنید و نامک (slug) آن را به عنوان نام رویداد در اپلیکیشن استفاده کنید.
Metrix.newRevenue("my_event_slug", 12000, 0);
ورودیهای متد newRevenue بدین شرح هستند:
- ورودی اول: نامک رویداد مورد نظر شما که در پنل متریکس معرفی شده است.
- ورودی دوم: یک مقدار عددی است که همان میزان درآمد است.
- ورودی سوم: واحد پول مورد استفاده را تعیین میکند و میتواند سه مقدار 0 (ریال) (پیشفرض) یا 1 (دلار) و یا 3 (یورو) را داشته باشد.