我有一个用Java编写的Android应用程序,使用Admob广告网络通过观看悬赏广告来给用户提供硬币以使用应用程序。
我按照新API实现指南进行了操作。然而当我收到电子邮件的实施说明时,他们链接到旧的API。我应该实现哪个API呢?
另一方面,我启动了媒体处理,并上传了一个更新版本,其中包含一个按钮来查看可获得的悬赏广告并获取硬币,以及另一个按钮以获取免费硬币。只有Chocolate网络接受了我,其余的都被拒绝了。
这已经发布了一周了,每天我的前500个用户都会点击10或20次,在Admob上我得到了这些请求和100%的响应率,但只有1或2个广告被印出来。我不得不删除广告,因为没有硬币就无法使用该应用程序。
另一方面,我收到一份媒体处理的拒绝,他们询问我的流量,并告诉我他们将无法提供服务,因为它无法产生足够的广告流量。
我理解得对吗?这是否意味着由于我只有一个只有500个用户的应用程序,我无法通过Admob进行悬赏式广告交易? 如果在Facebook上会发生同样的事情吗? 我的插页式广告和横幅广告都可以正确工作,但悬赏通告不行。
我的实施代码(如果我编写错了)如下所示。使用测试ID可以工作,但不总是在第一次点击上(有时是mRewardedAd =null
)。
build.graddle (module)
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) {
}
});
}
Shop.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;
}
}
}
});
}
广告在第一次点击时无法加载,这是正常现象,因为我的应用程序是新的,并且我没有流量,或者我做错了什么吗?