LoginSignup
6
4

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-10-13

Unityでのアドフリくん動画各種サンプルコード

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 git@github.com: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 インタースティシャル動画広告用

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

MovieInterAdManager movieAd = GameObject.Find("MovieInterAdManager").GetComponent<MovieInterAdManager>();
StartCoroutine(movieAd.showInterAdMovie());


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

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

MovieRewardADManager rewardAd = GameObject.Find("MovieRewardAdManager").GetComponent<MovieRewardADManager>();
rewardAd.playRewardMovie();


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

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

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にて以下を設定してビルドしました。

private static bool useThis = true;
private static bool is_iOS9orOver = true;

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

MovieInterStitial600x.mm/MovieReward600x.mm/MovieNative600x.mm

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

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

github

https://github.com/hmcGit/AdfurikunCSharpSample

6
4
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
6
4