پرش به مطلب اصلی

تنظیم deep linking استاندارد

اگر کاربر قبلاً اپ شما را نصب کرده و یک URL tracker Adtrace که شامل پارامتر deep_link است را باز کند، Android می‌تواند اپ شما را راه‌اندازی کند و آن deep link را به Activity تحویل دهد.

مراحل تنظیم

  1. یک URL scheme منحصربه‌فرد انتخاب کنید.
  2. آن scheme را در یک Activity در AndroidManifest.xml ثبت کنید.
  3. همان scheme را در پارامتر deep_link tracker قرار دهید (URL-encoded).
  4. Deep link را از Intent Activity بخوانید.
  5. برای کمپین‌های 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>

همان 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 کنید. در اپ شما، مقداری که دریافت می‌کنید رمزگذاری نشده است.

هنگامی که کاربر URL tracker را انتخاب می‌کند، Android اپ شما را راه‌اندازی می‌کند و Activity پیکربندی شده را باز می‌کند. Deep link در Intent Activity تحویل می‌شود.

android:launchMode در AndroidManifest.xml کنترل می‌کند که آیا محتوا در onCreate، onNewIntent، یا هر دو می‌رسد. برای جزئیات به حالت‌های launch Activity Android مراجعه کنید.

onCreate

هنگامی که Activity برای deep link ایجاد می‌شود از این استفاده کنید:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Uri data = getIntent().getData();
// data.toString() -> مقدار پارامتر deep_link
}

onNewIntent

هنگامی که Activity قبلاً وجود دارد و یک Intent deep link جدید دریافت می‌کند از این استفاده کنید:

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);

Uri data = intent.getData();
// data.toString() -> مقدار پارامتر deep_link
}

از مقدار URI برای منطق اپ خود استفاده کنید (مثلاً باز کردن یک صفحه خاص).

۵. Attribution re-engagement (اختیاری)

اگر deep link بخشی از یک کمپین re-engagement است، AdTrace.appWillOpenUrl() را هنگام دریافت لینک فراخوانی کنید تا Adtrace بتواند کاربر را دوباره attribute کند. به Reattribute از deep link ها مراجعه کنید.