Android:AdMob onClickListener

问题描述 投票:0回答:5

我在我的 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'
}
android click admob banner
5个回答
12
投票

尝试使用 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();
  }
}

4
投票

我可以帮助您添加 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
投票

您可以实现AdListener接口的onAdLeftApplication()。当广告离开应用程序时(例如,转到浏览器),会调用此方法。

adView.setAdListener(new AdListener() {

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

});

欲了解更多信息,请查看以下链接 https://developers.google.com/android/reference/com/google/android/gms/ads/AdListener.html#onAdLeftApplication()


1
投票

我同意以上所有答案,但我只是扩展答案。我已经做了如下

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

0
投票

使用

AdListener
类,并实现
onAdClicked
。该课程记录在here

AdView adView = view.findViewById(R.id.adView);

adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
        super.onAdClicked();
        // Code here
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.