2017-07-24 76 views
1

您好,我是一名新开发人员,我在android工作室创建了我的第一个应用程序。我在Admob上添加广告单元时做错了什么?

我使用Admob制作的测试广告来测试我的广告是否可以正常工作。当我终于发布我的应用程序与我的广告单元代码出于某种原因,它不起作用。然后我在网上查了一下,发现它们可能需要一些时间才能激活,所以我等了一段时间,直到3天过去,但仍然无效。

下面是我采取的步骤:

  1. 按照AdMob提供为执行代码的回报广告

  2. 添加网络权限

  3. 链接我发布的应用程式向AdMob

    教程
  4. 通过点击“ADD AD UNIT”在Admob上制作了一个广告单元

我想知道我是否错过了一个步骤,但如果我做了为什么测试广告可以正常工作,但不是真正的。 我希望直接联系Admob,但他们似乎没有任何客户服务电子邮件。你是我最后的希望,请帮助。谢谢

代码:MainActivity类别

公共类MainActivity扩展活动实现RewardedVideoAdListener {

public static RewardedVideoAd mAd; 
public static RewardedVideoAd mAd2; 
public static MediaPlayer click; 
public static MediaPlayer unlock; 
public static MediaPlayer thud; 

public static InterstitialAd mInterstitialAd; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    this.requestWindowFeature(getWindow().FEATURE_NO_TITLE); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    Constants.SCREEN_WIDTH = dm.widthPixels; 
    Constants.SCREEN_HEIGHT = dm.heightPixels; 

    setContentView(new GamePanel(this)); 

    mAd = MobileAds.getRewardedVideoAdInstance(this); 
    mAd.setRewardedVideoAdListener(this); 
    mAd2 = MobileAds.getRewardedVideoAdInstance(this); 
    mAd2.setRewardedVideoAdListener(this); 
    loadAd(); 

    click = MediaPlayer.create(getApplicationContext(), R.raw.click_sound); 
    unlock = MediaPlayer.create(getApplicationContext(), R.raw.unlock_sound); 
    thud = MediaPlayer.create(getApplicationContext(), R.raw.thud_sound); 

    mInterstitialAd = new InterstitialAd(this); 
    mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); 
    mInterstitialAd.loadAd(new AdRequest.Builder().build()); 

} 

private void click() { 
    click.start(); 
} 
private void unlock() { 
    unlock.start(); 
} 
private void thud() { 
    thud.start(); 
} 


private void loadAd() { 
    if (!mAd.isLoaded()) { 
     mAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build()); 
    } 
    if (!mAd2.isLoaded()) { 
     mAd2.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build()); 
    } 


} 

// Required to reward the user. 
@Override 
public void onRewarded(RewardItem reward) { 
    if (GamePanel.Ad1 == 1) { 
     Toast.makeText(this, "Congrats 30 Survival Points Added!", Toast.LENGTH_SHORT).show(); 
    } 
    if (GamePanel.Ad2 == 1) { 
     Toast.makeText(this, "Congrats 100 Survival Points Added!", Toast.LENGTH_SHORT).show(); 
    } 
} 

// The following listener methods are optional. 
@Override 
public void onRewardedVideoAdLeftApplication() { 

} 

@Override 
public void onRewardedVideoAdClosed() { 
    if (GamePanel.Ad1 == 1) { 
     GamePanel.HighCoin = GamePanel.HighCoin + 30; 
     GamePanel.Ad1 = 0; 
     Toast.makeText(this, "Congrats 30 Survival Points Added!", Toast.LENGTH_SHORT).show(); 
    } 
    if (GamePanel.Ad2 == 1) { 
     GamePanel.HighCoin = GamePanel.HighCoin + 100; 
     Toast.makeText(this, "Congrats 100 Survival Points Added!", Toast.LENGTH_SHORT).show(); 
    } 
} 

@Override 
public void onRewardedVideoAdFailedToLoad(int errorCode) { 

} 

@Override 
public void onRewardedVideoAdLoaded() { 

} 

@Override 
public void onRewardedVideoAdOpened() { 


} 

@Override 
public void onRewardedVideoStarted() { 
} 

}

并加载我使用的代码:

MainActivity.mInterstitialAd。显示();

如果(MainActivity.mAd.isLoaded())

MainActivity.mAd.show();

上面显示的广告单元代码是由Admob提供的测试广告代码,该代码可以正常工作,但我在Admob自己的代码中遇到了问题。

+0

请粘贴您的代码! –

+0

如果它们是真正的广告单元ID,请先删除或遮盖这些广告单元ID。有人可能会使用它,你可能会被禁止。你在日志中看到什么?广告正在投放?这可能是一个填充率问题。您可以在回调中设置断点以查看广告是否获得投放 –

+0

代码中的广告是由admob提供的测试广告,并且完美无缺。但是当我将它们替换成我在admob中制作的那些时,那就是当我遇到问题时。 “ –

回答

0

感谢您的帮助,但我想通了。 我忘了把我的账单信息放在admob上。