gpt4 book ai didi

java - 即使请愿书得到回应,Admob 奖励广告也不会显示

转载 作者:行者123 更新时间:2023-12-05 00:02:19 24 4
gpt4 key购买 nike

我有一个用 Java 编写的 Android 应用程序,我通过使用 Admob 广告网络观看奖励广告来提供硬币来使用该应用程序。
我关注了new API implementation guide .当我通过电子邮件收到实现说明并链接到 old API 时,我开始皱眉。 .我必须实现这两个 API 中的哪一个?
另一方面,我开始调解,并使用按钮上传更新以查看奖励广告并获得金币,另一个获得免费金币。只有 Chocolate 网络接受了我,其余的都拒绝了。
它已经这样发布了一周,每天,我的前 500 个用户点击 10 或 20 次,在 Admob 中我收到了这些请求并且响应率为 100%,并且只打印了 1 或 2 个广告.我不得不删除广告,因为没有硬币就无法使用该应用程序。
另一方面,我收到来自中介的拒绝,他们向我询问我的流量,并告诉我他们将无法为我提供该服务,因为它不会产生足够的广告流量。
我理解正确了吗?这是否意味着由于我只有一个只有 500 名用户的应用程序,所以我无法使用 Admob 进行奖励广告交易?
在 Facebook 上也会发生同样的事情吗?
我的插页式广告和横幅广告正常工作,而奖励没有。
如果我编写了错误的代码,我的实现代码如下。使用测试 ID 它可以工作,并不总是在第一次点击时,而是在第二次点击时(有时 mRewardedAd = null )。
build.graddle(模块)

dependencies {
implementation 'com.google.android.gms:play-services-ads:20.5.0'
}
AndroidManifest.xml
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-my-app-id"/>
</application>
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
}
商店.java
@Override
protected void onCreate(Bundle savedInstanceState) {
AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "ca-app-pub-my-rewarded-ad-id",
adRequest, new RewardedAdLoadCallback() {
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error.
mRewardedAd = null;
}
@Override
public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
mRewardedAd = rewardedAd;
mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
@Override
public void onAdShowedFullScreenContent() {
// Called when ad is shown.
}

@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when ad fails to show.
}

@Override
public void onAdDismissedFullScreenContent() {
// Called when ad is dismissed.
// Set the ad reference to null so you don't show the ad a second time.
mRewardedAd = null;
}
});
}
});
Button btnAdd = findViewById(R.id.btnAdd);
btnAdd.setOnClickListener(v -> {
if (mRewardedAd != null) {
Activity activityContext = Shop.this;
mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
daCoinsAdd();
}
});
} else {
switch (languaje) {
case "es": {
Toast toast = Toast.makeText(getApplicationContext(), "No cargó el anuncio.", Toast.LENGTH_SHORT);
toast.show();
break;
}
case "it": {
Toast toast = Toast.makeText(getApplicationContext(), "Non ha caricato l'annuncio.", Toast.LENGTH_SHORT);
toast.show();
break;
}
case "fr": {
Toast toast = Toast.makeText(getApplicationContext(), "Il n'a pas chargé l'annonce.", Toast.LENGTH_SHORT);
toast.show();
break;
}
default: {
Toast toast = Toast.makeText(getApplicationContext(), "It did not load the ad.", Toast.LENGTH_SHORT);
toast.show();
break;
}
}
}
});
}
由于我的应用是新的并且我没有流量,或者我做错了什么,所以在第一次点击时广告没有加载是正常的?

最佳答案

为确保您的实现正确且正常工作,请使用 setTestDeviceIds() 函数,该函数每次都会为您成功加载测试广告,无论是奖励广告还是简单的横幅添加。这是代码:

MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});

String myTestID = "6A0C784094CAEC07E49258843B0FC530";
if(App.TestMode) {
List<String> testDeviceIds = Arrays.asList(myTestID);
RequestConfiguration configuration = new RequestConfiguration.Builder().setTestDeviceIds(testDeviceIds).build();
MobileAds.setRequestConfiguration(configuration);
}
当然,您应该替换您的测试ID,以找到您的测试ID:
1- 加载您的广告集成应用并发出广告请求。
2- 检查 logcat 输出是否有如下所示的消息,该消息显示您的设备 ID 以及如何将其添加为测试设备:
LogCat 输出将是这样的:
I/Ads:使用 RequestConfiguration.Builder.setTestDeviceIds(Arrays.asList("33BE2250B43518CCDA7DE426D04EE231"))
在此设备上获取测试广告。”
将您的测试设备 ID 复制到剪贴板。
更多信息 visit this link .

关于java - 即使请愿书得到回应,Admob 奖励广告也不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70313684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com