loplat X 연동
SDK와 함께 loplat X 기능을 이용하기 위한 연동 작업을 안내합니다.
미등록 시 서비스 이용에 제한이 발생할 수 있습니다. 자세한 사항은 business@loplat.com 에 문의 바랍니다.
loplat X에서 구성한 캠페인을 통해 광고 및 알림을 사용자에게 전달할 수 있습니다.
사용하는 서비스 및 앱 시나리오에 따라 아래 가이드를 참조하여 통합을 진행합니다.
loplat X를 통해 광고 및 알림을 받기 위해선 사용자의 마케팅 약관 동의 여부 및 앱의 시나리오에 따라 캠페인 매칭을 On/Off 하여야 합니다.
캠페인 매칭 결과의 구조 및 의미에 대한 상세한 설명은 "테스트"의 loplat X 연동 테스트에서 확인할 수 있습니다.
loplat X 활성화
- SWIFT
- OBJECTIVE-C
Plengi.enableAdNetwork(true, enableNoti: true)
[Plengi enableAdNetwork:YES enableNoti:YES];
enableNoti : 광고 정보의 처리 대상에 따라 true, false를 전달합니다.
- true/YES : SDK에서 광고 정보를 처리하여 Local Noti로 사용자에게 노출합니다.
- false/NO : 앱에서 직접 광고 정보를 처리하기 때문에 SDK는 광고 정보를 전달만 합니다.
loplat X 비활성화
- SWIFT
- OBJECTIVE-C
Plengi.enableAdNetwork(false, enableNoti: false)
[Plengi enableAdNetwork:NO enableNoti:NO];
loplat X 알림 수신 설정
앱의 시나리오에 따라 사용자에게 알림 권한을 요청해 주세요.
enableNoti가 true인 경우, 사용자에게 광고 정보를 노출하기 위해서 알림 권한이 필요합니다.
수신 관련 설정
코드의 역할에 대한 설명 이후 적용 코드 예시를 확인할 수 있습니다.
UNUserNotificationCenter.current().delegate = self
- 알림에 대한 설정 및 액션을 이벤트로 수신하기 위해 호출합니다.
Plengi.processLoplatAdvertisement(_:didReceive:withCompletionHandler:)
- SDK가 사용자의 알림에 대한 액션(Click, Dismiss)을 트래킹하는 코드입니다.
- loplat X에서 광고에 대한 사용자의 응답 관련 통계를 제공하기 위해서 필요합니다.
해당 함수가 누락되면, loplat X를 통해 진행한 캠페인에 대한 통계 정보를 제공받을 수 없습니다.
userNotificationCenter(_:willPresent:)
- 사용자가 앱을 사용 중일 때도 Notification을 노출하기 위해 정의되어야 하는
UNUserNotificationCenterDelegate함수입니다.
적용 코드 예시
- SWIFT
- OBJECTIVE-C
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {
...
UNUserNotificationCenter.current().delegate = self
...
}
extension AppDelegate: UNUserNotificationCenterDelegate {
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void
) {
...
// loplat SDK가 사용자의 알림에 대한 액션(Click, Dismiss)을 트래킹하기 위한 코드
Plengi.processLoplatAdvertisement(
center,
didReceive: response,
withCompletionHandler: completionHandler)
}
// Foreground에서 알림을 노출할 수 있도록 하는 코드
func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (
UNNotificationPresentationOptions
) -> Void
) {
...
// 가이드에는 뱃지, 소리, 경고를 사용하지만, 앱의 시나리오에 따라 빼도 상관없습니다.
completionHandler([.alert, .sound, .badge])
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
[UNUserNotificationCenter currentNotificationCenter].delegate = self;
...
}
@interface AppDelegate () <UNUserNotificationCenterDelegate>
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:(void (^)(void))completionHandler {
...
// loplat SDK가 사용자의 알림에 대한 액션(Click, Dismiss)을 트래킹하기 위한 코드
[Plengi processLoplatAdvertisement:center
didReceive:response
withCompletionHandler:completionHandler];
}
// Foreground에서 알림을 노출할 수 있도록 하는 코드
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
...
// 가이드에는 뱃지, 소리, 경고를 사용하지만, 앱의 시나리오에 따라 빼도 상관없습니다.
completionHandler(UNNotificationPresentationOptionAlert |
UNNotificationPresentationOptionSound |
UNNotificationPresentationOptionBadge);
}
@end
요청
SDK는 알림 권한을 위한 함수를 제공하지 않습니다.
Apple의 API를 이용하여 앱에서 직접 권한을 요청하여 주세요.
- SWIFT
- OBJECTIVE-C
func requestIDFA() {
DispatchQueue.main.async {
UNUserNotificationCenter.current().requestAuthorization(options: [.badge, .alert, .sound]) { _, _ in
// 앱 시나리오에 따른 코드를 작성해 주십시오.
}
}
}
- (void)requestIDFA {
dispatch_async(dispatch_get_main_queue(), ^{
[[UNUserNotificationCenter currentNotificationCenter]
requestAuthorizationWithOptions:(UNAuthorizationOptionBadge |
UNAuthorizationOptionAlert |
UNAuthorizationOptionSound)
completionHandler:^(BOOL granted, NSError * _Nullable error) {
// 앱 시나리오에 따른 코드를 작성해 주십시오.
}];
});
}
추가 기능
loplat X는 사용자에게 광고 정보 전달 채널을 추가로 지원하고 있습니다.
각 채널을 통합하기 위한 가이드는 아래의 문서를 확인해주세요.