【问题标题】:admob interstitial ads implementation in recyclerview not working?recyclerview 中的 admob 插页式广告实施不起作用?
【发布时间】:2021-12-20 06:48:40
【问题描述】:

我正在尝试在我的 android 应用程序中实现 admob 插页式广告...我正在尝试在 recyclerview 中实现广告,它在 onClick 中运行一次。无法再次使用 onClick 侦听器来打开新项目。

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {

private Context mContext;
private List<Anime> mData ;
RequestOptions option;
private InterstitialAd mInterstitialAd;

public RecyclerViewAdapter(Context mContext, List<Anime> mData) {
    this.mContext = mContext;
    this.mData = mData;
    MobileAds.initialize(mContext, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {
        }
    });
    AdRequest adRequest = new AdRequest.Builder().build();
    InterstitialAd.load(mContext,"ca-app-pub-3940256099942544/1033173712", adRequest, new InterstitialAdLoadCallback() {
        @Override
        public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
            // The mInterstitialAd reference will be null until
            // an ad is loaded.
            mInterstitialAd = interstitialAd;
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
            // Handle the error
            mInterstitialAd = null;
        }
    });

    // Request option for Glide
    option = new RequestOptions().centerCrop().placeholder(R.drawable.loading_shape).error(R.drawable.loading_shape);
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    View view ;
    LayoutInflater inflater = LayoutInflater.from(mContext);
    view = inflater.inflate(R.layout.row_items,parent,false);
    final MyViewHolder viewHolder = new MyViewHolder(view) ;
    viewHolder.view_container.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mInterstitialAd != null) {
                mInterstitialAd.show((Activity) mContext);
                mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                    @Override
                    public void onAdDismissedFullScreenContent() {
                        Intent i = new Intent(mContext, WebViewActivity.class);
                        view.startAnimation(AnimationUtils.loadAnimation(mContext, R.anim.clcik));
                        i.putExtra("action_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
                        i.putExtra("puzzle_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
                        i.putExtra("arcade_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
                        i.putExtra("adventure_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
                        i.putExtra("sports_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
                        i.putExtra("racing_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());
                        i.putExtra("zombie_link",mData.get(viewHolder.getAdapterPosition()).getWebsite_link());

                        mContext.startActivity(i);
                        CustomIntent.customType(mContext,"fadein-to-fadeout");
                    }
                });
            }
        }
    });

    return viewHolder;
}

@Override
public void onBindViewHolder(MyViewHolder holder, int position) {

    Glide.with(mContext).load(mData.get(position).getWebsite_logo()).apply(option).into(holder.img_thumbnail);
}

@Override
public int getItemCount() {
    return mData.size();
}

public static class MyViewHolder extends RecyclerView.ViewHolder {

    ImageView img_thumbnail;
    LinearLayout view_container;

    public MyViewHolder(View itemView) {
        super(itemView);

        view_container = itemView.findViewById(R.id.container);
        img_thumbnail = itemView.findViewById(R.id.thumbnail);

    }
}

}

我想以专业的方式执行干净的广告。请帮助我完美地做到这一点。 提前致谢。

【问题讨论】:

    标签: android android-studio android-recyclerview admob interstitial


    【解决方案1】:

    当用户按下返回按钮时,您不应该使用插页式广告:

    不应以妨碍查看应用核心内容的方式放置广告。广告不应以干扰导航或与应用程序的核心内容和功能交互的方式放置。 不合规的实现示例包括但不限于:

    在每次用户操作后放置一个插页式广告,包括但不限于点击、滑动等。在您的应用中每两个用户操作后放置一个插页式广告不应超过一个。请注意,当用户点击应用内的返回按钮时,此要求也适用。

    如果您想要专业的广告实施,请使用Recommended interstitial implementations

    【讨论】:

    • 这不是答案。我无法实现这就是为什么在这里发布。你可以通过编辑我的代码来帮助我。
    • @Litu 您的代码违反了 AdMob 准则。 AdMob 将阻止您在按下后退按钮后展示广告。您应该使用推荐的方式,这需要对您的应用进行结构更改,所以我无法为您发布有用的代码
    • 我刚刚更新了我的问题。你现在能帮帮我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多