Skip to content

Commit eae7646

Browse files
committed
add referrer and google play service
1 parent 5bcd5d1 commit eae7646

File tree

4 files changed

+65
-19
lines changed

4 files changed

+65
-19
lines changed

Assets/Plugins/Android/AndroidManifest.xml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,15 @@
1313
</intent-filter>
1414
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
1515
</activity>
16+
<receiver
17+
android:name="ir.metrix.sdk.MetrixReferrerReceiver"
18+
android:permission="android.permission.INSTALL_PACKAGES"
19+
android:exported="true" >
20+
<intent-filter>
21+
<action android:name="com.android.vending.INSTALL_REFERRER" />
22+
</intent-filter>
23+
</receiver>
1624

1725
</application>
1826
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26" />
19-
</manifest>
27+
</manifest>

Assets/Plugins/Android/mainTemplate.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ dependencies {
3131
implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
3232
implementation 'com.squareup.retrofit2:converter-scalars:2.5.0'
3333
implementation 'com.android.installreferrer:installreferrer:1.0'
34+
implementation 'com.google.android.gms:play-services-analytics:16.0.7'
35+
3436
**DEPS**}
3537

3638
android {

Assets/Plugins/Android/proguard-user.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,7 @@
5858

5959
#referral
6060
-keep public class com.android.installreferrer.** { *; }
61+
62+
#gms
63+
-keep class com.google.android.gms.** { *; }
64+

README.md

Lines changed: 50 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
1-
21
## MetrixSDK Unity Doc
32

43
<div dir="rtl">
54

65
<h2>فهرست</h2>
76
<a href=#project_setup>۱. تنظیمات اولیه در پروژه</a><br>
8-
<a href=#integration>۲. راه‌اندازی و پیاده‌سازی</a><br>
9-
<a style="padding-right:2em" href=#application_setup>۲.۱. تنظیمات اولیه در اپلیکیشن</a><br>
10-
<a href=#methods>۳. امکانات کتابخانه متریکس</a><br>
11-
<a style="padding-right:2em" href=#session_event_description>۳.۱. توضیح مفاهیم رویداد (event) و نشست (session)</a><br>
12-
<a style="padding-right:2em" href=#enableLocationListening>۳.۲. ثبت اطلاعات مربوط به مکان</a><br>
13-
<a style="padding-right:2em" href=#setEventUploadThreshold>۳.۳. سقف تعداد رویدادهای ارسالی</a><br>
14-
<a style="padding-right:2em" href=#setEventUploadMaxBatchSize>۳.۴. حداکثر تعداد رویدادی ارسالی هر درخواست</a><br>
15-
<a style="padding-right:2em" href=#setEventMaxCount>۳.۵. تعداد حداکثر ذخیره رویداد در مخزن کتابخانه</a><br>
16-
<a style="padding-right:2em" href=#setEventUploadPeriodMillis>۳.۶. بازه زمانی ارسال رویدادها</a><br>
17-
<a style="padding-right:2em" href=#setSessionTimeoutMillis>۳.۷. بازه زمانی دلخواه برای نشست‌ها</a><br>
18-
<a style="padding-right:2em" href=#enableLogging>۳.۸. مدیریت لاگ‌ها</a><br>
19-
<a style="padding-right:2em" href=#setLogLevel>۳.۹. تعیین LogLevel</a><br>
20-
<a style="padding-right:2em" href=#setFlushEventsOnClose>۳.۱۰. ارسال همه‌ی رویدادها</a><br>
21-
<a style="padding-right:2em" href=#getSessionNum>۳.۱۱. شماره نشست جاری</a><br>
22-
<a style="padding-right:2em" href=#newEvent>۳.۱۲. رویداد سفارشی</a><br>
23-
<a style="padding-right:2em" href=#setScreenFlowsAutoFill>۳.۱۳. فعال کردن فرآیند نگهداری حرکت کاربر بین صفحات مختلف در اپلیکیشن</a><br>
24-
<a style="padding-right:2em" href=#setDefaultTracker>۳.۱۴. مشخص کردن Pre-installed Tracker</a><br>
7+
<a href=#install_referrer>۲. دریافت اطلاعات Install Referrer</a><br>
8+
<a href=#google_play_store_intent>۲.۱. تنظیمات Google Play Store intent</a><br>
9+
<a href=#integration>۳. راه‌اندازی و پیاده‌سازی</a><br>
10+
<a style="padding-right:2em" href=#application_setup>۳.۱. تنظیمات اولیه در اپلیکیشن</a><br>
11+
<a href=#methods>۴. امکانات کتابخانه متریکس</a><br>
12+
<a style="padding-right:2em" href=#session_event_description>۴.۱. توضیح مفاهیم رویداد (event) و نشست (session)</a><br>
13+
<a style="padding-right:2em" href=#enableLocationListening>۴.۲. ثبت اطلاعات مربوط به مکان</a><br>
14+
<a style="padding-right:2em" href=#setEventUploadThreshold>۴.۳. سقف تعداد رویدادهای ارسالی</a><br>
15+
<a style="padding-right:2em" href=#setEventUploadMaxBatchSize>۴.۴. حداکثر تعداد رویدادی ارسالی هر درخواست</a><br>
16+
<a style="padding-right:2em" href=#setEventMaxCount>۴.۵. تعداد حداکثر ذخیره رویداد در مخزن کتابخانه</a><br>
17+
<a style="padding-right:2em" href=#setEventUploadPeriodMillis>۴.۶. بازه زمانی ارسال رویدادها</a><br>
18+
<a style="padding-right:2em" href=#setSessionTimeoutMillis>۴.۷. بازه زمانی دلخواه برای نشست‌ها</a><br>
19+
<a style="padding-right:2em" href=#enableLogging>۴.۸. مدیریت لاگ‌ها</a><br>
20+
<a style="padding-right:2em" href=#setLogLevel>۴.۹. تعیین LogLevel</a><br>
21+
<a style="padding-right:2em" href=#setFlushEventsOnClose>۴.۱۰. ارسال همه‌ی رویدادها</a><br>
22+
<a style="padding-right:2em" href=#getSessionNum>۴.۱۱. شماره نشست جاری</a><br>
23+
<a style="padding-right:2em" href=#newEvent>۴.۱۲. رویداد سفارشی</a><br>
24+
<a style="padding-right:2em" href=#setScreenFlowsAutoFill>۴.۱۳. فعال کردن فرآیند نگهداری حرکت کاربر بین صفحات مختلف در اپلیکیشن</a><br>
25+
<a style="padding-right:2em" href=#setDefaultTracker>۴.۱۴. مشخص کردن Pre-installed Tracker</a><br>
2526

2627

2728

@@ -50,6 +51,8 @@
5051

5152
implementation 'com.squareup.retrofit2:converter-scalars:2.5.0'
5253

54+
implementation 'com.google.android.gms:play-services-analytics:16.0.7'
55+
5356

5457
</div>
5558

@@ -127,6 +130,9 @@
127130

128131
#referral
129132
-keep public class com.android.installreferrer.** { *; }
133+
134+
#gms
135+
-keep class com.google.android.gms.** { *; }
130136

131137
</div>
132138

@@ -142,6 +148,32 @@
142148

143149
(دو permission دوم اختیاری است)
144150

151+
152+
153+
<h2 id=install_referrer>۲. دریافت اطلاعات Install Referrer</h2>
154+
155+
برای افزایش دقت تشخیص اتریبیوشن نصب‌های اپلیکیشن شما، متریکس نیازمند اطلاعاتی درباره `referrer` نصب اپلیکیشن است. این اطلاعات می‌تواند از طریق سرویس ارائه شده توسط کتابخانه **Google Play Referrer API** و یا دریافت **Google Play Store intent** با استفاده از یک **broadcast receiver** به دست آید.
156+
157+
**نکته مهم:** سرویس **Google Play Referrer API** به تازگی توسط گوگل و با هدف فراهم کردن دقیق یک راه امن و مطمئن برای دریافت اطلاعات `referrer` نصب ارائه شده و این قابلیت را به سرویس‌دهندگان پلتفرم‌های اتریبیوشن می‌دهد تا با تقلب click injection مبازه کنند. به همین دلیل متریکس نیز به همه توسعه‌دهندگان استفاده از این سرویس را توصیه می‌کند. در مقابل، روش **Google Play Store intent** یک مسیر با ضریب امنیت کمتر برای به‌دست آوردن اطلاعات `referrer`نصب ارائه می‌دهد که البته به صورت موازی با **Google Play Referrer API** به طور موقت پشتیبانی می‌شود،اما در آینده‌ای نزدیک منسوخ خواهد شد.
158+
159+
160+
<h3 id=google_play_store_intent> تنظیمات Google Play Store intent</h3>
161+
162+
برای دریافت intent `INSTALL_REFERRER` از Google Play باید یک `broadcast receiver` آن را دریافت کند، اگر از `broadcast receiver` سفارشی خود استفاده نمی‌کنید میتوانید با قرار دادن `receiver` زیر در تگ `application` فایل `AndroidManifest.xml` آن را دریافت کنید.
163+
<div dir="ltr">
164+
165+
<receiver
166+
android:name="ir.metrix.sdk.MetrixReferrerReceiver"
167+
android:permission="android.permission.INSTALL_PACKAGES"
168+
android:exported="true" >
169+
<intent-filter>
170+
<action android:name="com.android.vending.INSTALL_REFERRER" />
171+
</intent-filter>
172+
</receiver>
173+
174+
</div>
175+
176+
145177
<h2 id=integration>راه‌اندازی و پیاده‌سازی sdk در اپلیکیشن اندروید:</h2>
146178

147179
<h3 id=application_setup>تنظیمات اولیه در اپلیکیشن:</h3>

0 commit comments

Comments
 (0)