首页 > 解决方案 > 有没有办法在不将应用上传到 Play 管理中心的情况下使用真实的 unitID 测试 adMob 广告?

问题描述

我的应用中有许多类型的广告(横幅、过渡、奖励视频等)。我用 Android Studio 开发了我的应用程序。

正如谷歌所说,我用测试 ID 测试所有广告。

在确信广告有效后,我将测试 ID 更改为真实 ID。

当我在物理连接到我的 PC 的手机上运行该应用程序时,没有显示广告。一些文件说“除非从 Play 商店源下载应用程序,否则真正的 unitID 永远不会起作用”。这意味着我每次都必须将我的应用上传到 Play 管理中心来测试真实 ID。

但是,将应用程序加载到 Play 控制台以进行测试是不适用的,因为;

  1. 复活需要很长时间(审查期)
  2. 如果我什至接受等待审核期,当应用程序变得活跃时,用户可能会下载有问题的应用程序,因为它是用于测试目的而不是可靠的版本。

您可能会说,如果应用程序使用测试 ID,那么它将使用真实 ID,但事实并非如此。

因为我的应用程序适用于测试 ID。当我切换到真实 ID 时,横幅仍然有效,但奖励视频广告却没有。

我的 admob 帐户和所有 adUnits 似乎都可以。这不是我的 adMob 帐户的问题。

所以问题是,有没有办法用 admob 的真实 unitID 测试我的应用程序,而无需将应用程序上传到 Play 控制台并从 Play 商店下载?

谢谢,

标签: android-studioadmobgoogle-play-console

解决方案


对于 Rewareded interstial 广告,请尝试以下代码:

让你的课......实现 OnUserEarnedRewardListener。如果出现任何问题,您将在 onAdFailedToLoad 中收到错误消息,使用 loadAdError.getMessage();

 private RewardedInterstitialAd rewardedInterstitialAd;

@Override
    public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
        Log.i(TAG, "onUserEarnedReward");
        // TODO: Reward the user!
    }

    public void loadRewardedAd() {
        // Use the test ad unit ID to load an ad.
        RewardedInterstitialAd.load(MainActivity.this, getString(R.string.rewarded_interstitial_id),
                new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() {
                    @Override
                    public void onAdLoaded(RewardedInterstitialAd ad) {
                        rewardedInterstitialAd = ad;
                        rewardedInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                            /** Called when the ad failed to show full screen content. */
                            @Override
                            public void onAdFailedToShowFullScreenContent(AdError adError) {
                                Log.i(TAG, "onAdFailedToShowFullScreenContent");
                            }

                            /** Called when ad showed the full screen content. */
                            @Override
                            public void onAdShowedFullScreenContent() {
                                Log.i(TAG, "onAdShowedFullScreenContent");
                            }

                            /** Called when full screen content is dismissed. */
                            @Override
                            public void onAdDismissedFullScreenContent() {
                                Log.i(TAG, "onAdDismissedFullScreenContent");
                            }

                        });
                    }

                    @Override
                    public void onAdFailedToLoad(LoadAdError loadAdError) {
                        Log.e(TAG, "onAdFailedToLoad");
                    }
                });
    }

推荐阅读