ブログ記事一覧

アドフリくんの動画SDK(Unity)にC#のサンプルが無かったので作成した(ネイティブ動画・リワード動画・インタースティシャル動画)

2018-01-06

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:

adfuri

動画ネイティブの表示(Android)

スクロールビューでのページ切り替えに追従させています

Features

  • ネイティブ動画広告表示
  • インタースティシャル動画広告表示
  • リワード動画広告表示

Requirement

Adfurikunの動画SDK Unityを導入して下さい

Installation

$ git clone [email protected]:hmcGit/AdfurikunCSharpSample.git

  1. Android/iOSにSwitchPlatformします
  2. 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

h1

4.AdfurikunXXXUtilityに広告IDをセットします

h2

それぞれインスペクター上でIDをセットしてください。テスト用のIDほしいですよね。アドフリさんお願いします。

5.ビルド時の注意

ネイティブ動画はどうやら広告枠申請時のパッケージ名に合わせないと再生されません

リワード動画とインタースティシャルは任意でいけます

Usage

1.実行したら各ボタンを押して下さい。
画像はエディター実行時のものです。

便宜上画像では3画面を1つにくっつけていますが
各画面はスワイプで移動できます。
h3

Specification

1.スクリプト本体はscripts/ad以下のものです

  • MovieInterAdManager.cs インタースティシャル動画広告用

利用例)コルーチンでの呼び出しとして定義しています。


  • MovieRewardAdManager.cs リワード動画広告用

利用例)通常のメソッドです。


  • MovieNativeAdSelectStageManager.cs ネイティブ動画広告用
    (名前変え忘れた・・・)

利用例)シングルトンとして定義しています。引数はページ番号です。

呼び出し例は、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にて以下を設定してビルドしました。

  • コンパイルフラグの設定
    Plugins/iOS/adnetworks以下にある各アドネットワークフォルダにそれぞれ以下のファイルがあります。

MovieInterStitial600x.mm/MovieReward600x.mm/MovieNative600x.mm

上記には「-fobjc-arc」追記しました。

基本的にはこれだけでビルドできます。以前よりずいぶん楽になった印象です。

Author

@hmc_j

www.alice3.net