アドフリくんの動画SDK(Unity)にC#のサンプルが無かったので作成した(ネイティブ動画・リワード動画・インタースティシャル動画)
AdfurikunCSharpSample
UnityでのAdfurikun(アドフリくん)動画広告C#サンプルコード
インタースティシャル動画、リワード動画、ネイティブ動画広告に対応しています。
Description
UnityでAdfurikun(アドフリくん)を利用する場合
動作サンプルにC#がないので作成しました。
なんでjsしかないの?アドフリさん。以下に対応しています
- インタースティシャル動画広告
- リワード動画広告
- ネイティブ動画広告
<動作環境>
- Unity5.6.3f1
- adfurikunSDK_Unity_moviereward_2_11_0
- Android7.1.2(Nexus5x)
- iOS11.0.2/10.3.3(iPhone6Plus/iPhone5c)
DEMO:
動画ネイティブの表示(Android)
スクロールビューでのページ切り替えに追従させています
Features
- ネイティブ動画広告表示
- インタースティシャル動画広告表示
- リワード動画広告表示
Requirement
–Adfurikunの動画SDK Unityを導入して下さい
Installation
$ git clone git@github.com:hmcGit/AdfurikunCSharpSample.git
- Android/iOSにSwitchPlatformします
- AdfurikunのUnitySDKを導入 Adfurikun動画SDK Unity
adfurikunPlugin_googlelib/adfurikunPlugins_2_xx_x.unitypackageなどからインポートします。
AndroidManifest.xmlはインポートされる物をそのまま利用してビルドできます。
3.testAdMainシーンを開きます
もしも2.のアドフリSDKを導入前にシーンを開いた場合、下記のヒエラルキーにあるPrefabが壊れていると思います。
その場合はAssets/Plugins/Adfurikunからヒエラルキー上にセットしてください。
- AdfurikunMovieNativeAdViewUtility
- AdfurikunMovieInterstitialUtility
- AdfurikunMovieRewardUtility
4.AdfurikunXXXUtilityに広告IDをセットします
それぞれインスペクター上でIDをセットしてください。テスト用のIDほしいですよね。アドフリさんお願いします。
5.ビルド時の注意
ネイティブ動画はどうやら広告枠申請時のパッケージ名に合わせないと再生されません
リワード動画とインタースティシャルは任意でいけます
Usage
1.実行したら各ボタンを押して下さい。
画像はエディター実行時のものです。
便宜上画像では3画面を1つにくっつけていますが
各画面はスワイプで移動できます。
Specification
1.スクリプト本体はscripts/ad以下のものです
- MovieInterAdManager.cs インタースティシャル動画広告用
利用例)コルーチンでの呼び出しとして定義しています。
1 2 |
MovieInterAdManager movieAd = GameObject.Find("MovieInterAdManager").GetComponent(); StartCoroutine(movieAd.showInterAdMovie()); |
- MovieRewardAdManager.cs リワード動画広告用
利用例)通常のメソッドです。
1 2 |
MovieRewardADManager rewardAd = GameObject.Find("MovieRewardAdManager").GetComponent(); rewardAd.playRewardMovie(); |
- MovieNativeAdSelectStageManager.cs ネイティブ動画広告用
(名前変え忘れた・・・)
利用例)シングルトンとして定義しています。引数はページ番号です。
1 |
MovieNativeADSelectStageManager.Instance.startNativeMovieAD(0); |
呼び出し例は、scripts/TestAdfuri.csを参照してください。
- スクロールビューについて
SnapScrollRectを利用しています。ピタッとスナップして気持ちよいです。
- ページ切り替え時のネイティブ動画位置調整について
Canvas-Scroll ViewのonValueChanged()にてSelectStageAdManager.onChangePageAdAction()を呼んでいます。
onChangePageAdAction()では、MovieNativeADSelectStageManager::resetNativeMovieAd(int page)を呼んでいます。
ネイティブ動画の表示位置を設定するために「movieAdFrame0~2」のオブジェクトが各ページに設定されています。
Notice
1.サンプル実行について
リワード動画、インタースティシャル動画はパッケージ名任意でも再生されますが
ネイティブ動画はどうやら広告枠申請時のパッケージ名に合わせないと再生されません
NO_ADのエラーコードがかえってきます。ちなみに公式のサンプルもです。
2.インスペクターでのアタッチについて
MovieInterAdManager.cs/MovieRewardADManager.cs/MovieNativeADSelectStageManager.csは
それぞれ別のオブジェクトにアタッチしています。
これは同じオブジェクトにアタッチすると、それぞれのAdfuriSDKのCallbackが上手く呼ばれなくなるためです。
setMovieNativeAdViewSrcObjectなど、CallbackのあるObjectを設定する際に工夫すればいけるかもしれません。
3.iOSで動画再生時にBGMがかぶる
これはAndroidでは発生しないのですが、iOSではリワード・インタースティシャル動画が再生時に、
アプリ側のBGMが再生されてままでかぶってしまいます。
解決方法がわからなかったので、iOSのみBGM停止処理、終了後に再生とすることで対処しました。
4.iOSでのビルド
Editor/AdfurikunMovieRewardPostProcessにて以下を設定してビルドしました。
1 2 |
private static bool useThis = true; private static bool is_iOS9orOver = true; |
- コンパイルフラグの設定
Plugins/iOS/adnetworks以下にある各アドネットワークフォルダにそれぞれ以下のファイルがあります。
MovieInterStitial600x.mm/MovieReward600x.mm/MovieNative600x.mm
上記には「-fobjc-arc」追記しました。
基本的にはこれだけでビルドできます。以前よりずいぶん楽になった印象です。
ディスカッション
コメント一覧
まだ、コメントがありません