首页 > 解决方案 > Google Ad Manager AdListener#onAdClicked() 回调未触发

问题描述

下午好。我正在尝试将 Google Ad Manager 实施到项目(不是 AdMob)以呈现广告内容。

根据我的需要,我使用带有 AdSize.FLUID 的原生广告(不是横幅广告)。 出于某种原因,当我尝试将AdListener设置为PublisherAdView 时。onAdClicked()回调不会触发(其他回调完美运行)。有人遇到过这个奇怪的问题吗?你是如何解决的?

如果我通过AdLoader.Builder()加载广告内容,则PS onAdClicked()回调有效,但由于项目结构,我无法使用它。

PPS 我使用的是以下版本的播放服务广告版本

 implementation 'com.google.android.gms:play-services-ads:19.6.0'
  PublisherAdView publisherAdView = new PublisherAdView(context);
        publisherAdView.setAdUnitId(AD_UNIT_ID);
        publisherAdView.setAdSizes(AdSize.FLUID);
        publisherAdView.setAdListener(new AdListener() {
            @Override
            public void onAdClosed() {
                super.onAdClosed();
            }

            @Override
            public void onAdFailedToLoad(LoadAdError loadAdError) {
                Log.e("!", "onAdFailedToLoad: ");
                super.onAdFailedToLoad(loadAdError);
            }

            @Override
            public void onAdOpened() {
                Log.e("!", "onAdOpened: " );
                super.onAdOpened();

            }

            @Override
            public void onAdLoaded() {
                Log.e("!", "onAdLoaded: " );
                super.onAdLoaded();
            }

            @Override
            public void onAdClicked() {
                super.onAdClicked();
                Log.e("!", "onAdClicked: ");
            }
        });

        PublisherAdRequest.Builder builder = new PublisherAdRequest.Builder();
        publisherAdView.loadAd(builder.build());

标签: androidadsgoogle-ad-manager

解决方案


我没有找到如何解决这个问题。由于项目结构,我有一些限制,所以我用自定义视图包装了 Google 广告视图(没什么特别的,只是一个带有广告视图和占位符的容器 + 一些用于构建广告和更改占位符可见性的方法)。

有了这个解决方案,我就可以使用 AdLoader.Builder()。


推荐阅读