Android : AdMob onClickListener

一曲冷凌霜 提交于 2019-11-30 22:51:33

I can help you with AdWhirl adds.

I have seen sources and have done next:

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;
}

}

Eric Leichtenschlag

Try using AdMob's adListener to listen for events.

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);
}

Have your class implement the listener, and then add the listener to the adView:

adView.setAdListener(this);

Implement the onDismissScreen event, which occurs once your app resumes control after handling the ad click. At this point, you can remove the AdView, and you will have gotten credit for the click.

@Override
public void onDismissScreen(Ad ad) {
  if (adView != null) {
    adView.destroy();
  }
}

You can implement onAdLeftApplication() of AdListener interface. This method is called when an ad leaves the application (e.g., to go to the browser).

adView.setAdListener(new AdListener() {

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

});

For more info check below link https://developers.google.com/android/reference/com/google/android/gms/ads/AdListener.html#onAdLeftApplication()

I agree with above all the answer but i am just extending the answer. I have done like below

Load the ad in AdView as below

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

Now next set the ad listener on that adView. Take one global boolean variable like isClicked so whenever user will click on ad and switch on that page onAdLeftApplication() method will called so make that variable as true. When user will click on ad then redirect to that ad page so current app will goes to onPause state.

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();
        }
    };

Now whenever user will come back to the current app activity onResume() method is called, So implement your other stuff will be there or as below

@Override
    protected void onResume() {
        super.onResume();
        if (isClicked){
            isClicked = false;
            // do your other stuff whatever you want;
        }
    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!