> For the complete documentation index, see [llms.txt](https://adpopcornssp.gitbook.io/ssp-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adpopcornssp.gitbook.io/ssp-sdk/sdk/ios/ios-3.1.0+/undefined-9.md).

# 모달광고

<figure><img src="/files/GoVU1ouS5ADBDCC0VO1q" alt="" width="214"><figcaption></figcaption></figure>

## 인스턴스 생성

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

```swift
import APSSPSDK

var modalAd: APSSPModalAd!

modalAd = APSSPModalAd(
    appKey: "YOUR_APP_KEY",
    placementId: "YOUR_PLACEMENT_ID",
    viewController: self
)
modalAd.delegate = self
```

{% endtab %}

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

```objc
@import APSSPSDK;

APSSPModalAd *modalAd = [[APSSPModalAd alloc] initWithAppKey:@"YOUR_APP_KEY"
                                                 placementId:@"YOUR_PLACEMENT_ID"
                                              viewController:self];
modalAd.delegate = self;
```

{% endtab %}
{% endtabs %}

## 모달 광고 옵션 설정

### 닫기 버튼 타입

| 값   | 설명          |
| --- | ----------- |
| `0` | 광고 닫기 (기본값) |
| `1` | 오늘 그만 보기    |

### 광고 위치

| 값   | 설명       |
| --- | -------- |
| `0` | 하단 (기본값) |
| `1` | 중앙       |

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

```swift
modalAd.closeBtnType = 1
modalAd.adGravity = 1
modalAd.closeOnBackgroundTap = true        // background click시 close 처리
modalAd.closeBtnTextColor = .red
modalAd.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)
```

{% endtab %}

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

```objc
modalAd.closeBtnType = 1;
modalAd.adGravity = 1;
modalAd.closeOnBackgroundTap = YES;      // background click시 close 처리
modalAd.closeBtnTextColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1.0];
modalAd.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
```

{% endtab %}
{% endtabs %}

## 모달 광고 요청

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

```swift
modalAd.loadRequest()
```

{% endtab %}

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

```objc
[modalAd loadRequest];
```

{% endtab %}
{% endtabs %}

## 모달 광고 노출

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

```swift
modalAd.present(from: self)
```

{% endtab %}

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

```objc
[modalAd presentFrom:self];
```

{% endtab %}
{% endtabs %}

## 이벤트 리스너

| 이벤트 리스너                   | 설명          |
| ------------------------- | ----------- |
| `apsspModalAdLoadSuccess` | 모달 광고 로딩 성공 |
| `apsspModalAdLoadFail`    | 모달 광고 로딩 실패 |
| `apsspModalAdShowSuccess` | 모달 광고 노출 성공 |
| `apsspModalAdShowFail`    | 모달 광고 노출 실패 |
| `apsspModalAdClicked`     | 모달 광고 클릭    |
| `apsspModalAdClosed`      | 모달 광고 닫기    |

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

```swift
extension ViewController: APSSPModalAdDelegate {

    func apsspModalAdLoadSuccess(_ modalAd: APSSPModalAd) {
        modalAd.present(from: self)
    }

    func apsspModalAdLoadFail(_ modalAd: APSSPModalAd, error: APSSPNetworkError) {
    }

    func apsspModalAdShowSuccess(_ modalAd: APSSPModalAd) {
    }

    func apsspModalAdShowFail(_ modalAd: APSSPModalAd, error: APSSPNetworkError) {
    }

    func apsspModalAdClicked(_ modalAd: APSSPModalAd) {
    }

    func apsspModalAdClosed(_ modalAd: APSSPModalAd) {
    }
}
```

{% endtab %}

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

```objc
- (void)apsspModalAdLoadSuccess:(APSSPModalAd *)modalAd {
    [modalAd presentFrom:self];
}

- (void)apsspModalAdLoadFail:(APSSPModalAd *)modalAd error:(enum APSSPNetworkError)error {
}

- (void)apsspModalAdShowSuccess:(APSSPModalAd *)modalAd {
}

- (void)apsspModalAdShowFail:(APSSPModalAd *)modalAd error:(enum APSSPNetworkError)error {
}

- (void)apsspModalAdClicked:(APSSPModalAd *)modalAd {
}

- (void)apsspModalAdClosed:(APSSPModalAd *)modalAd {
}
```

{% endtab %}
{% endtabs %}
