インタースティシャル広告、バナー広告、動画広告を実装する方法
まずはこちらのライブラリをpod installします。
pod 'NendSDK_iOS'
次に下記のサイトにログインして下さい。(新規登録は審査もありますので3日程かかる場合があります。)
https://nend.net/
*新規登録どこからすればええの?ってなったので一応記載しておきます。
メディア様からです。
リリース前のアプリの場合AppStoreURLは下記のURLを代用して下さい。
ログイン後広告枠の管理から設定して下さい。
apikeyとspotIDは必要になりますのでメモしておいて下さい!
Xcodeに戻ります。
バナー広告を表示するViewとインタースティシャル広告、動画広告を出すボタンを用意します。
あとは下記を記載するだけです。
import UIKit
import NendAd
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
//インタースティシャル広告
NADInterstitial.sharedInstance()?.loadAd(withSpotID: , apiKey: "")
return true
}
}
バナー広告を表示するViewのClassをNADViewにします。
import UIKit
import NendAd
final class ViewController: UIViewController, NADViewDelegate, NADInterstitialVideoDelegate {
//バナー広告を表示するView
@IBOutlet weak var nadView: NADView!
//動画広告
let adVideo = NADInterstitialVideo(spotID: , apiKey: "")
override func viewDidLoad() {
super.viewDidLoad()
//バナー広告
nadView.setNendID( , apiKey: "")
nadView.delegate = self
nadView.load()
//動画広告
adVideo.delegate = self
adVideo.loadAd()
}
func nadViewDidFinishLoad(_ adView: NADView!) {
print("delegate nadViewDidFinishLoad:")
}
func nadViewDidReceiveAd(_ adView: NADView!) {
print("delegate nadViewDidReceiveAd")
}
func nadViewDidFail(toReceiveAd adView: NADView!) {
// エラーごとに処理を分岐する場合
let error: NSError = adView.error as NSError
switch (error.code) {
case NADViewErrorCode.NADVIEW_AD_SIZE_TOO_LARGE.rawValue:
// 広告サイズがディスプレイサイズよりも大きい
break
case NADViewErrorCode.NADVIEW_INVALID_RESPONSE_TYPE.rawValue:
// 不明な広告ビュータイプ
break
case NADViewErrorCode.NADVIEW_FAILED_AD_REQUEST.rawValue:
// 広告取得失敗
break
case NADViewErrorCode.NADVIEW_FAILED_AD_DOWNLOAD.rawValue:
// 広告画像の取得失敗
break
case NADViewErrorCode.NADVIEW_AD_SIZE_DIFFERENCES.rawValue:
// リクエストしたサイズと取得したサイズが異なる
break
default:
break
}
@IBAction func interstitialButton(_ sender: Any) {
//インタースティシャル広告を表示する時に使うボタン
private let showResult = NADInterstitial.sharedInstance()?.showAd(from: self)
switch(showResult){
case .AD_SHOW_SUCCESS:
print("広告の表示に成功しました。")
break
case .AD_SHOW_ALREADY:
print("既に広告が表示されています。")
break
case .AD_FREQUENCY_NOT_REACHABLE:
print("広告のフリークエンシーカウントに達していません。")
break
case .AD_LOAD_INCOMPLETE:
print("抽選リクエストが実行されていない、もしくは実行中です。")
break
case .AD_REQUEST_INCOMPLETE:
print("抽選リクエストに失敗しています。")
break
case .AD_DOWNLOAD_INCOMPLETE:
print("広告のダウンロードが完了していません。")
break
case .AD_CANNOT_DISPLAY:
print("指定されたViewControllerに広告が表示できませんでした。")
break
@unknown default:
break
}
}
@IBAction func tap(_ sender: Any) {
//動画広告を表示
if interstitialVideo.isReady{
interstitialVideo.showAd(from: self)
}
}
//広告の受信
func nadInterstitialVideoAdDidReceiveAd(_ nadInterstitialVideoAd: NADInterstitialVideo!) {
//動画広告
print("受信完了")
}
//エラー
func nadInterstitialVideoAd(_ nadInterstitialVideoAd: NADInterstitialVideo!, didFailToLoadWithError error: Error!) {
//動画広告
print(error.debugDescription)
}
//表示がされない
func nadInterstitialVideoAdDidFailed(toPlay nadInterstitialVideoAd: NADInterstitialVideo!) {
//動画広告
print("表示がされない")
}
}
}


