Видео с вознаграждением Не загружается с сервера объявлений. Не удалось загрузить? Android

Я пытаюсь внедрить рекламу admob во фрагменте, но прошел месяц, а я все еще получаю ошибку 3 (нет объявлений для заполнения).

Я пробовал использовать новый идентификатор, но все равно получаю ту же ошибку, тестовые объявления работают нормально. logcat:


    08-03 16:59:21.653 9892-10265/? W/AdvertisingIdClient: Error while reading from SharedPreferences
    java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
    at android.app.ContextImpl.checkMode(ContextImpl.java:2134)
    at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:354)
    at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:349)
    at 
 com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(Unknown Source)
    at com.duapps.ad.base.GoogleAdvertisingIdHelper.getAdIdNormal(GoogleAdvertisingIdHelper.java:46)
        at com.duapps.ad.base.GoogleAdvertisingIdHelper.getAdId(GoogleAdvertisingIdHelper.java:33)
        at com.duapps.ad.base.HttpParamsHelper.commonParams(HttpParamsHelper.java:118)
        at com.duapps.ad.stats.ToolStatsCore.pushToServer(ToolStatsCore.java:370)
        at com.duapps.ad.stats.ToolStatsCore.report(ToolStatsCore.java:325)
        at com.duapps.ad.stats.ToolStatsCore.handleMessage(ToolStatsCore.java:217)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:154)
        at android.os.HandlerThread.run(HandlerThread.java:61)
        08-03 16:59:24.873 26224-26246/? D/DynamitePackage: Instantiating 
        com.google.android.gms.ads.adshield.ChimeraAdShieldCreatorImpl
        08-03 16:59:25.489 25315-25315/com.nsdeveloper.apppromotion I/Ads: 
        Starting ad request.
        08-03 16:59:25.489 25315-25315/com.nsdeveloper.apppromotion I/Ads: Use 
       AdRequest.Builder.addTestDevice("10C9D896CF812C194BD949D82F766C9B") 
        to get test ads on this device.
        08-03 16:59:25.850 25315-25332/com.nsdeveloper.apppromotion I/Ads: No fill from ad server.
        08-03 16:59:25.850 25315-25315/com.nsdeveloper.apppromotion W/Ads: Failed to load ad: 3

Я реализую рекламу во фрагменте, поэтому в контексте я передавал getActivity ():

MobileAds.initialize(getActivity(), "xxxxxxxxxxxxxxxxxxx");
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(getActivity());
    mRewardedVideoAd.setRewardedVideoAdListener(rewardAdListener);
    loadRewardedAdVideo();

RewardVideoAdListener

RewardedVideoAdListener rewardAdListener = new RewardedVideoAdListener() {

    @Override
    public void onRewardedVideoAdLoaded() {
        Toast.makeText(getActivity(),"ad is loaded",Toast.LENGTH_SHORT).show();
        Log.d("ADS_SHOW","loaded");


    }

    @Override
    public void onRewardedVideoAdOpened() {

    }

    @Override
    public void onRewardedVideoStarted() {

    }

    @Override
    public void onRewardedVideoAdClosed() {
        loadRewardedAdVideo();
    }

    @Override
    public void onRewarded(RewardItem rewardItem) {
        int rewardPoints =   rewardItem.getAmount();
        int userPoints = getActivity().getSharedPreferences(PREFERENCE,0).getInt(POINTS,0) - rewardPoints;
        userRef.child(POINTS).setValue(userPoints);
        getActivity().getSharedPreferences(PREFERENCE,0).edit().putInt(POINTS,userPoints).commit();




    }

    @Override
    public void onRewardedVideoAdLeftApplication() {

    }

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) {
        Toast.makeText(getActivity(),"No ads to show "+i,Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRewardedVideoCompleted() {





    }
};


private void loadRewardedAdVideo(){
    if (! mRewardedVideoAd.isLoaded()){
         mRewardedVideoAd.loadAd("ca-app-pub-xxxxxxxxx", new AdRequest.Builder().build());
    }
}

пожалуйста, покажите нам код для рекламы admob

Nirav Bhavsar 03.08.2018 13:46

Вы используете SharePreference в режиме MODE_WORLD_READABLE где-нибудь в вашем коде? Также разместите свой код.

ADM 03.08.2018 13:48

Я использую SharedPreferences с режимом по умолчанию 0, и я не думаю, что это было связано с ошибкой admob

Samir Shaikh 03.08.2018 13:59

Просто закомментируйте весь код внутри onRewarded(), просто распечатайте журнал. И проверьте, получите ли вы на этот раз ошибку или нет.

ADM 03.08.2018 14:30

получение той же ошибки @ADM

Samir Shaikh 03.08.2018 14:47

Ну, я никогда не работал с admob. Но вы должны добавить зависимость, которую вы используете, с вопросом. См. Также Эта проблема. Это может проблема версии. Использовать последнюю зависимость от Здесь.

ADM 03.08.2018 14:51

Я использую обновленные зависимости, и, как я уже сказал, тестовые объявления работают отлично, но когда я использую свой идентификатор, я получаю ошибку 3 (и уже месяц я получал эту ошибку) @ADM

Samir Shaikh 03.08.2018 14:58
1
7
1 509
2

Ответы 2

Попробуйте запустить свою рекламу в тестовом режиме, если он покажет вам ошибку, тогда ваш код должен быть неправильным, прочтите документ реализации admob Документы Google для видеорекламы

Одна вещь, которую я заметил, что вы можете попытаться прочитать общее предпочтение в общедоступном режиме, оно должно быть написано в частном режиме, поэтому возникает ошибка.

Если вы видите рекламу в тестовом режиме, возможно, у меня есть две вещи: один идентификатор вашего приложения может быть неправильным, во-вторых, в вашем районе нет такой рекламы с вознаграждением, поэтому Google не может заполнить рекламу.

Я пробовал запускать рекламу в тестовом режиме, и она отлично работает. и я нигде не использую sharedPreference в общедоступном режиме, я проверял его два раза. Я также попытался создать новый идентификатор приложения.

Samir Shaikh 05.08.2018 10:24

Убедитесь, что ваш идентификатор приложения и идентификатор объявления верны или нет, он не должен выдавать ошибку, если он работает в тестовом режиме.

vaibhav sharma 05.08.2018 10:27

У меня была такая же проблема - я читал в Интернете, что Google может позже решить, включить ли вашу рекламу или нет.

Иногда они отключают рекламу, потому что разработчик нажимает на нее. Многие разработчики поступали так в прошлом, и поэтому Google кажется осторожным с этим.

В конце концов, я не решил свою проблему с google - я также написал в их поддержку и зарегистрировался в аудитории сети facebook - это то же самое, только facebook. Теперь я их получаю. Существует также система, которая позволяет вам регистрировать тестовые устройства - это означает, что по идентификатору вашего телефона вы также можете нажимать на рекламу, и с этим не будет проблем - поскольку теперь это тестовое устройство.

Видео с вознаграждением FB

Другие вопросы по теме