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

Deeplink

اگر از URL ردیاب Adtrace با قابلیت deep link به اپلیکیشن استفاده می‌کنید، می‌توانید اطلاعات مربوط به URL deep link و محتوای آن را دریافت کنید. کلیک روی URL می‌تواند زمانی رخ دهد که کاربر اپلیکیشن شما را از قبل نصب کرده باشد (سناریوی deep linking معمولی) یا اپلیکیشن را روی دستگاه خود نداشته باشد (سناریوی deferred deep linking).

سناریوی معمولی

برای پشتیبانی از deep linking در Android، فایل AndroidManifest.xml اپلیکیشن باید اصلاح شود. برای تغییرات لازم به این صفحه از Android SDK ما مراجعه کنید.

برای پشتیبانی از deep linking در iOS 8 یا قدیمی‌تر، فایل Info.plist باید اصلاح شود.

برای پشتیبانی از deep linking در iOS 9 یا جدیدتر، اپلیکیشن شما باید Universal Links را مدیریت کند. برای تغییرات لازم به این صفحه از iOS SDK ما مراجعه کنید.

سناریوی Deferred

در حالی که deferred deep linking به‌طور پیش‌فرض روی Android و iOS پشتیبانی نمی‌شود، Adtrace SDK آن را ممکن می‌سازد.

برای دریافت اطلاعات محتوای URL در سناریوی deferred deep linking، باید یک متد Callback روی شیء AdTraceConfig تنظیم کنید که یک پارامتر دریافت می‌کند و محتوای URL در آن تحویل داده می‌شود. با فراخوانی متد setDeferredDeeplinkCallbackListener آن را تنظیم کنید:

var adtraceConfig = new AdTraceConfig(appToken, environment);

adtraceConfig.setDeferredDeeplinkCallbackListener(function(deeplink) {
console.log("Deferred deep link URL content: " + deeplink);
});

AdTrace.create(adtraceConfig);

در سناریوی deferred deep linking، یک تنظیم اضافی وجود دارد که می‌توان روی شیء AdTraceConfig انجام داد. هنگامی که Adtrace SDK اطلاعات deferred deep link را دریافت کرد، می‌توانید انتخاب کنید که SDK این URL را باز کند یا نه. با فراخوانی متد setShouldLaunchDeeplink روی شیء config این گزینه را تنظیم کنید:

var adtraceConfig = new AdTraceConfig(appToken, environment);

adtraceConfig.setShouldLaunchDeeplink(true);
// یا adtraceConfig.setShouldLaunchDeeplink(false);

adtraceConfig.setDeferredDeeplinkCallbackListener(function(deeplink) {
console.log("Deferred deep link URL content: " + deeplink);
});

AdTrace.create(adtraceConfig);

اگر چیزی تنظیم نشود، Adtrace SDK همیشه سعی می‌کند URL را به‌طور پیش‌فرض باز کند.

اگر از این ویژگی استفاده می‌کنید، برای اینکه کاربر به‌درستی reattribute شود، باید یک فراخوانی اضافی به Adtrace SDK در اپلیکیشن انجام دهید. پس از دریافت اطلاعات محتوای deep link در اپلیکیشن، یک فراخوانی به متد appWillOpenUrl روی instance AdTrace اضافه کنید. با این فراخوانی، Adtrace SDK تلاش می‌کند اطلاعات اتریبیوشن جدیدی در deep link پیدا کند و در صورت وجود، آن را به backend Adtrace ارسال کند. اگر کاربر باید به دلیل کلیک روی URL ردیاب Adtrace با محتوای deep link reattribute شود، Callback اتریبیوشن در اپلیکیشن با اطلاعات اتریبیوشن جدید فعال می‌شود.

فراخوانی متد appWillOpenUrl در یک کامپوننت React این‌طور است:

componentDidMount() {
Linking.addEventListener('url', this.handleDeepLink);
Linking.getInitialURL().then((url) => {
if (url) {
this.handleDeepLink({ url });
}
})
}

componentWillUnmount() {
Linking.removeEventListener('url', this.handleDeepLink);
}

handleDeepLink(event) {
AdTrace.appWillOpenUrl(event.url);
}