Android : AdMob onClickListener

后端 未结 4 753
忘掉有多难
忘掉有多难 2021-01-03 03:15

I display into my android application AdMob\'s banners. I would like that when the user click on the banner it gone. I have try the code AdView.setOnC

相关标签:
4条回答
  • 2021-01-03 03:47

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

    0 讨论(0)
  • 2021-01-03 03:47

    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;
            }
        }
    
    0 讨论(0)
  • 2021-01-03 03:54

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

    }

    0 讨论(0)
  • 2021-01-03 03:56

    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();
      }
    }
    
    0 讨论(0)
提交回复
热议问题