Android: AdMob onClickListener - PullRequest
       10

Android: AdMob onClickListener

3 голосов
/ 12 марта 2012

Я отображаю в своем приложении для Android Баннеры AdMob . Я хотел бы, чтобы, когда пользователь нажимал на баннер, он исчез. Я должен попробовать код AdView.setOnClickListener, но он не работает ...

РЕДАКТИРОВАТЬ: это код

private void visual_banner(){
//##### Pubblicità #####
        //Create the adView    
        adView = new AdView(this, AdSize.BANNER, "a14e5bed604ebf8");   
        // Lookup your LinearLayout assuming it’s been given    
        // the attribute android:id="@+id/mainLayout"    
        LinearLayout layout = (LinearLayout)findViewById(R.id.layout_ads_streaming);    
        // Add the adView to it    
        layout.addView(adView); 
        // Initiate a generic request to load it with an ad    
        adView.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                adView.destroy();
                img.setVisibility(View.VISIBLE);
            }
        });
        adView.loadAd(new AdRequest());
        //### FINE PUBBLICITA'
}

Ответы [ 4 ]

11 голосов
/ 13 марта 2012

Попробуйте использовать AdMob adListener для прослушивания событий.

public interface AdListener {
  public void onReceiveAd(Ad ad);
  public void onFailedToReceiveAd(Ad ad, AdRequest.ErrorCode error);
  public void onPresentScreen(Ad ad);
  public void onDismissScreen(Ad ad);
  public void onLeaveApplication(Ad ad);
}

Пусть ваш класс реализует прослушиватель, а затем добавит прослушиватель в adView:

adView.setAdListener(this);

Реализуйте событие onDismissScreen, которое происходит, когда ваше приложение возобновляет управление после обработки клика по объявлению. На этом этапе вы можете удалить AdView, и вы получите кредит за клик.

@Override
public void onDismissScreen(Ad ad) {
  if (adView != null) {
    adView.destroy();
  }
}
3 голосов
/ 12 марта 2012

Я могу помочь вам с добавлением AdWhirl.

Я видел источники и сделал следующее:

public class AdWhirlLayoutCustom extends AdWhirlLayout {

public AdWhirlLayoutCustom(Activity context, String keyAdWhirl) {
    super(context, keyAdWhirl);
}

public AdWhirlLayoutCustom(Context context, AttributeSet attrs) {
    super(context, attrs);
}

// We intercept clicks
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
    boolean result = super.onInterceptTouchEvent(event);
    switch (event.getAction()) {

    case MotionEvent.ACTION_DOWN:
                    // Click!
        break;
    }

    return result;
}

}

1 голос
/ 09 января 2016

Вы можете реализовать onAdLeftApplication () интерфейса AdListener. Этот метод вызывается, когда реклама покидает приложение (например, для перехода в браузер).

adView.setAdListener (новый AdListener () {

        @Override
        public void onAdLeftApplication ()
        {
           //Do your stuff
        }
    }

});

Для получения дополнительной информации проверьте ссылку ниже https://developers.google.com/android/reference/com/google/android/gms/ads/AdListener.html#onAdLeftApplication()

0 голосов
/ 13 февраля 2018

Я согласен, прежде всего, с ответом, но я просто расширяю ответ.Я сделал, как показано ниже

Загрузите объявление в AdView, как показано ниже

AdView adView = (AdView)findViewById(R.id.adView);
adView.loadAd(new AdRequest.Builder()
                    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                    .addTestDevice("your device id")
                    .build());

Теперь установите для этого прослушивателя объявления значение adView.Возьмите одну глобальную логическую переменную, такую ​​как isClicked, поэтому всякий раз, когда пользователь нажимает на объявление и переключается на эту страницу, вызывается метод onAdLeftApplication(), поэтому задайте для этой переменной значение true.Когда пользователь нажимает на объявление, затем перенаправляет на эту страницу объявления, чтобы текущее приложение переходило в состояние onPause.

adView.setAdListener(adListener);

com.google.android.gms.ads.AdListener adListener = new AdListener() {
        @Override
        public void onAdClosed() {
            super.onAdClosed();
        }

        @Override
        public void onAdFailedToLoad(int i) {
            super.onAdFailedToLoad(i);
        }

        @Override
        public void onAdLeftApplication() {
            super.onAdLeftApplication();
            isClicked = true;
        }

        @Override
        public void onAdOpened() {
            super.onAdOpened();
        }

        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
        }

        @Override
        public void onAdClicked() {
            super.onAdClicked();
        }

        @Override
        public void onAdImpression() {
            super.onAdImpression();
        }
    };

Теперь, когда пользователь вернется к текущей активности приложения, вызывается метод onResume(), так что реализуйтедругие ваши вещи будут там или как показано ниже

@Override
    protected void onResume() {
        super.onResume();
        if (isClicked){
            isClicked = false;
            // do your other stuff whatever you want;
        }
    }
...