본문으로 건너뛰기

광고 캐싱

광고 캐싱 가이드​

광고 디스크 캐싱 기능은 S2S로 서빙되는 네이티브 광고, 네이티브 심플 광고에 한해 제공합니다. 8.17.0 이상 버전부터 사용 가능합니다.

캐시 옵션 생성하기​

디스크 캐싱된 광고를 요청하기 위해서는 GFPAdCacheNativeOptions을 생성해야합니다.

네이티브 광고, 네이티브 심플 광고에 대한 기본 가이드를 참고해주세요.

adParam에 대한 가이드는 링크를 참고해주세요.

GFPAdPraram *adParam = [[GFPAdParam alloc] init];

GFPAdCacheNativeOptions *cacheNativeOptions = [[GFPAdCacheNativeOptions alloc] initWith:@"set your unitId"
adParam:adParam
simpleOptions:nativeSimpleOptions
nativeOptions:nativeOptions];

디스크 캐싱 요청하기​

GFPAdCacheManager 의 prefetchNativeAd 를 통해 NN/NS 광고를 디스크에 저장할 수 있습니다. unit id 별로 최대 5개까지 저장되며, 저장되는 광고는 S2S 에 한해 저장됩니다.

[GFPAdCacheManager.sharedInstance prefetchNativeAd: cacheNativeOptions];

캐싱 광고 요청하기​

GFPAdCacheManager를 저장된 광고를 로드합니다. GFPAdCacheManagerDelegate 을 등록하여 성공/실패 여부를 응답 받을 수 있습니다.

[GFPAdCacheManager.sharedInstance loadNativeAdFromDisk:cacheNativeOptions delegate:self];

혹은

[GFPAdCacheManager.sharedInstance loadNativeAdFromDisk:cacheNativeOptions delegate:self isAutoPrefetch:YES];

isAutoPrefetch​

isAutoPrefetch 옵션을 통해 자동 prefetch를 수행할 지 여부를 정합니다. (기본값: YES)

  • YES: loadNativeAdFromDisk:delegate: 호출 시 gfp sdk 내부적으로 prefetchNativeAd: 를 호출해줍니다.
  • NO: loadNativeAdFromDisk:delegate: 호출 시 gfp sdk 내부적으로 prefetchNativeAd: 를 호출하지 않습니다.

캐싱 광고 응답받기​

GFPAdCacheManagerDelegate 을 컨펌한 객체를 전달 시 해당 객체를 통해, 성공/실패를 전달받을 수 있습니다.

정보

콜백으로 전달받은 광고 객체에 delegate 를 등록해야 노출, 클릭, 렌더링 에러 등 광고 이벤트를 전달받을 수 있습니다.

  • 네이티브 광고: GFPNativeAd 의 delegate 에 GFPNativeAdDelegate 를 컨펌한 객체를 등록
  • 네이티브 심플 광고: GFPNativeSimpleAd 의 delegate 에 GFPNativeSimpleAdDelegate 를 컨펌한 객체를 등록
- (void)cacheManager:(NSString *)adUnitId didCacheNativeAd:(GFPNativeAd *)nativeAd {
NSLog(@"cacheManger:didCacheNativeAd:");
nativeAd.delegate = self; // GFPNativeAdDelegate 등록
}

- (void)cacheManager:(NSString *)adUnitId didCacheNativeSimpleAd:(GFPNativeSimpleAd *)nativeSimpleAd {
NSLog(@"cacheManger:didCacheNativeSimpleAd:");
nativeSimpleAd.delegate = self; // GFPNativeSimpleAdDelegate 등록
}

- (void)cacheManager:(NSString *)adUnitId didFailWithError:(GFPError *)error responseInfo:(GFPLoadResponseInfo *)responseInfo {
NSLog(@"cacheManger:didFailWithError:");
}