AdMob 广告未在回收者视图中正常显示
AdMob ads are not showing properly in recycler view
我正在尝试在回收站视图中实施 admob 横幅广告我想在每个回收站视图项目被 2 整除后显示横幅广告我的问题是当我尝试实施条件广告显示在第二位但更换了回收站从那个地方查看项目为什么回收商查看项目没有显示在显示广告的特定位置。
这是我目前所做的:
public class HomeBookAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private static final int LAYOUT_ADS= 0;
private static final int LAYOUT_BOOKS= 1;
private ArrayList<LoadHomeBooks> list;
private Context context;
AdRequest adRequest;
public HomeBookAdapter(ArrayList<LoadHomeBooks> list,Context context){
this.list = list;
this.context = context;
}
@Override
public int getItemViewType(int position) {
if(!(position == 0) && position % 2 == 0){
return LAYOUT_ADS;
}else{
return LAYOUT_BOOKS;
}
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view =null;
RecyclerView.ViewHolder viewHolder = null;
if(viewType==LAYOUT_ADS)
{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.adview_layout,parent,false);
viewHolder = new AdViewHolder(view);
}
else
{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_book_row,parent,false);
viewHolder= new BookViewHolder(view);
}
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if(holder.getItemViewType() == LAYOUT_ADS){
AdViewHolder adHolder = (AdViewHolder)holder;
adRequest = new AdRequest.Builder().build();
adHolder.mAdView.loadAd(adRequest);
}else{
BookViewHolder bookHolder = (BookViewHolder)holder;
LoadHomeBooks model = list.get(position);
final String bookId = model.getbUid();
final String bookName = model.getbName();
final String bookImage = model.getbImage();
final String bookSub = model.getbSub();
final String bookClass = model.getbClass();
//User Id
final String bId = model.getbId();
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.openbook);
Glide.with(context).load(model.getbImage()).apply(requestOptions).into(bookHolder.homeBookImage);
bookHolder.homeBookName.setText(model.getbName());
bookHolder.homeSubject.setText(model.getbSub());
bookHolder.homeClass.setText(model.getbClass());
}
}
@Override
public int getItemCount() {
return list.size();
}
public class AdViewHolder extends RecyclerView.ViewHolder {
AdView mAdView;
public AdViewHolder(@NonNull View itemView) {
super(itemView);
mAdView = itemView.findViewById(R.id.mAdView);
}
}
public class BookViewHolder extends RecyclerView.ViewHolder {
TextView homeBookName,homeSubject,homeClass;
ImageView homeBookImage;
public BookViewHolder(@NonNull View itemView) {
super(itemView);
homeBookName = itemView.findViewById(R.id.homeBookName);
homeSubject = itemView.findViewById(R.id.homeSubject);
homeClass = itemView.findViewById(R.id.homeClass);
homeBookImage = itemView.findViewById(R.id.homeBookImage);
}
}
}
有人请让我知道我做错了什么或者需要改变什么才能得到想要的结果。任何帮助将不胜感激。
谢谢
我认为您应该使用原生广告而不是横幅广告,因为横幅广告不能像这样实施,因为它会违反 Google Admob 政策。
对于上面的代码,一切看起来都很好,也许你应该检查你的 logcat 以获取更多信息或:
"It could be that you have only recently created a new Ad Unit ID and requesting for live ads. It could take a few hours for ads to start getting served if that is that case. If you are receiving test ads then your implementation is fine. Just wait a few hours and see if you are able to receive live ads then. If not, can send us your Ad Unit ID for us to look into."
所以基本上你需要等几个小时。
我正在尝试在回收站视图中实施 admob 横幅广告我想在每个回收站视图项目被 2 整除后显示横幅广告我的问题是当我尝试实施条件广告显示在第二位但更换了回收站从那个地方查看项目为什么回收商查看项目没有显示在显示广告的特定位置。
这是我目前所做的:
public class HomeBookAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private static final int LAYOUT_ADS= 0;
private static final int LAYOUT_BOOKS= 1;
private ArrayList<LoadHomeBooks> list;
private Context context;
AdRequest adRequest;
public HomeBookAdapter(ArrayList<LoadHomeBooks> list,Context context){
this.list = list;
this.context = context;
}
@Override
public int getItemViewType(int position) {
if(!(position == 0) && position % 2 == 0){
return LAYOUT_ADS;
}else{
return LAYOUT_BOOKS;
}
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view =null;
RecyclerView.ViewHolder viewHolder = null;
if(viewType==LAYOUT_ADS)
{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.adview_layout,parent,false);
viewHolder = new AdViewHolder(view);
}
else
{
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_book_row,parent,false);
viewHolder= new BookViewHolder(view);
}
return viewHolder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if(holder.getItemViewType() == LAYOUT_ADS){
AdViewHolder adHolder = (AdViewHolder)holder;
adRequest = new AdRequest.Builder().build();
adHolder.mAdView.loadAd(adRequest);
}else{
BookViewHolder bookHolder = (BookViewHolder)holder;
LoadHomeBooks model = list.get(position);
final String bookId = model.getbUid();
final String bookName = model.getbName();
final String bookImage = model.getbImage();
final String bookSub = model.getbSub();
final String bookClass = model.getbClass();
//User Id
final String bId = model.getbId();
RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.openbook);
Glide.with(context).load(model.getbImage()).apply(requestOptions).into(bookHolder.homeBookImage);
bookHolder.homeBookName.setText(model.getbName());
bookHolder.homeSubject.setText(model.getbSub());
bookHolder.homeClass.setText(model.getbClass());
}
}
@Override
public int getItemCount() {
return list.size();
}
public class AdViewHolder extends RecyclerView.ViewHolder {
AdView mAdView;
public AdViewHolder(@NonNull View itemView) {
super(itemView);
mAdView = itemView.findViewById(R.id.mAdView);
}
}
public class BookViewHolder extends RecyclerView.ViewHolder {
TextView homeBookName,homeSubject,homeClass;
ImageView homeBookImage;
public BookViewHolder(@NonNull View itemView) {
super(itemView);
homeBookName = itemView.findViewById(R.id.homeBookName);
homeSubject = itemView.findViewById(R.id.homeSubject);
homeClass = itemView.findViewById(R.id.homeClass);
homeBookImage = itemView.findViewById(R.id.homeBookImage);
}
}
}
有人请让我知道我做错了什么或者需要改变什么才能得到想要的结果。任何帮助将不胜感激。
谢谢
我认为您应该使用原生广告而不是横幅广告,因为横幅广告不能像这样实施,因为它会违反 Google Admob 政策。
对于上面的代码,一切看起来都很好,也许你应该检查你的 logcat 以获取更多信息或:
"It could be that you have only recently created a new Ad Unit ID and requesting for live ads. It could take a few hours for ads to start getting served if that is that case. If you are receiving test ads then your implementation is fine. Just wait a few hours and see if you are able to receive live ads then. If not, can send us your Ad Unit ID for us to look into."
所以基本上你需要等几个小时。