2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift】 NendSDK_iOSライブラリで広告を実装

Last updated at Posted at 2021-02-19

インタースティシャル広告、バナー広告、動画広告を実装する方法

まずはこちらのライブラリをpod installします。

pod 'NendSDK_iOS'

次に下記のサイトにログインして下さい。(新規登録は審査もありますので3日程かかる場合があります。)

https://nend.net/
*新規登録どこからすればええの?ってなったので一応記載しておきます。
メディア様からです。

リリース前のアプリの場合AppStoreURLは下記のURLを代用して下さい。

ログイン後広告枠の管理から設定して下さい。

スクリーンショット 2021-02-19 20.35.22.png
スクリーンショット 2021-02-19 20.38.56.png

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にします。

Viewの大きさは広告サイズと同じにして下さい。
スクリーンショット 2021-02-19 17.31.14.png

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("表示がされない")
    }
  }
}
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?