iOS용 인터스티셜 광고 광고 유닛 API 마이그레이션
광고 유닛 ID를 사용하여 인터스티셜 광고 로드하고 표시하여 레벨플레이 인터스티셜 광고 API로 전환.
읽는 시간 4분최근 업데이트: 8시간 전
이 가이드에서는 현재 구현에서 광고 유닛 ID를 사용하여 레벨플레이 인터스티셜 광고 API로 전환 인터스티셜 광고 로드하고 표시하는 방법을 설명합니다.
필수 조건
- 최소 지원 SDK는 8.6.0입니다. 최신 SDK는 여기에서 다운로드할 수 있습니다.
- 레벨플레이 초기화 API 사용하여 SDK를 초기화해야 합니다.
- 레벨플레이 대시보드에서 AdUnitID를 찾습니다.
인터스티셜 광고 오브젝트 생성
인터스티셜 광고 오브젝트의 생성은 onInitSuccess 콜백을 수신한 후에 수행해야 합니다.
오브젝트 세션 전체에 걸쳐 여러 로드와 표시를 처리할 수 있는 재사용 가능한 인스턴스. 생성 후에는 동일한 광고 유닛의 광고를 로드하고 표시하는 데 사용해야 합니다.
더 고급 구현을 위해 필요한 경우 여러 개의 인터스티셜 광고 객체를 생성할 수 있습니다.
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];
델리게이트 구현
광고 전송에 대해 알리기 위해 LevelPlayInterstitialDelegate 대신 코드에 LPMInterstitialAdDelegate를 구현하십시오.
- 인터스티셜 광고 광고를 로드하기 전에 델리게이트를 설정하는 것이 좋습니다.
- 각 인터스티셜 광고 광고에는 고유한 델리게이트 구현이 있어야 합니다.
- 델리게이트 메서드는 메인 스레드 실행됩니다.
self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"];self.interstitialAd.delegate = self;#pragma 마크 - LPMInterstitialAdDelegate 메서드- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo 오류:(NSError *)오류 {}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}
레거시 | 광고 단위(신규) | |
|---|---|---|
| 델리게이트 | LevelPlayInterstitialDelegate | LPMInterstitialAdDelegate |
| 이벤트 | didLoadWithAdInfo | didLoadAdWithAdInfo |
| didFailToLoadWithError | didFailToLoadAdWithAdUnitId | |
| didOpenWithAdInfo | didDisplayAdWithAdInfo | |
| didCloseWithAdInfo | didCloseAdWithAdInfo | |
| didFailToShowWithError | didFailToDisplayAdWithAdInfo | |
| didClickWithAdInfo | didClickAdWithAdInfo | |
| didShowWithAdInfo | - (사용 중단 예정) | |
| - | didChangeAdInfo |
레벨플레이 광고 정보
인터스티셜 광고 리스너 콜백이 반환하는 ISAdInfo 클래스가 LPMAdInfo로 대체되었습니다.
인터스티셜 광고 로드
인터스티셜 광고를 로드하려면 loadInterstitial 대신 loadAd를 사용합니다.
[self.interstitialAd loadAd];
인터스티셜 광고 표시
LevelPlayInterstitialDelegate 대신 LPMInterstitialAdDelegate를 사용하여 didLoadWithAdInfo 콜백을 수신한 후 인터스티셜 광고를 표시합니다. showInterstitialWithViewController 대신 showAdWithViewController를 사용합니다.
- ViewController를 공유해야 합니다.
- 플레이스먼트를 사용하는 경우 아래의 플레이스먼트 섹션에 표시된 대로 showAd API에서 플레이스먼트 이름을 전달합니다.
- 광고가 사용자 성공적으로 표시되면 로딩 단계를 반복하여 다른 광고를 로드할 수 있습니다.
- (void)showInterstitialAd { // 광고가 준비되었는지 확인합니다. if ([self.interstitialAd isAdReady]) { // 플레이스먼트 없이 표시 [self.interstitialAd showAdWithViewController:self placementName:nil]; }}
광고가 준비되었는지 확인
표시 실패를 방지하고 광고가 올바르게 표시되었는지 확인하기 위해 showAd API를 호출하기 전에 다음 API를 사용하는 것이 좋습니다.
isAdReady – 광고가 성공적으로 로드되고 광고 유닛이 제한되지 않거나 거짓이 아닌 경우 true를 반환합니다.
isPlacementCapped – 유효한 플레이스먼트가 제한되면 true를 반환합니다. 플레이스먼트가 유효하지 않거나 제한이 없는 경우 이 API false를 반환합니다.
// 광고가 준비되었는지, 플레이스먼트가 제한되지 않았는지 확인합니다.if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { [self.interstitialAd showAdWithViewController:self placementName:placementName];}
Placements
레벨플레이 대시보드에서 인터스티셜 광고의 플레이스먼트 속도와 한도를 지원합니다.
인터스티셜 광고에 대한 플레이스먼트가 설정된 경우 특정 플레이스먼트에 광고를 게재하려면 showAd 메서드를 호출합니다.
// 광고가 준비되었는지, 플레이스먼트가 제한되지 않았는지 확인합니다.if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { // 플레이스먼트가 있는 광고 표시 [self.interstitialAd showAdWithViewController:self placementName:@"PlacementName"];}
여러 광고 유닛 인터스티셜 광고 API
레거시 | 광고 단위(신규) | |
|---|---|---|
| API | loadInterstitial | loadAd |
| showInterstitialWithViewController | showAdWithViewController | |
| hasInterstitial | isAdReady | |
| isInterstitialCappedForPlacement | isPlacementCapped |
광고 유닛 API 전체 구현 예시
NS_ASSUME_NONNULL_BEGIN@interface InterstitialAdViewController () <LPMInterstitialAdDelegate>@property(nonatomic, strong) LPMInterstitialAd *interstitialAd;@end@implementation InterstitialAdViewController- (void)createInterstitialAd { self.interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId"]; self.interstitialAd.delegate = self;}- (void)loadInterstitialAd { // 광고를 로드하거나 다시 로드하는 데 사용 [self.interstitialAd loadAd];}- (void)showInterstitialAd { if ([self.interstitialAd isAdReady]) { [self.interstitialAd showAdWithViewController:self placementName:nil]; }}- (void)showInterstitialAdWithPlacementName:(NSString *)placementName { // 광고가 준비되었는지, 플레이스먼트가 제한되지 않았는지 확인합니다. if ([self.interstitialAd isAdReady] && ![LPMInterstitialAd isPlacementCapped:placementName]) { [self.interstitialAd showAdWithViewController:self placementName:placementName]; }}#pragma 마크 - LPMInterstitialAdDelegate 메서드- (void)didLoadAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToLoadAdWithAdUnitId:(NSString *)adUnitId error:(NSError *)error {}- (void)didChangeAdInfo:(LPMAdInfo *)adInfo {}- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo 오류:(NSError *)오류 {}- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}- (void)didCloseAdWithAdInfo:(LPMAdInfo *)adInfo {}@endNS_ASSUME_NONNULL_END
레벨플레이 Mediation 데모 앱
통합 데모 애플리케이션 앱에 인터스티셜 광고 광고 유닛 API를 통합하는 방법을 보여 줍니다.