# IOS

## 사전 작업 <a href="#pre-work" id="pre-work"></a>

이 문서는 iOS SDK 연동 완료 이후 인앱 메시지 수신을 테스트하기 위한 방법을 가이드합니다. 아래 문서의 사전 작업을 완료 후 진행해주세요.

{% content-ref url="../../sdk-integrating/initialize/ios-sdk" %}
[ios-sdk](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/sdk-integrating/initialize/ios-sdk)
{% endcontent-ref %}

{% content-ref url="" %}
[](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/in-app-message/in-app-campaign)
{% endcontent-ref %}

수신 및 집계를 정확히 확인하기 위해 로그 레벨을  `debug` 로 설정해주세요.

```swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
    // ...
    Marketap.setLogLevel(.debug)
    Marketap.initialize(projectId: "kx43pz7")
    // ...
}
```

## 1. 캠페인 수신 확인

[캠페인 테스트 단계](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/in-app-message/in-app-campaign/..#id-1)에서 설정한 트리거 이벤트인 `홈 화면 조회` 를 찍도록 이벤트를 추가하고 캠페인이 트리거 되는지 확인해보겠습니다.&#x20;

코드의 적당한 위치에 홈 화면 조회(`mkt_home_view`) 이벤트를 추가합니다. 앱 실행 후 해당 코드가 실행되면 캠페인이 트리거되어야 합니다.&#x20;

```swift
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    Marketap.track(eventName: "mkt_home_view")
}
```

디바이스에서 인앱 메시지가 정상 수신되는지 확인해주세요. [#id-2](#id-2 "mention") 으로 이동해서 연동을 추가로 확인해주세요.

## 2. 로그 확인

인앱 메시지를 수신했을 때, xcode 콘솔에서 다음 로그가 출력되어야 합니다.

```objectivec
[InAppMessageService+View.swift:73] loading campaign: imsm0xsf // campaign id
[InAppMessageService+View.swift:80] presenting campaign: imsm0xsf
[InAppMessageService+View.swift:82] presented campaign: imsm0xsf
```

인앱 메시지를 클릭해서 설정한 링크로 정상 랜딩되는지 확인해주세요. xcode 콘솔에 다음 로그가 출력됩니다.

```objectivec
[InAppMessageService+View.swift:135] onClick: ... // url 확인
[MarketapCore+Event.swift:34] track: mkt_click_message ... // 클릭 이벤트 추적 확인
```

## 3. 클릭 액션 커스텀하기 (선택)

캠페인에 클릭 액션 URL이 설정되어 있는 경우, **마켓탭 SDK는 기본 동작으로** `UIApplication.shared.open`을 호출하여 해당 URL을 실행합니다.

실행된 URL은 앱의 딥링크 처리 루트(예: `application(_:open:options:)` 또는 `SceneDelegate`의 `scene(_:openURLContexts:)`)에서 수신하여 처리할 수 있습니다.

이 기본 동작을 비활성화하고 클릭 시 액션을 직접 제어하려면, 아래 페이지 안내에 따라 clickHandler 기반 커스텀 연동을 진행해주세요.

{% content-ref url="../../advanced-usage/custom-click-handler" %}
[custom-click-handler](https://docs.marketap.io/t3ZS4WXNMj0HK27EtIMV/developer/advanced-usage/custom-click-handler)
{% endcontent-ref %}

## 4. 이어서 진행하기

이제 In-App Campaign 테스트가 완료되었습니다. 아래 문서에서 이어서 진행해주세요.

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>EVENT 및 USER 연동</td><td><a href="../../taxonomy/sdk">sdk</a></td></tr><tr><td>Push Notification 테스트</td><td><a href="../../push-notification/test">test</a></td></tr><tr><td>심화 연동</td><td><a href="../../advanced-usage/overview">overview</a></td></tr></tbody></table>
