0
私は、オーディエンスネットワークを使用してアンドロイド上にネイティブ広告を作成しています。問題は、広告が表示されているがクリックしていないことです。広告をクリックして登録したビューのいずれかをクリックすると、何も起こりません。私は、カスタムアダプタでカスタムリストビューに広告をロードしています:Facebookネイティブ広告はクリックしません:Android
public class StaticListView extends ListView {
public StaticListView(Context context) {
super(context);
}
public StaticListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public StaticListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK, MeasureSpec.AT_MOST));
getLayoutParams().height = getMeasuredHeight();
}
}
そして最後に、ここで私の部分である:ここでは
static StaticListView turning_up_lv; //My custom listview
private static void showNativeAd() {
nativeAd = new NativeAd(context, AD_ID);
nativeAd.setAdListener(new AdListener() {
@Override
public void onError(Ad ad, AdError error) {
}
@Override
public void onAdLoaded(Ad ad) {
if (ad != nativeAd) {
return;
}
isAdLoaded = true;
if ((turning_up_lv.getAdapter()) != null && turning_up_lv.getCount() > 3) {
((MyAdapter) turning_up_lv.getAdapter()).addNativeAd(ad, false);
}
}
@Override
public void onAdClicked(Ad ad) {
}
});
nativeAd.loadAd(NativeAd.MediaCacheFlag.ALL);
}
は、カスタムリストビューのコードです広告をアダプターにロードします。
private void inflateAd(final NativeAd nativeAd, MyViewHolder holder, final View view) {
// Create native UI using the ad metadata.
// Setting the Text
holder.time_tv.setText("Sponsored");
holder.native_ad_social_context.setText(nativeAd.getAdSocialContext());
holder.native_ad_call_to_action.setText(nativeAd.getAdCallToAction());
holder.native_ad_call_to_action.setVisibility(View.VISIBLE);
holder.un_tu.setText(nativeAd.getAdTitle());
holder.comment_or_caption_tv.setText(nativeAd.getAdBody());
// Downloading and setting the ad icon.
NativeAd.Image adIcon = nativeAd.getAdIcon();
NativeAd.downloadAndDisplayImage(adIcon, holder.ad_iv);
// Downloading and setting the cover image.
NativeAd.Image adCoverImage = nativeAd.getAdCoverImage();
int bannerWidth = adCoverImage.getWidth();
int bannerHeight = adCoverImage.getHeight();
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int mediaWidth = holder.native_ad_media.getWidth() > 0 ? holder.native_ad_media.getWidth() : metrics.widthPixels;
holder.native_ad_media.setLayoutParams(new LinearLayout.LayoutParams(
mediaWidth,
Math.min(
(int) (((double) mediaWidth/(double) bannerWidth) * bannerHeight),
metrics.heightPixels/3)));
holder.native_ad_media.setAutoplay(AdSettings.isVideoAutoplay());
holder.native_ad_media.setNativeAd(nativeAd);
addLoadedToMediaView = true;
final ArrayList<View> clickableViews = new ArrayList<>();
clickableViews.add(holder.native_ad_media);
clickableViews.add(holder.native_ad_social_context);
clickableViews.add(holder.native_ad_call_to_action);
nativeAd.registerViewForInteraction(view, clickableViews);
}
私は同様の問題に直面している、あなたの問題の解決策を見つけましたか? – Ezio
私はトリックをやめたstaticlistviewの代わりにrecyclerviewを使用しました。 –
私はすでにリサイクラビューを使用していますが、広告はいくつかの場所でクリック可能ではありません – Ezio