AdmobとConcentSDK

投稿者: | 2018年8月22日

リワード広告の導入

前回の続き。前回利用したadmobのcocos2d-xへの導入サイト(Google公式)には動画リワード広告の導入方法が無かったので、ググったところ非常に参考になるサイトを発見しました。

Github:AdmobCocos2dxExample

cocos2dxのプロジェクトで、iOS,Android両方でfirebaseAdmobのバナー、インタースティシャル、動画リワード広告を表示するサンプル

上記で紹介されている方法は、どちらかというとCocos2d-xへの導入ではなく、ネイティブ側(iOSはobjective-c / Androidはjava)で広告を実装し、その処理をCocos2d-xから実行している感じになります。

これだと広告処理をiOSとAndroidの個別に記述しなければならず手間なのですが、記事の後半で導入するConsentSDKはネイティブ側で設定しなければならないので逆に都合が良いでしょう(たぶん)。

 

ちょっと追記が必要

iOS側のソースには問題は無かったのですが、android側ではリワード広告を表示する処理がコメントアウトされていました。関数自体は存在するのですが、実行するとアプリはクラッシュします。なので、その関数showRewardedVideoを以下の様に書き換えました。

AppActivity.java

Githubの使い方が分からないので、ここにソースを書くことを許してください。

 public void showRewardedVideo() {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (mRewardedVideoAd.isLoaded()) {
                    mRewardedVideoAd.show();
                }
            }
        });
    }

あと新しいadmobにはonRewardedVideoCompletedというライフサイクル関数が追加されているのでOverrideしておかないとエラーになります。
onRewardedがあれば必要なさそうなライフサイクルだけど何に使うんだろ?

@Override
public void onRewardedVideoCompleted() {
    Log.d("AppActivity", "onRewardedVideoCompleted");
    Toast.makeText(this, "onRewardedVideoCompleted", Toast.LENGTH_SHORT).show();
}

そんなこんなで無事導入できました。


 
 
 

ConsentSDKによるGDPRへの対応

Concent SDKはEU(EEA)で導入されたGDPRに対応するため、googleが用意した【広告に関するユーザー情報の扱いについての同意を得るための仕組み】を提供します。GDPRは広告以外にもユーザーに関する個人情報まわりすべてに関わるのですが、ConsentSDKのデフォルトの文言では広告にしか言及していません(後述のキャプチャ参照)。とはいえ表示するウインドウはhtmlで編集できる場所に納められており、開発者は自由に文言を変更できます。FirebaseのAnalyticsなども利用する場合は少し文言を足した方が良いのかもしれません。
→参考:google検索「gdpr アプリ 対応」

 

ボタンはデフォルトで3つですが必要に応じて非表示にできます。私の場合は最後の「有料版」への誘導は必要ないので右のように2つにしました。

DkEZTBHUcAIHSR9
 
DkEZTy2U0AAcmFg

上記画像でNoを選択すると「ユーザー情報を取得しないタイプの広告にするので同意してくれませんか?」的なウインドウに切り替わります(下画像左)。

ちなみに「How ~ uses your data」の部分をタップすると開発者が作成しなければならないプライバシーポリシーのサイトにリンクします。

あと上画像のテキスト部分「Learn how ~ and use data」をタップすると下画像右のように、データを利用する広告会社の名前が表示されます。

DkEa9DSU8AEKY8m
 
DkEZyEOUwAEscwk
 
 

公式サイトの説明

公式サイトは英語のみです。次項で日本語で説明されたサイトを紹介しますが、序盤のsdkの導入については公式ページの方が詳しいので確認しておくと良いと思います。

Google Mobile Ads SDK for Android

Requesting Consent from European Users.ConsentSDKをAndroidに導入するためのサイト(英語)。

Google Mobile Ads SDK for iOS

Requesting Consent from European Users.ConsentSDKをiOSに導入するためのサイト(英語)。

同意フォームはhtmlで用意されているのでコンテンツにあわせて変更することができます。

でもプロジェクトファイル内に見当たらないしネット上にあるような気もします。英文書けないので変更する予定はないから良いけど…。あと以下はAndroidでiOSはどういう風に組み込まれているのだろう?。html自体は同じだと思うけど。

consentform.html

同意のフォームはhtmlで提供されているので開発者はコンテンツにあわせて変更することができます(Android)。

 

日本語での説明サイト – iOS

公式サイトも親切なのですがadmobの連携の具体的なサンプルソースはありません。そこでググったらステキなページがありました。

AdMobの GDPR対応(iOS)

EU一般データ保護規則(GDPR)とはEU在住のユーザの情報を取得する場合に、ちゃんとユーザから同意を得ないといけないよ、というEUの法案


 

日本語での説明サイト – Android

Androidでは以下のサイトが詳しいです。

ページ内の最後の項にある「PersonalizedAdManager」のソースコードも導入する必要があります。

AdMobを使っているAndroidアプリでEU一般データ保護規則(GDPR)対応する

EU一般データ保護規則(GDPR)とはEU在住のユーザの情報を取得する場合に、ちゃんとユーザから同意を得ないといけないよ、というEUの法案

 
 

AndroidのSDKバージョン

AndroidStudioでの導入作業は公式サイトなどを参考にしてもビルドが通らないことが多く大変でした。大抵はsdkのバージョンにあわせてgradleの設定を書き換えることで対処できました。バージョンを上げるとセキュリティが強化されるらしいのですが、それに合わせて色々と手続きが必要になるケースがでてくるらしいです。今回はadmobやconsentだけなのでトラブルは少なめでしたが…。

でも、きちんと対応すればgooglePlayでの検索や類似アプリでの紹介で優遇してくれそうな気がしなくもないので頑張りたいところです。

DkzC3iMUwAAVD-w

「minSdkVersionを14以上にしてください」など分かりやすいエラーメッセージの場合は対処が楽なのですが、以下リンクのように想像も付かないメッセージから対処するのは大変でした。

→参考:解决Android中Error:resource

Androidのsdkのバージョンは短期間で上がり、少し前までビルドが通っていたプロジェクトがエラーを吐くようになります。今回は久しぶりに開発環境を整えたので尚更…。あぁ、前回アプリ(脱出ゲーム:4Rooms)をリリースしてから1年が経つのか…。

 

 
 


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload the CAPTCHA.