사용자를 앱의 특정 페이지로 이동시키기 위해 딥링크를 생성할 수 있습니다. Adjust SDK는 사용자 기기에 앱이 이미 설치되어 있는지 여부에 따라 다른 로직을 적용합니다.
다이렉트 딥링킹: 사용자 기기에 앱이 이미 설치되어 있는 경우에 사용됩니다. 사용자는 링크가 의도한 페이지로 이동됩니다.
디퍼드 딥링킹: 사용자가 아직 앱을 설치하지 않은 경우에 사용됩니다. 링크는 먼저 사용자를 앱을 설치할 수 있는 스토어 페이지로 이동시킵니다. 사용자가 앱을 설치한 이후에 링크는 의도한 페이지를 엽니다.
SDK는 사용자가 링크를 통해 앱을 실행한 이후에 딥링크 데이터를 읽을 수 있습니다.
딥링크 설정
사용자가 앱을 설치한 경우, 사용자가 딥링크 정보가 포함된 링크를 클릭하면 딥링크가 실행됩니다. Adjust SDK는 앱에서 사용하기 위해 딥링크 정보를 파싱할 수 있는 툴을 포함하고 있습니다.
딥링크는 앱 수준에서 설정되어야 합니다. 아래의 플랫폼별 딥링크 설정 가이드 링크를 참조하시기 바랍니다.
딥링크를 사용한 리어트리뷰션
사용자를 리어트리뷰션하려면 앱에서 딥링크 콘텐츠를 수신할 때 appWillOpenUrl
메서드를 호출해야 합니다. 이후 Adjust SDK는 딥링크 내에서 새로운 어트리뷰션 데이터를 찾습니다. SDK가 새로운 정보를 찾으면 이는 리어트리뷰션을 위해 Adjust 서버로 전달됩니다.
+ ( void )appWillOpenUrl:(nonnull NSURL * )url;
iOS에서 딥링킹을 활성화하려면 주요 활동에서 true
값으로 appWillOpenUrl
메서드를 호출합니다.
func application ( application :UIApplication ! , didFinishLaunchingWithOptions launchOptions:NSDictionary ! ) -> Bool {
GeneratedPluginRegistrant. registerWithRegistry ( self )
// Override point for customization after application launch.
return super . application (application, didFinishLaunchingWithOptions :launchOptions)
func application ( application :UIApplication ! , openURL url:NSURL ! , sourceApplication : String ! , annotation : AnyObject ! ) -> Bool {
Adjust. appWillOpenUrl (url)
func application ( application :UIApplication ! , continueUserActivity userActivity:NSUserActivity ! , restorationHandler :([ AnyObject ] ! ) -> Void ) -> Bool {
if (userActivity. activityType () == NSUserActivityTypeBrowsingWeb) {
Adjust. appWillOpenUrl (userActivity. webpageURL ())
@implementation AppDelegate
- ( BOOL ) application: (UIApplication * )application didFinishLaunchingWithOptions: ( NSDictionary * )launchOptions {
[GeneratedPluginRegistrant registerWithRegistry:self ];
// Override point for customization after application launch.
return [ super application: application didFinishLaunchingWithOptions: launchOptions];
- ( BOOL ) application: (UIApplication * )application openURL: ( NSURL * )url sourceApplication: ( NSString * )sourceApplication annotation: ( id )annotation {
[Adjust appWillOpenUrl: url];
- ( BOOL ) application: (UIApplication * )application continueUserActivity: (NSUserActivity * )userActivity restorationHandler: ( void ( ^ )( NSArray <id <uiuseractivityrestoring> > * restorableObjects))restorationHandler {
if ([[userActivity activityType ] isEqualToString: NSUserActivityTypeBrowsingWeb]) {
[Adjust appWillOpenUrl: [userActivity webpageURL ]];
public static void appWillOpenUrl (Uri url, Context context)
Android에서 딥링킹을 활성화하려면 앱 델리게이트에서 true
값으로 appWillOpenUrl
메서드를 호출합니다.
import com.adjust.sdk.flutter.AdjustSdk
import io.flutter.embedding.android.FlutterActivity
// Used for post flutter 1.12 Android projects
//import io.flutter.app.FlutterActivity
class MainActivity : FlutterActivity () {
// Either call make the call in onCreate.
override fun onCreate (savedInstanceState: Bundle ?) {
super . onCreate (savedInstanceState)
// GeneratedPluginRegistrant.registerWith(this)
// Used only for pre flutter 1.12 Android projects
Intent intent = getIntent ()
Uri data = intent. getData ()
AdjustSdk. appWillOpenUrl ( data , this )
// Or make the call in onNewIntent.
override fun onNewIntent (intent: Intent ?) {
super . onNewIntent (intent)
Uri data = intent. getData ()
AdjustSdk. appWillOpenUrl ( data , this )
import com.adjust.sdk.flutter.AdjustSdk;
import io.flutter.embedding.android.FlutterActivity; // Used for post flutter 1.12 Android projects
//import io.flutter.app.FlutterActivity; // Used for pre flutter 1.12 Android projects
public class MainActivity extends FlutterActivity {
// Either call make the call in onCreate.
protected void onCreate (Bundle savedInstanceState ) {
super . onCreate (savedInstanceState);
// GeneratedPluginRegistrant.registerWith(this); Used only for pre flutter 1.12 Android projects
Intent intent = getIntent ();
Uri data = intent. getData ();
AdjustSdk. appWillOpenUrl (data, this );
// Or make the cakll in onNewIntent.
protected void onNewIntent (Intent intent ) {
super . onNewIntent (intent);
Uri data = intent. getData ();
AdjustSdk. appWillOpenUrl (data, this );
디퍼드 딥링크
bool ? launchDeferredDeeplink;
SDK는 기본 설정에 따라 디퍼드 딥링크를 실행합니다. 추가 설정은 필요하지 않습니다. config 인스턴스에서 launchDeferredDeeplink
속성을 false 로 설정하고 이를 비활성화할 수 있습니다.
AdjustConfig adjustConfig = new AdjustConfig ( '{YourAppToken}' , AdjustEnvironment . Sandbox );
adjustConfig.launchDeferredDeeplink = false ;
Adjust . start (adjustConfig);
디퍼드 딥링크 콜백 설정
typedef void DeferredDeeplinkCallback ( String ? uri);
DeferredDeeplinkCallback ? deferredDeeplinkCallback;
config 인스턴스에서 deferredDeeplinkCallback
속성에 함수를 추가하고 디퍼드 딥링크 수신 시 함수를 호출하도록 Adjust SDK를 구성할 수 있습니다. 이 함수는 딥링크를 String
인수로 수신합니다.
AdjustConfig adjustConfig = new AdjustConfig (yourAppToken, environment);
adjustConfig.deferredDeeplinkCallback = ( String uri) {
print ( '[Adjust]: Received deferred deeplink: ' + uri);
Adjust . start (adjustConfig);
예시
이 예시에서는 사용자가 디퍼드 딥링크를 열 때 Adjust가 딥링크 주소를 기록하는 방법을 보여줍니다.
import 'package:adjust_sdk/adjust.dart' ;
import 'package:adjust_sdk/adjust_config.dart' ;
initPlatformState () async {
new AdjustConfig ( '2fm9gkqubvpc' , AdjustEnvironment .sandbox);
config.logLevel = AdjustLogLevel .verbose;
config.deferredDeeplinkCallback = ( String ? uri) {
print ( '[Adjust]: Received deferred deeplink: ' + uri ! );
LinkMe 활성화
Adjust SDK를 사용하면 디바이스 페이스트보드에서 딥링크 정보를 복사할 수 있습니다. Adjust LinkMe 솔루션과 함께 사용 시 Adjust SDK는 iOS 15 이후 버전이 지원되는 기기에서 디퍼드 딥링킹을 활성화합니다.
사용자가 LinkMe URL을 클릭하면 링크 정보를 시스템 페이스트보드에 복사할 수 있는 옵션이 주어집니다. Adjust SDK는 딥링크 정보에 대한 시스템 페이스트보드를 읽고 딥링크 정보가 있는 경우 사용자를 의도한 페이지로 이동시킬 수 있습니다.
앱에서의 페이스트보드 확인을 활성화하려면 config 객체의 linkMeEnabled
속성을 true
로 설정합니다.
AdjustConfig adjustConfig = new AdjustConfig ( '{YourAppToken}' , AdjustEnvironment . Sandbox );
adjustConfig.linkMeEnabled = true ;
Adjust . start (adjustConfig);