Skip to main content

Getting Started

Rewarded ads are full-screen video ads that reward viewers for watching the ad.

Sample Image

Prerequisites

Adding Dependencies

To use rewarded ads, add the GFPSDK/MediationNDARich module to your Podfile.

# When using static library
pod 'GFPSDK/MediationNDARich'

# When using dynamic library
pod 'GFPSDK-Dynamic/MediationNDARich'

NAMSDK Import

Import the SDK module.

import GFPSDK

Initializing C2S Rewarded Ad Providers

With the Pod for the rewarded ad provider you want to integrate added to your project, initialize via GFPAdManager. (Perform only once when the app launches)

Provider OptionAd ProviderCocoaPods
GFPRewardedAdProviderOptionNDANaver NDApod 'GFPSDK/MediationNDA'
GFPRewardedAdProviderOptionDFPGoogle GAM (Google Ad Manager)pod 'GFPSDKMediationDFP'
GFPRewardedAdProviderOptionFANMeta Audience Networkpod 'GFPSDKMediationFAN'
GFPRewardedAdProviderOptionUnityUnity Adspod 'GFPSDKMediationUnity'
GFPRewardedAdProviderOptionAppLovinAppLovin MAXpod 'GFPSDKMediationAppLovin'
GFPRewardedAdProviderOptionVungleLiftoff (Vungle)pod 'GFPSDKMediationVungle'
GFPRewardedAdProviderOptionDTDigital Turbinepod 'GFPSDKMediationDT'
GFPRewardedAdProviderOptionISIronSourcepod 'GFPSDKMediationIronSource'
GFPRewardedAdProviderOptionAPSAmazon Publisher Servicespod 'GFPSDKMediationAPS'
GFPRewardedAdProviderOptionLANLINE Ads Networkpod 'GFPSDKMediationLAN'
GFPRewardedAdProviderOptionChartBoostChartboostpod 'GFPSDKMediationChartBoost'
GFPRewardedAdProviderOptionBidMachineBidMachinepod 'GFPSDKMediationBidMachine'
GFPRewardedAdProviderOptionPanglePanglepod 'GFPSDKMediationPangle'
info

S2S rewarded ads do not require a separate provider initialization.

// DFP, Facebook 보상형 광고를 연동하려는 경우 cocoapods 의존성 추가.
GFPAdManager.setup(withPublisherCd: "publisherCd") { (error : GFPError?) in
print("Setup Eror: \(String(describing: error?.description))")
}
tip

For detailed GFPAdManager configuration, refer to Ad Manager Settings.

Writing the View Controller

Create a view controller (MyViewController) and perform the following steps in the header file (MyViewController.h).
(In this example, the view controller owns the manager.)

  1. Declare a *GFPRewardedAdManager adManager property in the view controller.
  2. Implement the GFPRewardedAdManagerDelegate protocol in the view controller.

GFPRewardedAdManagerDelegate delivers load success/failure and click events for rewarded ads.

// MyViewController.h
import GFPSDK

class MyViewController : UIViewController, GFPRewardedAdManagerDelegate {
private var adManager : GFPReweardedAdManager?
}

GFPReweardedAdManager Usage Guide

Creating GFPReweardedAdManager and Requesting Ad Load

In the viewDidLoad method of MyViewController.m, create an instance of GFPReweardedAdManager and request an ad.

  • After creating the instance, make sure to set the delegate.
  • When creating a GFPReweardedAdManager instance, set user information in GFPAdParam along with your issued ad unit ID. GFPAdParam is used for targeting to improve ad effectiveness.
override func viewDidLoad() {
super.viewDidLoad()

let adParam = GFPAdParam()
adParam.yearOfBirth = 1990
adParam.gender = .male
...

//인스턴스 생성
self.adManager = GFPRewardedAdManager(unitID: "UnitID", adParam: adParam)
//Delegate
self.adManager?.delegate = self
//Timeout
self.adManager?.requestTimeoutInterval = 60
//광고 요청
self.adManager?.load()
}
tip

The manager is designed to be used for loading a single ad. Create a new manager each time you need to load a new ad.

tip

On successful ad request, the GFPRewardedAdManagerDelegate rewardedAdManager:didLoadAd: method is called.

Resuming a Rewarded Ad Video

To resume a rewarded ad video after pausing it, use the resumeCurrentRewardVideo class method.

GFPRewardedAdManager.resumeCurrentRewardVideo()

Requesting Ad Display

Once you receive a success response from GFPRewardedAdManagerDelegate rewardedAdManager:didLoadAd:, you can request ad display using the show:(UIViewController *) method.

Checking Ad Load Completion

Use the isAdLoaded property to check whether an ad has been successfully loaded.

if self.adManager?.isAdLoaded == true {
// The ad is in a loaded state.
}

Checking Ad Invalidation

When displaying a pre-loaded cached ad, you must use the isAdInvalidate method to verify that the ad has not expired. Displaying an expired ad will prevent you from receiving a reward for the ad impression.

if rewardedAd.isAdInvalidate {
self.adManager?.show(self)
}
tip

If the ad display request fails, the GFPRewardedAdManagerDelegate rewardedAdManager:didFailWithError:responseInfo: method will be called.

tip

Since ad loading and ad display are separate, you can implement a flow that loads first and then displays. The loaded ad validity period is DFP, FAN: 60 minutes.

GFPRewardedAdManagerDelegate

By implementing GFPRewardedAdManagerDelegate, you can receive rewarded ad events through the following methods.

Load Events

On Load Success

func rewardedAdManager(_ manager: GFPRewardedAdManager, didLoad rewardedAd: GFPRewardedAd) {
...
}

On Load Failure

func rewardedAdManager(_ manager: GFPRewardedAdManager, didFailWithError error: GFPError, responseInfo:GFPLoadResponseInfo!) {
...
}

tip

This method delivers not only load failures, but also display failures, expiration errors, and all other failure cases.

LifeCycle Event

When Ad View Screen Starts

func rewardedAdManager(_ manager: GFPRewardedAdManager, didStart rewardedAd: GFPRewardedAd) {
...
}

On Ad View Completion

func rewardedAdManager(_ manager: GFPRewardedAdManager, didComplete rewardedAd: GFPRewardedAd, with reward: GFPReward?) {
...
}
tip

FAN does not provide reward information, so the reward value will be nil.

When Ad Screen Dismisses

func rewardedAdManager(_ manager: GFPRewardedAdManager, didClose rewardedAd: GFPRewardedAd) {
...
}

When Ad Screen is Clicked

func rewardedAdManager(_ manager: GFPRewardedAdManager, wasClickedAd rewardedAd: GFPRewardedAd) {
...
}
tip

DFP versions in the 7.x.x range do not support click events, so this event will not be triggered.

The following methods are declared as @optional, so implement them only when needed.

On Mute State Change (S2S Ads Only)

Called when the player's mute state changes in S2S ads.

func rewardedAdManager(_ manager: GFPRewardedAdManager, didChangedMute isMuted: Bool) {
...
}

When Ad Impression Occurs

Called when the ad is actually impressed (impression).

func rewardedAdManagerDidReceiveImpression(_ manager: GFPRewardedAdManager) {
...
}

When In-App Browser Opens

Called when the in-app browser opens due to an ad click or similar action.

func rewardedAdManagerDidPresentDefaultInAppBrowser(_ manager: GFPRewardedAdManager) {
...
}

When In-App Browser Closes

Called when the in-app browser is dismissed.

func rewardedAdManagerDidDismissDefaultInAppBrowser(_ manager: GFPRewardedAdManager) {
...
}