본문으로 건너뛰기

광고매니저 설정

선행 챕터

GFPAdManager

GFPAdManager는 NAMSDK의 중심 진입점(entry point) 클래스입니다.
인스턴스를 직접 생성할 수 없으며, 모든 기능은 클래스 메서드로 제공됩니다.

메서드 / 프로퍼티설명
setup(withPublisherCd:target:completionHandler:)SDK 초기화 (앱 실행 시 한 번)
isSdkInitialized()초기화 완료 여부 확인
adConfiguration()전역 광고 설정(GFPAdConfiguration) 접근
registerWebView(_:)WKWebView 등록
sdkVersion()현재 SDK 버전 문자열

광고제공자 초기화

광고를 요청하기 전에 SDK 초기화(앱 전체 라이프 사이클에서 한 번)가 수행되어야 합니다.
CocoaPods 의존성이 추가되어 있으면 각 광고 제공자별·광고 타입별 광고가 자동으로 초기화됩니다.
다만, 여기서 초기화되지 않은 광고 제공자로부터의 광고는 이후 서버로부터의 응답 결과와 관계없이 처리되지 않습니다.

SDK 초기화 호출 시 Naver Ad Manager 플랫폼 혹은 담당자를 통해 발급 받은 Publisher Code 를 setup() 호출 시 넘겨주어야 합니다.

위험

Publisher Code 값은 필수 항목이며, 누락 시 초기화 오류가 발생합니다. 따라서 이 값을 반드시 포함해야 합니다.

초기화 성공 여부는 isSdkInitialized 값을 통해 알 수 있습니다.

초기화 시 전역 설정 가능

setup() 호출 시 GFPAdConfiguration 을 함께 전달하면 SDK 전역 옵션을 한 번에 지정할 수 있습니다.

설정 가능한 주요 항목:

  • 광고 타입별 요청 타임아웃
  • SDK 로그 레벨
  • 광고 UI 언어다크/라이트 스타일
  • IDFA · 위치 정보 수집 제어
  • 광고 제공자별 테스트 모드

→ 전체 옵션은 GFPAdConfiguration 설정 을 참고해 주세요.

초기화 API의 target 파라미터에 GFPAdManagerDelegate를 구현한 객체를 전달합니다.

SDK 초기화 예제

import GFPSDK

// PublisherCd 이용, GFPAdConfiguration(광고 설정) 없이 초기화 하는 경우.
GFPAdManager.setup(withPublisherCd: "publisherCd", target:self) { (error : GFPError?) in
print("Setup Error: \(String(describing: error?.description))")
}

// 광고 초기화 성공 여부
GFPAdManager.isSdkInitialized()

// GFPAdConfiguration 설정 포함 초기화 하는 경우.
let configuration = GFPAdConfiguration()
GFPAdManager.setup(withPublisherCd: "publisherCd", target:self, configuration: configuration) { (error : GFPError?) in
print("Setup Error: \(String(describing: error?.description))")
}

GFPAdManagerDelegate 설정

GFPAdManagerDelegate광고 추적 권한(ATT) 상태를 SDK에 전달하기 위한 필수 델리게이트입니다.

iOS 14부터 도입된 ATT(App Tracking Transparency) 프레임워크에 따라, 앱은 IDFA(광고 식별자)에 접근하기 전에 사용자에게 추적 허용 여부를 묻고 그 결과를 SDK에 알려줘야 합니다. SDK는 이 상태를 바탕으로 광고 타게팅 여부를 결정합니다.

위험

NAMSDK 4.3.0 버전 이후 GFPAdManagerDelegate 구현은 필수입니다.
attStatus()를 구현하지 않으면 초기화가 정상적으로 동작하지 않습니다.

@protocol GFPAdManagerDelegate <NSObject>

- (GFPATTAuthorizationStatus)attStatus;

@end

typedef NS_ENUM(NSInteger, GFPATTAuthorizationStatus) {
GFPATTAuthorizationStatusNotDetermined = 0, // 사용자의 승인 미요청 상태
GFPATTAuthorizationStatusRestricted = 1, // 사용자의 기기가 제한된 상태.
GFPATTAuthorizationStatusDenied = 2, // 사용자의 IDFA 요청 거절 상태.
GFPATTAuthorizationStatusAuthorized = 3, // 사용자의 IDFA 요청 승인 상태.
};

func attStatus() -> GFPATTAuthorizationStatus {
if #available(iOS 14.5, *) {
return ATTrackingManager.trackingAuthorizationStatus
} else {
if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {
return .authorized
}
return .notDetermined
}

WebView 등록

위험

SDK 8.2.0 부터 앱에서 사용하는 WKWebViewGFPAdManager필수로 등록해야 합니다.
등록하지 않으면 광고가 정상적으로 동작하지 않을 수 있습니다.

다음의 웹뷰 등록 가이드를 통해 웹뷰를 등록합니다.

기본값 설정

GFPAdConfiguration을 통해 앱 전역에서 사용할 기본값 등의 설정이 가능합니다.
설정 가능한 모든 옵션은 GFPAdConfiguration 설정 페이지를 참고해 주세요.

광고 언어 설정

광고 UI 컴포넌트의 언어 설정 (기본값: none). 단 s2s로 서빙되는 광고에 한정되어 적용됩니다.

none으로 설정 시 디바이스의 언어를 기반으로 렌더링 되며, 지원하지 않는 언어일 경우 영어로 노출됩니다.

정보

광고 로드 전 설정해야하며, 로드 후 변경 시 이미 로드된 광고의 언어는 변경되지 않습니다. 언어 설정 변경 시, 광고 로드를 재수행해야합니다.

GFPAdManager.adConfiguration().preferredLanguage = .ko

스타일 설정

서비스에서 지원하는 UI에 맞춰 Admute 아이콘의 스타일(=system, light, dark)을 지정합니다.

GFPAdManager.adConfiguration().adInterfaceStyle = .light
GFPAdManager.adConfiguration().adInterfaceStyle = .dark
GFPAdManager.adConfiguration().adInterfaceStyle = .system // 아이폰 설정의 style을 따라갑니다.

전역 CustomParam 설정

모든 광고 지면에 customParam 설정이 가능하며, 파라미터 dict의 키/값은 모두 문자열 타입이어야 합니다. (since 6.0.0)

adParam의 customUserParam와 키가 중복될 경우, 우선 순위는 아래와 같습니다.

  • GFPAdParam.customUserParam > GFPAdConfiguration.customParam
GFPAdManager.adConfiguration().customParam = ["key1": "value1", "key2": "value2"] //custom key:value