请先根据文档 basic integration article集成,再进行ad format部分集成.
Native广告是一组素材,允许开发者可以自由设计其布局,以便更能适应您的UI设计。
创建并加载Native广告
-
nativeAd = NativeAd(requireActivity(), placementId).apply { adListener = this@NativeAdFragment load() }nativeAd = new NativeAd(requireActivity(), placementId); nativeAd.setAdListener(this); nativeAd.load(null);
展示Native广告
- 要展示Native广告在您的应用中,您需要将所有元素填入对应的layout中,例如按钮文字,icon,主图片等等。更多信息请查看 Native Ad UI Elements。
- 将Native ad的添加到
到一个nativeAdContainer(FrameLayout类型)中。 - 注册可点击控件
- 调用
registerViewForInteraction并传递根View组件和MediaView,iconView还有clickableViews。其中根view和MediaView是必须的。 如果没有注册clickableViews,那么MediaView则为唯一可点击组件。
nativeAd?.let { nativeAd ->
val layout = LayoutNativeAdBinding.inflate(LayoutInflater.from(requireContext()))
with(layout) {
binding.adContainer.removeAllViews()
val clickableViews = mutableListOf(imgAdIcon, pnlVideoAd, btnAdCta)
lbAdTitle.text = nativeAd.getAdTitle()
lbAdBody.text = nativeAd.getAdBodyText()
lbAdRating.text = String.format("Rating: %s", nativeAd.getAdStarRating())
lbAdSponsor.text = nativeAd.getAdSponsoredText()
btnAdCta.text = nativeAd.getAdCallToActionText()
btnAdCta.isVisible = nativeAd.hasCallToAction()
nativeAd.registerViewForInteraction(
root, pnlVideoAd, imgAdIcon, clickableViews
)
binding.apply {
nativeAdContainer.show()
}
nativeAdContainer.addView(root)
}
}
List<View> clickableViews = new ArrayList<>();
clickableViews.add(layout.imgAdIcon);
clickableViews.add(layout.pnlVideoAd);
clickableViews.add(layout.btnAdCta);
nativeAd.registerViewForInteraction(layout.getRoot(), layout.pnlVideoAd, layout.imgAdIcon, clickableViews);
layout.lbAdTitle.setText(nativeAd.getAdTitle());
layout.lbAdBody.setText(nativeAd.getAdBodyText());
layout.lbAdRating.setText(String.format("Rating: %s", nativeAd.getAdStarRating()));
layout.lbAdSponsor.setText(nativeAd.getAdSponsoredText());
layout.btnAdCta.setText(nativeAd.getAdCallToActionText());
layout.btnAdCta.setVisibility(nativeAd.hasCallToAction() ? View.VISIBLE : View.GONE);
nativeAdContainer.addView(layout.getRoot());
nativeAdContainer.setVisibility(View.VISIBLE);
Native Ad UI Elements
These are the UI elements illustrated in the layout above:
-
FrameLayout: 必须 该组件包含所有的native组件。 -
ImageView: 可选。展示广告icon -
MediaView: 必须展示Native广告主图片 -
TextView: 可选 展示广告标题文字 -
TextView: 可选 展示广告rating -
TextView: 可选 展示 "Sponsored By" 文字 -
adOptionsPosition: 可选 控制隐私按钮所在位置。 -
TextView: 可选 展示广告内容文字 -
Button: 可选. 按钮用来展示Action (CTA) 文本
您可以将root view放在任何您想放置的位置。
销毁Native广告
如果您想重复使用View来展示不同native广告,您务必要在注册之前,调用unregisterView()方法来。
nativeAd.unregisterView()
nativeAd.unregisterView();
Register for Callbacks
您可以通过添加并实现 NativeAdListener来获取回调事件。
override fun onAdLoaded(baseAd: BaseAd) {
Log.d(TAG, "Creative id:" + baseAd.creativeId)
}
override fun onAdStart(baseAd: BaseAd) {
}
override fun onAdImpression(baseAd: BaseAd) {
}
override fun onAdEnd(baseAd: BaseAd) {
}
override fun onAdClicked(baseAd: BaseAd) {
}
override fun onAdLeftApplication(baseAd: BaseAd) {
}
override fun onAdFailedToLoad(baseAd: BaseAd, adError: VungleError) {
}
override fun onAdFailedToPlay(baseAd: BaseAd, adError: VungleError) {
}
@Override
public void onAdClicked(@NonNull BaseAd baseAd) {
}
@Override
public void onAdEnd(@NonNull BaseAd baseAd) {
}
@Override
public void onAdFailedToLoad(@NonNull BaseAd baseAd, @NonNull VungleError vungleError) {
}
@Override
public void onAdFailedToPlay(@NonNull BaseAd baseAd, @NonNull VungleError vungleError) {
}
@Override
public void onAdImpression(@NonNull BaseAd baseAd) {
}
@Override
public void onAdLeftApplication(@NonNull BaseAd baseAd) {
}
@Override
public void onAdLoaded(@NonNull BaseAd baseAd) {
Log.d(TAG, "Creative id:" + baseAd.getCreativeId());
}
@Override
public void onAdStart(@NonNull BaseAd baseAd) {
}
;
测试广告
您可以通过两种方式测试插屏广告:将您的应用在dashboard中设置为测试模式;将您的设备gaid添加到dashboard的测试设备中,并使用该设备测试。 请查看该文档 Test Your Integration: Test Mode and Test Devices来进一步了解。