原生广告

关注

开始之前

在开始集成原生广告之前,您需要先完成以下步骤:

  • 在AdTiming 开发者前台页面,创建开发者账号,添加应用,然后申请并配置一个‘Native Ad’类型的广告位,操作手册在 这里
  • Android SDK下载与集成 指导下,将AdTiming Android SDK添加到您的开发项目并完成了SDK初始化操作。
  • 如果要聚合第三方平台,您需要在完成本节的广告集成之后,参考 添加聚合网络 进行操作。

原生广告

Step 1. 初始化NativeAd对象

SDK会触发一系列事件通知应用程序Native广告的初始化、加载、展示等结果。使用原生广告,您需要创建NativeAd对象、实现并设置监听事件的Listener,然后调用loadAd方法加载并展示广告。

下面的代码示例展示了如何使用NativeAd对象和实现NativeAdListener 接口来监听广告事件。SDK所能触发的事件类型在下面代码都能找到。

import com.aiming.mdt.nativead.NativeAd;
import com.aiming.mdt.nativead.NativeAdListener;
...
NativeAd nativeAd = new NativeAd(activity, placementI, new NativeAdListener() {

     /** 
      * Invoked when Native Ad are available. 
      * You can then show the video by calling nativeAd.showAd(). 
      */
    @Override
     public void onAdReady(AdInfo info) {
        //native ad load success
     }

     /** 
      * Invoked when the end user clicked on the Native Ad 
      */
     @Override
     public void onAdClicked() {
        //native ad click
     }

     /** 
      * Invoked when the call to load a Native Ad has failed 
      * String error contains the reason for the failure. 
      */
     @Override
     public void onAdFailed(String error) {
        //native ad load failed
     }
});

 

Step 2. 加载原生广告

您需要在展示广告前调用 loadAd 方法来请求和缓存广告。我们建议您务必在广告展示前提前一定时间进行调用,以免影响广告体验。

nativeAd.loadAd();

 注意:

  • loadAd 方法可以同时被多次调用,但是我们不建议这么做。因为短时间的连续调用不会增加广告填充率,如果已经有正在进行中的加载,新的请求不会被处理。
  • 警告:在onAdFailed回调事件中进行广告加载操作是非常危险的,如果您一定要在此处进行加载,请务必设置一个时间间隔限制,避免程序因为无网络等原因造成连续的失败而进入死循环

 

Step 3. NativeAd广告元素及获取

原生广告的元素包括:icon, title, description, large campaign image, CTA button。

Image text

①Icon ②Title ③Description ④Large campaign image ⑤CTA button

■ Public String getTitle()

■ Public String getDesc()

■ Public String getCallToActionText()

import com.aiming.mdt.nativead.AdInfo;
...
private AdInfo adInfo;
...
String titlr = adInfo.getTitle();
String desc = adInfo.getDesc();
String callToActionText = adInfo.getCallToActionText();

 

Step 4. 展示原生广告

在本节中,我们将创建自定义视图,向用户展示原生广告。我们在示例中使用了 Android 视图,但可以根据应用的样式对其进行自定义。

注意:registerNativeAdView() 方法非常重要. 请参阅以下代码作为示例,它允许第三方 SDK 跟踪广告展示时间和点击事件。如果未能调用此方法可能会导致错误,如单击按钮失败。

import com.aiming.mdt.nativead.NativeAd;
import com.aiming.mdt.nativead.AdIconView;
import com.aiming.mdt.nativead.NativeAdView;
import com.aiming.mdt.nativead.AdInfo;
import com.aiming.mdt.nativead.MediaView;
...
private NativeAd nativeAd;
private NativeAdView nativeAdView;
private AdInfo mAdInfo;
private View adView;
private RelativeLayout adParent;
...
adParent = this.findViewById(R.id.native_ad_container);
// Get NativeAdView
nativeAdView = new NativeAdView(NativeActivity.this);
nativeAd.loadAd();
...
// Get your native ad view style
adView = View.inflate(this, R.layout.native_ad_layout, null);

// set native ad title
TextView title = adView.findViewById(R.id.ad_title);
title.setText(mAdInfo.getTitle());

// set native ad Call To Action Text
Button btn = adView.findViewById(R.id.ad_btn);
btn.setText(mAdInfo.getCallToActionText());
MediaView mediaView = adView.findViewById(R.id.ad_media);
AdIconView iconMediaView = adView.findViewById(R.id.ad_icon_media);
adParent.removeAllViews();

// Add your native ads view to NativeAdView
nativeAdView.addView(adView);
nativeAdView.setTitleView(title);
nativeAdView.setMediaView(mediaView);
nativeAdView.setAdIconView(iconMediaView);
nativeAdView.setCallToActionView(btn);
nativeAd.registerNativeAdView(nativeAdView)
adView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
adView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(Gravity.CENTER);

// Add nativeAdView to adParent view
adParent.addView(nativeAdView, layoutParams);

■ R.id.native_ad_container 代码如下:

<RelativeLayout
    android:id="@+id/native_ad_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

</RelativeLayout>

■ R.layout.native_ad_layout 代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color_ad_bg">

<TextView
android:id="@+id/ad_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:padding="10dp"
android:text="title"
android:textColor="@android:color/white" />

<com.aiming.mdt.nativead.AdIconView
android:id="@+id/ad_icon_media"
android:layout_width="250dp"
android:layout_height="175dp"
android:layout_below="@id/ad_title"
android:layout_centerHorizontal="true" />

<com.aiming.mdt.nativead.MediaView
android:id="@+id/ad_media"
android:layout_width="250dp"
android:layout_height="175dp"
android:layout_below="@id/ad_icon_media"
android:layout_centerHorizontal="true" />

<Button
android:id="@+id/ad_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ad_media"
android:layout_centerInParent="true"
android:padding="10dp"
android:text="calltoaction"
android:textAllCaps="false" />
</RelativeLayout>

 

Step 5. MediaView

MediaView是一个特殊视图,旨在显示主要媒体资源。

  • 如果加载的广告具有视频资源,则视频将缓存并开始在 MediaView 内播放。
  • 如果加载的广告不包含视频资源,则下载第一个图像资源并将其放置在 MediaView 中。
  • MediaView 是一种视图,可以在 XML 布局中定义或动态构造。

 

Step 6. AdIconView

AdIconView是一种特殊的视图,用来显示icon资源。

  • 如果加载的广告包含icon资产,则icon资源将下载并放置在 AdIconView 中。
  • AdIconView 是一个视图,可以在 XML 布局中定义或动态构造。

 

Step 7. 销毁NativeAd对象

建议在广告Activity被销毁时释放本NativeAd对象。

/**
 * Invoke nativeAd.destroy() method in Activity's onDestroy() callback to release NativeAd object.
 */
@Override
public void onDestroy()
    if (nativeAd != null) {
        nativeAd.destroy();
    }
    super.onDestroy();
}

 

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助

评论

0 条评论

登录写评论。