月別アーカイブ: 2018年8月

cocos2d-x 3.17 アプリに SDKBOX admob リワード広告を組み込む

  • コマンドプロンプトで sdkbox import admob を実行し、admob プラグインを組み込む
  • プロジェクト/Resource/sdkbox_config.json を開き、”AdMob” > “ads” > “rewarded” > “id” を表示したいリワード広告IDに置き換える
  • sdkbox::AdMobListener 派生クラスを定義し、virtual void reward(const std::string &name, const std::string &currency, double amount) を再実装する
    • このメンバ関数はリワード広告が正しく表示された場合にコールされるので、その処理を記述する
  • sdkbox::AdMobListener 派生クラスオブジェクトを生成し、sdkbox::PluginAdMob::setListener(AdMobListener*) に渡す
  • sdkbox::PluginAdMob::cache(リワード広告ID); をコールし、広告をキャッシュしておく
  • ユーザがリワード広告表示を承諾したら sdkbox::PluginAdMob::show(リワード広告ID); をコールする

cocos2d-x 3.17 Android に Admob SDK を組み込む

 

・ AdMobのライブラリをバンドル
  - app/build.gradle に以下を追加
dependencies {
    ...
    compile 'com.google.android.gms:play-services-ads:15.0.1'
}
・ パーミッション設定
  - app/マニュフェストに以下を追加
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
・ メタデータ、広告アクティビティの設定
  - AndroidManifest.xmlのapplicationタグに以下を追加
<meta-data android:name="com.google.android.gms.version"
           android:value="@integer/google_play_services_version" />
 
<activity
    android:name="com.google.android.gms.ads.AdActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
    android:theme="@android:style/Theme.Translucent" />
    
・ バナー広告を作成する処理
  - 以下を AppActivity.java に追加
import android.widget.LinearLayout;
import android.view.Gravity;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
.....
public class AppActivity extends Cocos2dxActivity {
    private AdView mAdView;  //  バナー広告
    .....
        // DO OTHER INITIALIZATION BELOW
        // 広告ビューのレイアウトパラメータを作成
        LinearLayout.LayoutParams adParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
 
        // 表示位置を下部中央に設定
        adParams.gravity = (Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL);
 
        // 広告ビューを作成
        mAdView = new AdView(this);
        mAdView.setAdSize(AdSize.BANNER);
        mAdView.setAdUnitId("ca-app-pub-XXXXXXXXXX/XXXXX");
        //mAdView.setAdUnitId(getString(R.string.banner_ad_unit_id));
 
        // テストデバイスのIDを指定してAdRequestを作成
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .addTestDevice("XXXXXXXXXX")
                //.addTestDevice(getString(R.string.test_device_id))
                .build();
 
        // 広告を読み込む
        mAdView.loadAd(adRequest);
 
        // 広告ビューをアクティビティに追加する
        addContentView(mAdView, adParams);        
    }

以上で、バナー広告が表示できる。

のだが、現状ではなぜか画面下部に表示されず、画面左上に表示されてしまう。