تنظیم deep linking استاندارد
اگر کاربر قبلاً اپ شما را نصب کرده و یک URL tracker Adtrace که شامل پارامتر deep_link است را باز کند، Android میتواند اپ شما را راهاندازی کند و آن deep link را به Activity تحویل دهد.
مراحل تنظیم
- یک URL scheme منحصربهفرد انتخاب کنید.
- آن scheme را در یک Activity در
AndroidManifest.xmlثبت کنید. - همان scheme را در پارامتر
deep_linktracker قرار دهید (URL-encoded). - Deep link را از
IntentActivity بخوانید. - برای کمپینهای re-engagement، همچنین
AdTrace.appWillOpenUrl()را فراخوانی کنید.
۱. انتخاب یک نام scheme منحصربهفرد
یک scheme منحصربهفرد برای اپ خود انتخاب کنید (مثلاً adtraceExample). همان scheme را هم در manifest و هم در URL tracker استفاده کنید.
۲. اضافه کردن یک intent filter در AndroidManifest.xml
Scheme را به Activityای که میخواهید پس از انتخاب URL tracker توسط کاربر باز شود اختصاص دهید. یک intent-filter اضافه کنید و android:scheme را به نام scheme خود تنظیم کنید:
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="adtraceExample" />
</intent-filter>
</activity>
۳. اضافه کردن deep_link به URL tracker Adtrace
همان scheme را در پارامتر deep_link URL tracker استفاده کنید. یک URL tracker بدون مسیر deep link اضافی میتواند اینگونه باشد:
https://app.adtrace.io/adt1ex?deep_link=adtraceExample%3A%2F%2F
آن مقدار رمزگذاری شده adtraceExample:// است.
باید مقدار پارامتر deep_link را در URL tracker URL-encode کنید. در اپ شما، مقداری که دریافت میکنید رمزگذاری نشده است.
۴. خواندن deep link در Activity
هنگامی که کاربر URL tracker را انتخاب میکند، Android اپ شما را راهاندازی میکند و Activity پیکربندی شده را باز میکند. Deep link در Intent Activity تحویل میشود.
android:launchMode در AndroidManifest.xml کنترل میکند که آیا محتوا در onCreate، onNewIntent، یا هر دو میرسد. برای جزئیات به حالتهای launch Activity Android مراجعه کنید.
onCreate
هنگامی که Activity برای deep link ایجاد میشود از این استفاده کنید:
- Java
- Kotlin
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Uri data = getIntent().getData();
// data.toString() -> مقدار پارامتر deep_link
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val data: Uri? = intent.data
// data.toString() -> مقدار پارامتر deep_link
}
onNewIntent
هنگامی که Activity قبلاً وجود دارد و یک Intent deep link جدید دریافت میکند از این استفاده کنید:
- Java
- Kotlin
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
Uri data = intent.getData();
// data.toString() -> مقدار پارامتر deep_link
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
setIntent(intent)
val data: Uri? = intent.data
// data.toString() -> مقدار پارامتر deep_link
}
از مقدار URI برای منطق اپ خود استفاده کنید (مثلاً باز کردن یک صفحه خاص).
۵. Attribution re-engagement (اختیاری)
اگر deep link بخشی از یک کمپین re-engagement است، AdTrace.appWillOpenUrl() را هنگام دریافت لینک فراخوانی کن ید تا Adtrace بتواند کاربر را دوباره attribute کند. به Reattribute از deep link ها مراجعه کنید.