PointPub SDK의 기능을 사용하려면 setAppId(with:), setUserId(with:) 메서드를 통해
각각 appId와 userId를 반드시 설정해야 합니다.
이 작업은 필수이며, 설정하지 않을 경우 SDK 기능을 사용할 수 없습니다.
오퍼월이 노출 되거나, 종료된 경우 PointPubDelegate를 통해 이벤트를 받을 수 있습니다.
PointPubDelegate를 통해 이벤트를 받기 위해서는 PointPub SDK의 delegate를 할당하고 구현합니다.
4. 가상화폐
포인트펍을 통해 광고 참여하여 획득한 포인트는 포인트펍 서버에서 관리 또는 매체(개발)사의 서버를 통해 관리 가능합니다.
아래의 내용은 가상화폐(포인트) 조회 및 사용 기능은 포인트펍 서버에서 관리되는 경우에 해당됩니다.
담당자를 통해 사전에 승인된 앱에서만 사용 가능합니다.
- 자체적으로 포인트를 관리하는 것을 선호합니다.
- 그 이유는 매체사에서 유연하게 포인트 관련 기능을 구현할 수 있기 때문입니다.
- 서버가 없어서 자체적으로 포인트를 관리하지 못하는 경우에 사용을 권장합니다.
1) 가상화폐 조회
가상화폐 조회의 경우 아래의 시점에 요청하는 것을 권장드립니다.
앱 실행
상점 진입
오퍼월 닫기(종료) 시점
단, 개인정보 동의가 이루어지지 않은 경우 사용이 불가하여 실패가 발생됩니다.
2) 가상화폐 사용
가상화폐 사용은 가상화폐 조회 후 발생된 잔액을 사용하는 것을 권장드립니다.
가상화폐 사용 시 0 이하의 포인트는 사용할 수 없습니다.
5. 로그
광고 목록이 노출되지 않거나 광고 참여 테스트 중 문제가 생길 때에 로그를 활성화하여 더 자세한 로그를 볼 수 있습니다.
6. 콜백 파라미터
유저가 캠페인 참여 완료 후 포스트백을 받을 때 setCallBackParameter 에서 설정한 값을 그대로 수신 가능합니다.
setCallBackParameter은 startOfferWall 함수 호출 직전에 호출 되어야 합니다.
매체사 내부 시스템에서 사용자 추적, 데이터 분석 등 후속 처리를 직접 구현할 수 있습니다.
서버로 전달된 포스트백 데이터 중 "cp" 에 해당 값이 전달됩니다.
7. App Tracking Transparency
IDFA (Identifier for Advertisers)
iOS 14.5 이전에는 광고주가 IDFA (Identifier for Advertisers)를 사용하여 광고 성과 측정 및 맞춤형 광고를 할 수 있었습니다. 하지만 iOS 14.5+ 이상에서 ATT (App Tracking Transparency) 도입으로 인하여 개인 정보 보호가 강화됨에 따라, 사용자가 동의를 허용한 경우에만 IDFA (Identifier for Advertisers) 값을 가져올 수 있습니다.
func spendAllVirtualPointsIfAvailable() {
Task {
do {
let (pointName, remainingPoint) = try await PointPub.getVirtualPoint()
print("포인트명: \(pointName), 포인트 잔액: \(remainingPoint)")
if remainingPoint > 0 {
spendVirtualPoint(amount: remainingPoint)
}
} catch {
print(error.localizedDescription)
}
}
}
func spendVirtualPoint(amount: Int) {
Task {
do {
let (pointName, remainingPoint) = try await PointPub.spendVirtualPoint(point: amount)
print("포인트명: \(pointName), 사용 후 포인트 잔액: \(remainingPoint)")
} catch {
print(error.localizedDescription)
}
}
}
- (void)viewDidLoad {
[super viewDidLoad];
// 로그 활성화
[PointPub enableLogTrace];
// 로그 활성화 여부 확인
if (!PointPub.isTrackingEnabled) {
NSLog(@"로그 활성화 됨");
}
}
override func viewDidLoad() {
super.viewDidLoad()
// 로그 활성화
PointPub.enableLogTrace()
// 로그 활성화 여부 확인
if PointPub.isLogTrace() {
print("로그 활성화 됨")
}
}