大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

(9)Unity3DとSwiftでiOSプログラミング~AdMod【実装編-2】

株式会社クローバーフィールドの経営理念
著者:川上洋
公開日:2017/12/28
最終更新日:2018/06/21
カテゴリー:技術情報

こんにちは。川上です。

師走が走っているのかどうかはあまり知りませんが、年末までもう少しです。
今年は冬は、とっても寒いです。年始年末のこの時期で爆弾低気圧が大暴れしているようです。
できるだけ普通の毎日がでありますよに。。ニャンコの手も使わずのように丸くできていますように。。 =・=・=

で、AdModの実装の続きです。
ここでも、ちょこっとだけ、気づいたことや注意点などでのMy備忘録しています。
間違っていてもごめんなさいね。
。=・=_

import UIKit
import Firebase
class GateInUnity: NSObject {
	・・・・
	・・・・ 

    // MARK: -⚡️-----  AdMobEventハンドラー
    //MARK: FirebaseSetting() -- AdMobのinitialize
    static func FirebaseSetting(){
        
        //AdMobの初回限定のInit管理用FLG
        if AdMob1StChk == true {
            // Use Firebase library to configure APIs
            FirebaseApp.configure()
            
            // Initialize Google Mobile Ads SDK, application IDを設定
            GADMobileAds.configure(withApplicationID: "ca-app-pub-<< Your -- ApplicationID ----")  //-- (4)
	                       //cf  ===   "ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx"

            AdMob1StChk = false
        }
    }

    // MARK: --- AdMobにSwift内Viewに入れる
    //MARK: AdMobViewの設定
    static let AdMobID = "ca-app-pub-<< Your -- 広告ユニットID ----") //NaniSunda 			// -- (5)
			//cf:"ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx"
    static let TEST_ID =  "ca-app-pub-3940256099942544/2934735716" //TEST IDは別の先用をあったものみたい?
    static let AdMobTest:Bool = false
    static var admobView = GADBannerView()
    static let ADMOB_VW = 3
    static func initAdMobToUnity(){			// -- (6)
        print("  ======= initAdMobToUnity()");
        
        //MARK: AdMobのinitialize
        FirebaseSetting()
        
        //UnityのViewControllerの取得
        let unityViewController = UnityGetGLViewController();	// -- (7)
        let parView = unityViewController?.view;
        
        //既存作成Viewを検知して削除
        let adVw = parView?.viewWithTag(GateInUnity.ADMOB_VW)	
        adVw?.removeFromSuperview()
        
        admobView = GADBannerView(adSize:kGADAdSizeBanner)
        admobView.frame.origin = CGPoint(x:0, y:(parView?.frame.size.height)! - admobView.frame.height)
        admobView.frame.size = CGSize(width:(parView?.frame.width)!, height:admobView.frame.height)
        admobView.tag = ADMOB_VW
        
        if AdMobTest {
            admobView.adUnitID = TEST_ID
        }
        else{
            admobView.adUnitID = AdMobID
        }
        
        admobView.rootViewController = unityViewController	
        admobView.load(GADRequest())
        
        unityViewController?.view.addSubview(admobView);	//-- (8)
        
    }
	
	・・・
	・・・
}//EOF GateInUnity 

> GADMobileAds.configure(withApplicationID: “ca-app-pub-<< Your — ApplicationID —-“) //– (4)
>  static let AdMobID = “ca-app-pub-<< Your — 広告ユニットID —-“) //NaniSunda // — (5)

AdModの設定で取得したアプリ用の「アプリID」と「広告ユニットID」をここで組み込みます。
(6)Unity3DとSwiftでiOSプログラミング~~AdMod

>  static func initAdMobToUnity(){ // — (6)
Unityからのプラグインで受信した testSendToSwift()に組み込みます。

> let unityViewController = UnityGetGLViewController(); // — (7)
Unityの起動しているViewControllerを持っています。
iOS のアプリで作り込む様々な全ての処理は、unityViewControllerからになります。

>  unityViewController?.view.addSubview(admobView); //– (8)
unityViewControllerに子Viewを組み込んでいます。

 

(AdModのバナーは、Landspace用(横型)の処理には、未実装なので、Portraie用(縦型)でしか見えていませんよ〜。)

次回は、実機のRotation処理を書いて、Landspace用(横型)とPortraie用(縦型)の両方でAdModのバナーが表示できるようにしましょう。(多分ね)

=。=。
ではでは。

    次の記事 :
    上に戻る