请先根据文档 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来进一步了解。