Getting Started
Banners are rectangle ads with image on web view.
Prerequisites
Implementing View Controller
In the view controller that will present the ad view as subview,
-
add these properties
GFPAdLoader *adLoader
GFPBannerView *bannerView
-
and implement these delegate protocols
GFPAdLoaderDelegate
GFPBannerViewDelegate
GFPAdLoaderDelegate
delivers banner and native view if ad response is successful.
GFPBannerViewDelegate
delivers banner view's impression, click, size changes, errors, etc.
- Swift
- Objective-C
// MyViewController.h
import GFPSDK
class MyViewController : UIViewController, GFPAdLoaderDelegate, GFPBannerViewDelegate {
private var adLoader : GFPAdLoader?
private var bannerView : GFPBannerView?
}
// MyViewController.h
@import GFPSDK;
@interface MyViewController : UIViewController <GFPAdLoaderDelegate, GFPBannerViewDelegate>
@property (nonatomic) GFPAdLoader *adLoader;
@property (nonatomic) GFPBannerView *bannerView;
@end
GFPAdLoader
Initialize GFPAdLoader
in your view controller, say, in viewDidLoad:
and request an ad.
- Provider
GFPAdLoader
with Ad Unit ID (essential) as registered on GFP dashboard, andGFPAdParam
(optional) for better ad performance.
Do not use GFPAdLoader
instance for multiple ad requests, since it's only designed for single ad request.
- Swift
- Objective-C
override func viewDidLoad() {
super.viewDidLoad()
let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...
self.adLoader = GFPAdLoader(unitID: "UnitId", rootViewController: self, adParam: adParam)
let bannerOption = GFPAdBannerOptions()
bannerOption.layoutType = .fluidWidth
self.adLoader?.setBannerDelegate(self, bannerOptions: bannerOption)
// Requesting Ad
self.adLoader?.delegate = self
self.adLoader?.loadAd()
}
- (void)viewDidLoad {
[super viewDidLoad];
GFPAdParam *adParam = [[GFPAdParam alloc] init];
adParam.yearOfBirth = 1990;
adParam.gender = GFPAdParamGenderTypeMale;
...
self.adLoader = [[GFPAdLoader alloc] initWithUnitID:@"UnitId"
rootViewController:self
adParam:adParam];
GFPAdBannerOptions *bannerOptions = [[GFPAdBannerOptions alloc] init];
bannerOptions.layoutType = GFPBannerViewLayoutTypeFluidWidth;
[self.adLoader setBannerDelegate:self bannerOptions:bannerOptions];
// Requesting Ad
self.adLoader.delegate = self;
[self.adLoader loadAd];
}
GFPAdLoaderDelegate
On Ad Load Success
- Swift
- Objective-C
func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceiveBannerAd bannerView: GFPBannerView!) {
self.view.addSubview(bannerView)
// Than set view's layout upon the superview.
...
}
- (void)adLoader:(GFPAdLoader *)unifiedAdLoader didReceiveBannerAd:(GFPBannerView *)bannerView {
[self.view addSubview:bannerView];
// Than set view's layout on the superview.
// ...
}
On Ad Load Failure
- Swift
- Objective-C
func adLoader(_ unifiedAdLoader: GFPAdLoader!, didFailWithError error: GFPError!, responseInfo: GFPLoadResponseInfo!) {
// ...
}
- (void)adLoader:(GFPAdLoader *)unifiedAdLoader didFailWithError:(GFPError *)error responseInfo:(GFPLoadResponseInfo *)responseInfo {
// ...
}
On Native Ad Load Success
For GFPAdLoader.nativeSimpleOption
or GFPAdLoader.nativeOption
set, implement these delegate methods.
- Swift
- Objective-C
func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceiveNativeAd bannerView: GFPNativeAd!) {
...
}
func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceiveNativeSimpleAd bannerView: GFPNativeSimpleAd!) {
...
}
- (void)adLoader:(GFPAdLoader *)unifiedAdLoader didReceiveNativeAd:(GFPNativeAd *)nativeAd {
// ...
}
- (void)adLoader:(GFPAdLoader *)unifiedAdLoader didReceiveNativeSimpleAd:(GFPNativeSimpleAd *)nativeSimpleAd {
// ...
}
GFPBannerViewDelegate
GFPBannerViewDelegate
delivers banner view's impression, click, size changes, errors, etc.
See more information in GFPBannerViewDelegate.h
On Banner View Unload
- Swift
- Objective-C
func bannerShouldUnload(_ bannerView: GFPBannerView) {
// ...
}
- (void)bannerShouldUnload:(GFPBannerView *)bannerView{
// ...
}
Notes on implementing bannerShouldUnload: with MRAID 3.0
For MRAID >= 3.0, GFPBannerView automatically unloads from superview after calling bannerShouldUnload:
On Banner View Impression
- Swift
- Objective-C
func bannerAdWasSeen(_ bannerView: GFPBannerView) {
...
}
- (void)bannerAdWasSeen:(GFPBannerView *)bannerView {
...
}
On Banner Rendered Impression
- Swift
- Objective-C
func bannerAdWasRendered(_ bannerView: GFPBannerView) {
...
}
- (void)bannerAdWasRendered:(GFPBannerView *)bannerView {
...
}
On Banner Clicked
- Swift
- Objective-C
func bannerAdWasClicked(_ bannerView: GFPBannerView) {
...
}
- (void)bannerAdWasClicked:(GFPBannerView *)bannerView {
...
}
On Banner Size Change
bannerView:didChangeWith:
is called when banner content size changes.
See more information in GFPBannerAdSize.h
This method must be implemented if GFPBannerSizeType is set to fluid types.
-
For
.fluidWidth
, size.width is returned as -1. Manually set width to desired value. -
For
.fluidHeight
, size.height is returned as -1. Manaully set height to desired value. -
For
.fluid
, manually set width & height to desired value.
- Swift
- Objective-C
func bannerView(_ bannerView: GFPBannerView, didChangeWith size: GFPBannerAdSize) {
...
}
- (void)bannerView:(GFPBannerView *)bannerView didChangeWith:(GFPBannerAdSize *)size {
...
}
On Ad Meta Data Change
- Swift
- Objective-C
func bannerView(_ bannerView: GFPBannerView, didChangeAdMeta adMeta: [String : String]) {
...
//adMeta example: ["bgcolor":"#000000", "fontcolor":"#FFFFFF"]
}
- (void)bannerView:(GFPBannerView *)bannerView didChangeAdMeta:(NSDictionary <NSString *, NSString *>*)adMeta {
...
//adMeta example: { 'bgcolor':'#000000', 'fontcolor':'#FFFFFF' };
}
On User Muting Ad
"Ad Mute" button on a corner of the ad, providing users options to hide unwanted ads.
On muted, banner view will show "Ad is blocked. NAVER will not show this ad again." message instead of ad. Than it is app's choice whether to completely remove the banner view using this delegate method.
- Swift
- Objective-C
func bannerAdWasMuted(_ bannerView: GFPBannerView) {
}
- (void)bannerAdWasMuted:(GFPBannerView *)bannerView {
}