загружать объявление admob в действии и использовать его в другом фрагменте, чтобы сократить время загрузки объявления

У меня есть действие, в котором я заменяю фрагмент при нажатии одной из кнопок, помещенных во фрагмент. При нажатии на фрагмент заменяет текущий фрагмент другим фрагментом.

Мой вопрос: нужно ли мне снова и снова вызывать приведенный ниже код для каждого фрагмента в одном и том же действии, или я могу поместить код в действие и показать рекламу фрагментами

    mAdView = (AdView)v.findViewById(R.id.beautyfragment);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

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

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

У меня есть несколько вопросов по этому поводу->

  1. Могу ли я загрузить объявление в действии и отображать его во фрагменте, чтобы не требовалось время для отображения во фрагментах, помещенных в одно и то же действие при переходе между фрагментами. Если да, то скажите мне его код.

  2. Имеет ли значение использование другого идентификатора adUnitId для баннеров, отображаемых на экране, в одном и том же фрагменте или в разных фрагментах в рамках одного и того же действия?


person Sarthakpandit    schedule 25.11.2016    source источник
comment
да, вы можете разместить объявление в действии   -  person Vishal Sanghani    schedule 25.11.2016
comment
@ Вишал, пожалуйста, полностью изучите вопрос.   -  person Sarthakpandit    schedule 25.11.2016
comment
есть время для получения объявления и время для обновления объявления. Время получения зависит от скорости интернета. Каждый макет загружает собственное объявление. Вы можете создать офлайн-рекламу, если хотите, и показывать ее в любое время.   -  person JuLes    schedule 25.11.2016
comment
@ Джулс, это не то, о чем я спрашиваю   -  person Sarthakpandit    schedule 25.11.2016
comment
@Jules Мне нужно знать способ загрузки объявления в действии и его отображения во фрагментах, в то время как я совершаю транзакцию фрагмента в том же действии.   -  person Sarthakpandit    schedule 25.11.2016
comment
пожалуйста, перефразируйте первый вопрос, в том, что у вас есть и чего вы хотите достичь.   -  person JuLes    schedule 25.11.2016
comment
так практично, вы всегда хотите отображать рекламу, независимо от текущего фрагмента/перехода и т. д.   -  person JuLes    schedule 25.11.2016
comment
да, мне нужно отобразить рекламу, но реклама помещается внутри макета фрагмента. Теперь мой вопрос заключается в том, что всякий раз, когда я совершаю транзакцию фрагмента, реклама загружается, что занимает 3-4 секунды. я пытаюсь найти способ, чтобы объявление отображается сразу после открытия фрагмента.   -  person Sarthakpandit    schedule 25.11.2016


Ответы (2)


Вы можете контролировать, находится ли AdView. В соответствии с вашими государственными требованиями вы можете поставить AdView

  1. Непосредственно в вашу активность, под фрагментом, который вы меняете местами.
  2. Во фрагмент (который размещается под фрагментом, который вы меняете местами).

Выбор за вами.

person William    schedule 26.11.2016

Ok. Вы хотите загрузить рекламу в свою основную деятельность и быстро показать ее во фрагменте по мере загрузки фрагмента. 1- Вы должны загрузить рекламу в метод onCreate активности один раз и также установить AdListener. 2- В AdListener вы можете снова загрузить рекламу, когда пользователь закроет рекламу в методе onAdClosed. 3- Вам нужно показывать рекламу при совершении транзакции фрагмента. (которое объявление уже загружено в методе активности onCreate) 4. Пользователь закроет объявление, и объявление будет снова загружено в фоновом режиме в методе onAdClosed, поэтому оно будет отображаться снова, когда пользователь переключится на другой фрагмент.

Вот код для добавления в метод onCreate вашего основного действия.

    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("your ad unit id");
    mInterstitialAd.loadAd(new AdRequest.Builder()
            .addTestDevice("your test device id")
            .build());

    mInterstitialAd.setAdListener(new AdListener(){
        @Override
        public void onAdLoaded() {
            Log.e("TAG", "Ad loaded");
        }

        @Override
        public void onAdClosed() {
            Log.i("TAG", "Ad closed");
            mInterstitialAd.loadAd(new AdRequest.Builder()
                    .addTestDevice("your test device id")
                    .build());
        }
    });

А вот код для фрагментной транзакции.

FragmentManager fm = getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.content, fragment);
        ft.commit();

        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        }
person Ahsan Khan    schedule 26.10.2017