# Universal Link 설정

## Universal 기본 설정

* Universal Link를 사용하기 위해 XCODE 프로젝트 Capabilities에 Associated Domains를 추가해주세요.

![](/files/-M_ctnwLifIUvUjn6SnS)

associated Domains에 WiseTracker 서비스 도메인을 등록합니다

* 일반 어트리뷰션링크 > <mark style="color:blue;">**applinks:app.wisetracker.co.kr**</mark>&#x20;
* 단축링크 사용시 > <mark style="color:blue;">**applinks:wtl.im**</mark>

<div align="left"><img src="/files/-M_cuHAfupl1S3g3Z_um" alt=""></div>

* 와이즈트래커 서비스 설정 > 어플리케이션 설정 > 범용 링크 설정의 유니버셜 링크에 아래의 코드를 함께 첨부된 이미지와 같이 완성하여 붙여넣습니다.

<div align="left"><img src="/files/-M_cuOb77IL7znAHoOcE" alt=""></div>

{% tabs %}
{% tab title="JSON" %}

```javascript
{
  "applinks": {
    "apps": [],
    "details": [
      {
        "paths": ["/ul/적용할 서비스번호/*"], // ex) ["/ul/102/*"]
        "appID": "TeamID.BundleID" // ex) "P8KRZA7924.com.wisetracker.RW"
      }
    ]
  }
}
```

{% endtab %}
{% endtabs %}

<div align="left"><img src="/files/-M_d8pg6suayS_RKulTG" alt=""></div>

## 어플리케이션 설정

프로젝트 내 appDelegate.m 파일에 `continueUserActivity`를 인자로 받는 `application` 함수에 아래와 같이 적용이 되면 유니버셜 링크를 통한 광고분석이 가능합니다.

{% tabs %}
{% tab title="Swift" %}

```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    // 아래의 코드를 적용해주세요
    if let uniLink = userActivity.webpageURL?.absoluteString {
        DOT.setDeepLink(uniLink)
        let landingUri :String = DOT.parseAttributionLink(toGetDeeplinkUrl: uniLink)
       
         // 리턴받은 landingUri값(DeepLink Sheme)으로 화면 진입 로직 구현(기존 open url에서 사용하던 화면 이동 로직과 동일하게 구현하면 됨)
    }
    //
    return false;
 }
```

{% endtab %}

{% tab title="Objective-C" %}

```objectivec
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
  /*
   * Wisetracker Universal link 분석을 위한 코드
   */
  if( userActivity.webpageURL != nil ){
    NSString* uniLink = userActivity.webpageURL.absoluteString;
    if( uniLink != nil && ![uniLink isEqualToString:@""]){
      [DOT setDeepLink:uniLink];
    }
  }

  NSString *landingUri = DOT parseAttributionLinktoGetDeeplinkUrl:userActivity.webpageURL.absoluteString];
  // 리턴받은 landingUri값(DeepLink Sheme)으로 화면 진입 로직 구현(기존 open url에서 사용하던 화면 이동 로직과 동일하게 구현하면 됨)
  
  return false;
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://document.wisetracker.co.kr/v2-developer/sdk/ios/universal-link.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
