私はこのフォーラムと Android の世界の両方で初心者です。「Reklamsız Bilgi Yarışması」という名前のシングルプレイヤー トリビア ゲームを開発しました。このゲームは私のローカル言語のみをサポートしていますが、世界中からアクセスできます。
ガイドに従って AdColony を AdMob アカウントに統合したところ、テスト動画広告で完璧な結果が得られました。
しかし、ライブに行った後、何も起こりませんでした。私の顧客の多くは、広告ビデオを取得できないと書いています。また、admob では 650 件のリクエストが発生し、そのうち 4 件だけが動画を取得しました。
AdColony の統計では、5 人の幸運な男だけが動画をリクエストし、動画全体を視聴して報酬を受け取りました。
では、どうしてでしょうか?何百ものリクエストがありましたが、そのうちの %0.25 だけが AdMob (または AdColony) によって応答されました。理解できませんでした。
最後に、私の顧客の %98% はトルコから、%1 はアゼルバイジャンから、%1 はドイツからです。
コーディングに誤りがある可能性はありますか? エミュレーターではなく、物理デバイスでテスト広告を見たからです。
ありがとう !
<<<<<<<<<<< マニフェストでは >>>>>>>>>>>>>>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
<activity android:name="com.jirbo.adcolony.AdColonyOverlay"
android:configChanges="keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<activity android:name="com.jirbo.adcolony.AdColonyFullscreen"
android:configChanges="keyboardHidden|screenSize"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
<activity android:name="com.jirbo.adcolony.AdColonyBrowser"
android:configChanges="keyboardHidden|screenSize"
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" />
マニフェストに必要なすべてのコードがあると思います
<<<<<<<<<>>>>>>>>>>>>
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.android.gms:play-services-ads:9.8.0'
compile 'com.google.firebase:firebase-core:9.8.0'
}
apply plugin: 'com.google.gms.google-services'
ライブラリには、「Adcolony *jar」があります
<<<<<<<<<<< Java の場合 >>>>>>>>>>>>>
import com.jirbo.adcolony.AdColony;
import com.jirbo.adcolony.AdColonyAdapter;
import com.jirbo.adcolony.AdColonyBundleBuilder;
import com.jirbo.adcolony.*;
import com.google.ads.mediation.admob.AdMobAdapter;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
public class oyunsonu extends Activity implements RewardedVideoAdListener{
// I Have those implementation with the importations stated above
private static final String AD_UNIT_ID = "xxxxxxxx";
private static final String APP_ID = "xxxxxxxx";
private static final String LOGTAG = "GMS";
private boolean mIsRewardedVideoLoading;
private RewardedVideoAd mRewardedVideoAd2;
private final Object mLock = new Object();
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.oyunsonu);
checkGooglePlayServicesAvailable();
MobileAds.initialize(this, APP_ID);
mRewardedVideoAd2 = MobileAds.getRewardedVideoAdInstance(this);
mRewardedVideoAd2.setRewardedVideoAdListener(this);
loadRewardedVideoAd();
}
private void loadRewardedVideoAd() {
synchronized (mLock) {
if (!mIsRewardedVideoLoading && !mRewardedVideoAd2.isLoaded()) {
mIsRewardedVideoLoading = true;
Bundle extras = new Bundle();
extras.putBoolean("_noRefresh", true);
AdRequest adRequest = new AdRequest.Builder().addNetworkExtrasBundle(AdColonyAdapter.class, extras)
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.build();
mRewardedVideoAd2.loadAd(AD_UNIT_ID, adRequest);
}
}
}
private void showRewardedVideo() {
if (mRewardedVideoAd2.isLoaded()) {
mRewardedVideoAd2.show();
}
}
private boolean checkGooglePlayServicesAvailable()
{
final int status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()) ;
if (status == ConnectionResult.SUCCESS)
{
return true;
}
Log.e(LOGTAG, "Google Play Services not available: " + GooglePlayServicesUtil.getErrorString(status));
if (GooglePlayServicesUtil.isUserRecoverableError(status))
{
final Dialog errorDialog = GooglePlayServicesUtil.getErrorDialog(status, this, 1);
if (errorDialog != null)
{
errorDialog.show();
}
}
return false;
}
@Override
public void onRewardedVideoAdLeftApplication() {
}
@Override
public void onRewardedVideoAdClosed() {
loadRewardedVideoAd();
}
@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
mIsRewardedVideoLoading = false;
Toast.makeText(this, "Sunucu Kaynaklı Hata! Ödüllü Reklam Mevcut Değil!", Toast.LENGTH_SHORT).show();
reklamizlex.setVisibility(View.INVISIBLE);
}
@Override
public void onRewardedVideoAdLoaded() {
mIsRewardedVideoLoading = false;
reklamizlex.setVisibility(View.VISIBLE);
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewarded(RewardItem reward) {
rekflag = 1;
yenidenoyna.setBackgroundResource(R.drawable.butonbosgri);
anamenuyegit.setBackgroundResource(R.drawable.butonbosgri);
reklamizlex.setBackgroundResource(R.drawable.butonbosgri);
final Intent yenidenoynamakr = new Intent(getApplicationContext(), sorulars.class);
yenidenoynamakr.putExtra("rekdurumu", rekflag);
yenidenoynamakr.putExtra("sonskorx", sonskorz);
yenidenoynamakr.putExtra("katsec", katdurumu);
yenidenoynamakr.putExtra("ajdurumu", ajsay);
yenidenoynamakr.putExtra("yydurumu", yysay);
yenidenoynamakr.putExtra("sdegdurumu", dsay);
yenidenoynamakr.putExtra("ssaydurumu", ssay);
yenidenoynamakr.putExtra("jokkodurumu", jokko);
startActivity(yenidenoynamakr);
}
@Override
public void onRewardedVideoStarted() {
}
}
これが私が使用したすべてのコードで、「リワード動画広告」に関するものです。