hi every one i make a game when put admob ad id into my game but ads not show when i build app to apk thanks for helping me this is my PTAdAdMobBridge.java package com.secrethq.ads; import java.lang.ref.WeakReference; import org.cocos2dx.lib.Cocos2dxActivity; import android.util.Log; import android.view.View; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.google.android.gms.ads.*; public class PTAdAdMobBridge { private static final String TAG = "PTAdAdMobBridge"; private static Cocos2dxActivity activity; private static WeakReference<Cocos2dxActivity> s_activity; private static AdView adView; private static InterstitialAd interstitial; private static LinearLayout layout; private static native String bannerId(); private static native String interstitialId(); private static native void interstitialDidFail(); private static native void bannerDidFail(); private static boolean isBannerScheduledForShow = false; private static boolean isInterstitialScheduledForShow = false; public static void initBridge(Cocos2dxActivity activity){ Log.v(TAG, "PTAdAdMobBridge -- INIT"); PTAdAdMobBridge.s_activity = new WeakReference<Cocos2dxActivity>(activity); PTAdAdMobBridge.activity = activity; MobileAds.initialize(PTAdAdMobBridge.activity, PTAdAdMobBridge.bannerId()); PTAdAdMobBridge.initBanner(); PTAdAdMobBridge.initInterstitial(); } public static void initBanner(){ Log.v(TAG, "PTAdAdMobBridge -- initBanner"); PTAdAdMobBridge.s_activity.get().runOnUiThread( new Runnable() { public void run() { if(PTAdAdMobBridge.adView != null){ return; } FrameLayout frameLayout = (FrameLayout)PTAdAdMobBridge.activity.findViewById(android.R.id.content); RelativeLayout layout = new RelativeLayout( PTAdAdMobBridge.activity ); frameLayout.addView( layout ); RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams( AdView.LayoutParams.WRAP_CONTENT, AdView.LayoutParams.WRAP_CONTENT); adViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); adViewParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE); PTAdAdMobBridge.adView = new AdView( PTAdAdMobBridge.activity ); PTAdAdMobBridge.adView.setAdSize(AdSize.SMART_BANNER); PTAdAdMobBridge.adView.setAdUnitId( PTAdAdMobBridge.bannerId() ); layout.addView(PTAdAdMobBridge.adView, adViewParams); PTAdAdMobBridge.adView.setVisibility( View.INVISIBLE ); AdRequest adRequest = getAdRequest(); PTAdAdMobBridge.adView.loadAd( adRequest ); } }); } public static boolean isBannerVisible(){ if(PTAdAdMobBridge.adView == null){ return false; } else{ if(PTAdAdMobBridge.adView.getVisibility() == View.VISIBLE){ return true; } else{ return false; } } } public static void initInterstitial(){ Log.v(TAG, "PTAdAdMobBridge -- initInterstitial"); PTAdAdMobBridge.s_activity.get().runOnUiThread( new Runnable() { public void run() { if(PTAdAdMobBridge.interstitial != null){ return; } AdRequest adRequest = getAdRequest(); PTAdAdMobBridge.interstitial = new InterstitialAd( PTAdAdMobBridge.activity ); PTAdAdMobBridge.interstitial.setAdUnitId( PTAdAdMobBridge.interstitialId() ); PTAdAdMobBridge.interstitial.setAdListener(new AdListener() { @Override public void onAdLoaded() { if(PTAdAdMobBridge.isInterstitialScheduledForShow){ PTAdAdMobBridge.showFullScreen(); } } @Override public void onAdClosed() { AdRequest adRequest = new AdRequest.Builder().build(); PTAdAdMobBridge.interstitial.loadAd(adRequest); } @Override public void onAdFailedToLoad(int errorCode) { if ( !isInterstitialScheduledForShow ) return; PTAdAdMobBridge.interstitialDidFail(); } }); PTAdAdMobBridge.interstitial.loadAd(adRequest); } }); } public static void showFullScreen(){ Log.v(TAG, "showFullScreen"); isInterstitialScheduledForShow = true; if(PTAdAdMobBridge.interstitial != null){ PTAdAdMobBridge.s_activity.get().runOnUiThread( new Runnable() { public void run() { if(PTAdAdMobBridge.interstitial.isLoaded()){ PTAdAdMobBridge.interstitial.show(); PTAdAdMobBridge.isInterstitialScheduledForShow = false; } else{ PTAdAdMobBridge.isInterstitialScheduledForShow = true; } } }); } } public static void showBannerAd(){ Log.v(TAG, "showBannerAd"); isBannerScheduledForShow = true; if(PTAdAdMobBridge.adView != null){ PTAdAdMobBridge.s_activity.get().runOnUiThread( new Runnable() { public void run() { AdRequest adRequest = getAdRequest(); PTAdAdMobBridge.adView.loadAd(adRequest); PTAdAdMobBridge.adView.setAdListener(new AdListener() { @Override public void onAdFailedToLoad(int errorCode) { if ( !isBannerScheduledForShow ) return; Log.v(TAG, "Banner Ad Failed To Load"); PTAdAdMobBridge.bannerDidFail(); } @Override public void onAdLoaded() { Log.v(TAG, "Banner Ad Loaded"); PTAdAdMobBridge.adView.setVisibility( isBannerScheduledForShow ? View.VISIBLE : View.INVISIBLE ); } }); PTAdAdMobBridge.adView.setVisibility( View.VISIBLE ); } }); } } public static void hideBannerAd(){ Log.v(TAG, "hideBannerAd"); isBannerScheduledForShow = false; if(PTAdAdMobBridge.adView != null){ PTAdAdMobBridge.s_activity.get().runOnUiThread( new Runnable() { public void run() { PTAdAdMobBridge.adView.setVisibility( View.INVISIBLE ); } }); } } private static AdRequest getAdRequest(){ // Create an ad request. Check your logcat output for the hashed device ID to // get test ads on a physical device. e.g. // "Use AdRequest.Builder.addTestDevice("ABCDEF012345") to get test ads on this device." AdRequest adRequest = new AdRequest.Builder() // uncomment to get test ads //.addTestDevice("YOUR_DEVICE_ID") .build(); return adRequest; } }