e-n*_*ure 5 facebook-android-sdk facebook-ads-api facebook-audience-network
我想实现 Facebook Audience Network“原生广告”并将其显示在 RecyclerView 列表中每第 N 个位置处。我已经在同一个应用程序中运行了常规横幅,并且没有任何问题。但是,原生广告无法加载,我只是得到一个没有内容的空白矩形。
当我检查日志文件时,我可以看到我一直以 nativeAd.setAdListener(new NativeAdListener()) 的“onError”结束......收到此错误消息:
广告请求中的显示格式与为此展示位置指定的显示格式不匹配。每个展示位置只能与单一显示格式一起使用。您可以创建多个展示位置以使用多种显示格式。
我的布局 XML 如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/outer_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue"
android:orientation="vertical"
android:padding="@dimen/outer_padding_listview_item">
<com.facebook.ads.NativeAdLayout
android:id="@+id/native_ad_container"
android:layout_width="250dp"
android:layout_height="280dp"
android:layout_gravity="center"
android:background="@color/white"
android:orientation="vertical" />
Run Code Online (Sandbox Code Playgroud)
FacebookNativeAdListViewItemHolder.java
public class FacebookNativeAdListViewItemHolder extends RecyclerView.ViewHolder {
private static final String TAG = FacebookNativeAdListViewItemHolder.class.getSimpleName();
private final NativeAd nativeAd;
public View view;
private Context context;
@BindView(R.id.outer_layout)
LinearLayout outerLayout;
@BindView(R.id.native_ad_container)
NativeAdLayout nativeAdContainer;
public FacebookNativeAdListViewItemHolder(View view, Context context) {
super(view);
ButterKnife.bind(this, view);
this.view = view;
this.context = context;
nativeAd = new NativeAd(context, Konstanten.FACEBOOK_AUDIENCE_NETWORK_NATIVE_AD_IN_RECYCLER_VIEW);
nativeAd.setAdListener(new NativeAdListener() {
@Override
public void onError(Ad ad, AdError adError) {
Log.d(TAG, "onError(): " + adError.getErrorMessage());
}
@Override
public void onAdLoaded(Ad ad) {
Log.d(TAG, "FacebookNativeAdListViewItemHolder onAdLoaded()");
// Render the Native Ad Template
View adView = NativeAdView.render(context, nativeAd);
// Add the Native Ad View to your ad container.
// The recommended dimensions for the ad container are:
// Width: 280dp - 500dp
// Height: 250dp - 500dp
// The template, however, will adapt to the supplied dimensions.
nativeAdContainer.addView(adView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 800));
}
@Override
public void onAdClicked(Ad ad) {
Log.d(TAG, "FacebookNativeAdListViewItemHolder onAdClicked()");
}
@Override
public void onLoggingImpression(Ad ad) {
Log.d(TAG, "FacebookNativeAdListViewItemHolder onLoggingImpression()");
}
@Override
public void onMediaDownloaded(Ad ad) {
Log.d(TAG, "FacebookNativeAdListViewItemHolder onMediaDownloaded()");
}
});
// Initiate a request to load an ad.
nativeAd.loadAd();
}
Run Code Online (Sandbox Code Playgroud)
}
一切都构建得很好,我可以在回收器视图中看到应该显示原生广告的矩形。但问题是它只是保持白色并且没有显示任何内容(参见屏幕截图)。
| 归档时间: |
|
| 查看次数: |
1276 次 |
| 最近记录: |