شروع کار با SDK اندروید ادتریس
این راهنما مراحل اولیه پیادهسازی SDK اندروید ادتریس را پوشش میدهد: نصب SDK، پیکربندی پروژه، مقداردهی اولیه، راهاندازی Session Tracking و تأیید صحت یکپارچهسازی. در پایان، اپلیکیشن شما آماده ردیابی Install، Session و Event خواهد بود.
نوع یکپارچهسازی خود را انتخاب کنید
این صفحه مخصوص اپلیکیشنهای Native Android نوشتهشده با Java یا Kotlin است.
اگر از TWA (Trusted Web Activity) یا WebBridge (WebView) استفاده میکنید، از مرور SDK اندروید مسیر مناسب را انتخاب کنید.
۱. دریافت SDK ادتریس
SDK را با یکی از روشهای زیر به پروژه اضافه کنید:
- Maven (پیشنهادی): وابستگی را به فایل
build.gradleماژول اپ اضافه کنید. جدیدترین نسخهها در Maven Central منتشر میشوند. - JAR / AAR: فایل SDK را از صفحه Releases در GitHub دانلود و دستی وارد پروژه کنید.
SDK ادتریس حداقل به API Level 9 (Android Gingerbread) نیاز دارد.
این راهنما فرض میکند از Android Studio استفاده میکنید.
- اگر اپ شما دارای Android WebView است، پس از تکمیل مراحل Native، راهنمای WebBridge (WebView) را نیز دنبال کنید. اگر ردیابی فقط از طریق JavaScript انجام میشود، از Case A استفاده کنید.
- برای اپهای Google Play Store، افزودن Install Referrer را فراموش نکنید.
Maven
وابستگی کتابخانه ادتریس را در بخش dependencies فایل build.gradle ماژول اپلیکیشن اضافه کنید:
dependencies {
implementation 'io.adtrace:android-sdk:2.6.0'
}
۲. افزودن Google Play Services
وابستگی play-services-ads-identifier را به پروژه اضافه کنید تا SDK بتواند Google Advertising ID (gps_adid) را دریافت کند. این شناسه برای شناسایی دستگاه در اتریبیوشن استفاده میشود:
dependencies {
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
}
۳. افزودن Install Referrer
اپهایی که در Google Play Store منتشر میشوند باید از Google Play Referrer API استفاده کنند تا ادتریس بتواند منشأ نصب را بهدرستی شناسایی و اتریبیوشن را انجام دهد.
کتابخانه Install Referrer را به پروژه اضافه کنید:
dependencies {
implementation 'com.android.installreferrer:installreferrer:2.2'
}
اگر از ProGuard یا R8 استفاده میکنید، مطمئن شوید کلاسهای Install Referrer در فرآیند بهینهسازی حذف نمیشوند. Rule موردنیاز از قبل در بخش پیکربندی ProGuard قرار داده شده است.
۴. افزودن Permissionها
Permissionهای لازم برای SDK ادتریس را در فایل AndroidManifest.xml تعریف کنید.
Permissionهای موردنیاز
برای اینکه SDK بتواند به شبکه دسترسی داشته باشد، Permissionهای زیر را اضافه کنید:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
اپهایی که در Google Play منتشر نمیشوند
این Permission را نیز اضافه کنید تا SDK بتواند وضعیت شبکه Wi-Fi را بخواند:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Google Advertising ID (AD_ID)
اگر اپ شما Android 12 (API Level 31) یا بالاتر را هدف قرار میدهد و در Google Play Store منتشر میشود، این Permission را اضافه کنید تا SDK بتواند Advertising ID را بخواند:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
اگر اپ شما برای کودکان (COPPA / Play Store Kids) است یا نباید Advertising ID را بخواند، این Permission را حذف کنید:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>
</manifest>
برای تنظیمات کامل اپلیکیشنهای کودکان، به راهنمای اپهای کودکان مراجعه کنید.
۵. پیکربندی ProGuard
اگر برای بهینهسازی اپ از ProGuard یا R8 استفاده میکنید، Ruleهای زیر را به فایل proguard-rules.pro اضافه کنید تا کلاسهای موردنیاز SDK حذف نشوند:
-keep class io.adtrace.sdk.** { *; }
-keep class com.google.android.gms.common.ConnectionResult {
int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
java.lang.String getId();
boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.** { *; }
اپهایی که در Google Play منتشر نمیشوند
این Rule را نیز اضافه کنید:
-keep public class io.adtrace.sdk.** { *; }
۶. مقداردهی اولیه SDK ادتریس
این بخش مخصوص اپهای Native (Java / Kotlin) است.
- برای اپهایی با WebView، پس از این مرحله WebBridge (WebView) را نیز دنبال کنید.
- برای Trusted Web Activity، مستندات TWA را مطالعه کنید.
برای مقداردهی اولیه SDK به دو مقدار نیاز دارید:
appToken: توکن اپلیکیشن را از پنل ادتریس دریافت کنید.environment: در زمان تست ازAdTraceConfig.ENVIRONMENT_SANDBOXو برای انتشار ازAdTraceConfig.ENVIRONMENT_PRODUCTIONاستفاده کنید. ادتریس با این مقدار، ترافیک تستی را از کاربران واقعی جدا میکند. هنگام اجرای مجدد تست، environment را دوباره روی Sandbox بگذارید. ادتریس با این مقدار، ترافیک تستی را از کاربران واقعی جدا میکند. هنگام اجرای مجدد تست، environment را دوباره روی Sandbox بگذارید.
SDK را در یک کلاس سراسری Application مقداردهی کنید. اگر هنوز این کلاس را ندارید:
- یک کلاس جدید بسازید که از
Applicationارثبری کند. - فایل
AndroidManifest.xmlرا باز کنید و در تگ<application>مقدارandroid:nameرا تنظیم کنید. مثلاً برای کلاسی به نامGlobalApplication:
<application
android:name=".GlobalApplication">
<!-- ... -->
</application>
- مقداردهی اولیه SDK را در متد
onCreateکلاسApplicationخود انجام دهید:
- Java
- Kotlin
import android.app.Application;
import io.adtrace.sdk.AdTrace;
import io.adtrace.sdk.AdTraceConfig;
public class GlobalApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
String appToken = "{YourAppToken}";
String environment = AdTraceConfig.ENVIRONMENT_SANDBOX;
AdTraceConfig config = new AdTraceConfig(this, appToken, environment);
AdTrace.onCreate(config);
}
}
import android.app.Application
import io.adtrace.sdk.AdTrace
import io.adtrace.sdk.AdTraceConfig
class GlobalApplication : Application() {
override fun onCreate() {
super.onCreate()
val appToken = "{YourAppToken}"
val environment = AdTraceConfig.ENVIRONMENT_SANDBOX
val config = AdTraceConfig(this, appToken, environment)
AdTrace.onCreate(config)
}
}
مقدار {YourAppToken} را با App Token اپلیکیشن خود از پنل ادتریس جایگزین کنید.
- مقدار
environmentرا بر اساس مرحله توسعه انتخاب کنید:
- Java
- Kotlin
// در زمان تست
String environment = AdTraceConfig.ENVIRONMENT_SANDBOX;
// قبل از انتشار
String environment = AdTraceConfig.ENVIRONMENT_PRODUCTION;
// در زمان تست
val environment = AdTraceConfig.ENVIRONMENT_SANDBOX
// قبل از انتشار
val environment = AdTraceConfig.ENVIRONMENT_PRODUCTION
مقداردهی اولیه بهتنهایی کافی نیست. برای ثبت صحیح Sessionها، پیکربندی Session Tracking را نیز انجام دهید.
۷. پیکربندی Session Tracking
Session Tracking به SDK ادتریس اطلاع میدهد که اپلیکیشن چه زمانی فعال یا متوقف میشود تا دادههای Session با دقت به سرور ارسال شود. این مرحله الزامی است و بدون آن SDK بهدرستی کار نمیکند.
نحوه پیادهسازی به مقدار minSdkVersion اپلیکیشن بستگی دارد.