로딩중입니다
adPOPcorn DA : Android
8/26/2015 4:39:48 PM

adPOPcorn DA

adPOPcorn DA (图片广告、展示广告) 是为开发者带来收益的工具。广告形式包括广告条, 弹窗, 全屏广告, 结束画面广告和原生广告。

Mediation功能无中间手续费,为开发者提供最大的收益。

请通过以下链接了解服务详情。

[adPOPcorn DA 服务指南]


注意事项
  1. 集成 adPOPcorn add-on 之前,必须先完成 IGAW 共同集成。[IGAW 共同集成 : Android]
  2. 为了集成 adPOPcorn,须将 IgawDisplayAd~*.jar 文件包含在 android Project 内。[SDK 安装 : Android]



AndroidManifest.xml

为了集成 adPOPcorn DA 需修改 AndroidManifest。

添加共同集成中设置的 Appkey, Hashkey, Permission 外,为了使用全屏广告添加需要的 activity。


<application></application>  标签内添加需要的 activity。

<activity android:name="com.igaworks.displayad.activity.InterstitialActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:theme="@android:style/Theme.NoTitleBar" />

+ 如果需要使用 Mediation 功能曝光其他 DA network 的广告时,请参考各个 DA network 的指南。


+ 想成为 adPOPcorn 广告主吗?

需要通过 adPOPcorn 广告网络执行 CPI 启动型以上的广告时,必须登录谷歌 Install Receiver。

[IGAWorks 谷歌 Install Receiver 登录指南]



adPOPcorn DA 基本集成

adPOPcorn DA 提供广告条, 全屏广告, 弹窗广告, 结束画面广告原生广告。在集成各个形式的广告之前,须使用基本 API 进行初始化。


SDK 初始化

在应用启动后最初加载的 activity 或需要曝光 DA 广告的 activity 上调用 init API 初始化 SDK。

IgawDisplayAd.init(MyDisplayAdSampleActivity.this);

+ 使用 init(Context context, Boolean isTestMode, Boolean detailLog) API 可以初始化测试模式和 log 显示程度。


Resource 解除

在应用终止时,使用 destroy API 解除 memory 中分配的 DA 相关的 Resource (View, Memory)。

应用终止时,在调用的 activity 的 onDestroy() 中进行调用。

@Override
protected void onDestroy() {
	// TODO Auto-generated method stub
	super.onDestroy();
	IgawDisplayAd.destroy();
}


Mediation 转换周期

利用 setRefreshTime API 使用 Mediation 功能时,请设置从各个 network 接收广告的转换周期。

如未设定时保持基本设置 (60秒)。

//IgawDisplayAd.setRefressTime(int seconds);
IgawDisplayAd.setRefreshTime(40);


设置位置信息

使用 setLocation API 输入位置信息。当存在于输入的位置信息相符合的 Targeting 广告时,显示广告。

//IgawDisplayAd.setLocation(long latitude, double longitude);
IgawDisplayAd.setLocation(123.456789, 23.456789);



广告条

广告条是 DA 广告最基本的广告形式,在应用的下端或上端显示条形的广告。


View 设置

将广告条中需要显示的 View 添加到使用中的 Layout.xml 文件。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#ffffff"
    android:orientation="vertical">
	<!-- AdPOPcorn DA View -->
	<com.igaworks.displayad.view.BannerContainerView
		android:layout_width="fill_parent"
		android:layout_height="wrap_content"
		android:id="@+id/banner_container"/>
</LinearLayout>


广告曝光

调用 startBannerAd API 曝光广告条,在需要的时间点上调用曝光广告的所有 activity 的 onResume() 或广告。

//bannerView 生成
private BannerContainerView bannerView;

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    IgawCommon.startSession(MyDisplayAdSampleActivity.this);
    // 开始广告条
    IgawDisplayAd.startBannerAd(MyDisplayAdSampleActivity.this, “广告条 SpotKey”, bannerView);
}

+ bannerView : Layout.xml 中登录的 com.igaworks.displayad.view.BannerContainerView

+ 广告条 SpotKey : adPOPcorn DA 管理页面中生成的 spotkey 


暂停广告

调用 pauseBannerAd API 曝光广告条。在曝光广告的所有 activity 的 onPause() 中调用。

@Override
protected void onPause() {
    super.onPause();

    // 暂停广告条
    IgawDisplayAd.pauseBannerAd(MainActivity.this, “广告条 SpotKey”);;
}


终止广告曝光

调用 stopBannerAd API 终止广告曝光,在终止应用的 activity 的 onDestroy() 中调用。

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    // 终止广告条
    IgawDisplayAd.stopBannerAd(MyDisplayAdSampleActivity.this);
    // 解除广告条和广告素材
    IgawDisplayAd.destroy();
}


Event Listener

对广告条中发生的 Event 提供 Listener。提供的 Listener 和示例如下。

  • OnBannerAdReceiveSuccess : 广告条加载成功
  • OnBannerAdReceiveFailed : 广告条加载失败 (传达的错误代码请参考文件最后部分)
IgawDisplayAd.setBannerEventCallbackListener(MyDisplayAdSampleActivity.this, “广告条 SpotKey”, 
new IBannerEventCallbackListener() { @Override public void OnBannerAdReceiveSuccess() { Log.d("DEBUG", "Complete Loading Banner Ad"); } @Override public void OnBannerAdReceiveFailed(DAErrorCode errorCode) { Log.d("DEBUG", "Fail Loading Banner Ad, Reason : " + errorCode); } });



全屏广告

全屏广告时显示在整个画面的广告形式。参考以下内容集成全屏广告。


广告曝光

调用 showInterstitial API 显示全屏广告。

public void showInterstitialAdSample () {
	  IgawDisplayAd.showInterstitialAd(MyDisplayAdSampleActivity.this, “全屏广告 SpotKey”);
}

+ 全屏广告 SpotKey : adPOPcorn DA 管理页面中生成的全屏广告 SpotKey。


Event Listener

对全屏广告中发生的 Event 提供 Listener。提供的 Listener 和示例如下。

  • OnInterstitialReceiveSuccess : 全屏广告加载成功
  • OnInterstitialReceiveFailed : 全屏广告加载失败 (传达的错误代码请参考文件最后部分)
  • OnInterstitialClosed : 终止全屏广告窗
IgawDisplayAd.setInterstitialEventCallbackListener(MyDisplayAdSampleActivity.this, "全屏广告 SpotKey", 
		new IInterstitialEventCallbackListener() {
		
	@Override
	public void OnInterstitialReceiveSuccess() {
	        Log.d("DEBUG", "Complete Loading Interstitial Ad");		
	}
	
	@Override
	public void OnInterstitialReceiveFailed(DAErrorCode errorCode) {
                Log.d("DEBUG", "Fail Loading Interstitial Ad, Reason : " + errorCode);		
	}
	
	@Override
	public void OnInterstitialClosed() {
		Log.d("DEBUG", "Interstitial Ad is closed!");	
	}
});



弹窗广告

广告不完全覆盖整个画面,可以看见背景画面的广告形式。


广告曝光

调用 showPopupAd API 曝光弹窗广告。

public void showPopupAdSample () {
	  IgawDisplayAd.showPopupAd(MyDisplayAdSampleActivity.this, “弹窗广告 SpotKey”);
}

+ 弹窗广告 SpotKey : adPOPcorn DA 管理页面中生成的弹窗广告 Spotkey


Event Listener

对弹窗广告中发生的 Event Listener 提供 Listener。提供的 Listener 和示例如下。

  • OnPopupAdReceiveSuccess : 弹窗广告加载成功
  • OnPopupAdReceiveFailed : 弹窗广告加载失败 (传达的错误代码请参考文件最后的部分)
  • OnPopupAdClosed : 终止弹窗广告窗
IgawDisplayAd.setPopupEventCallbackListener(MyDisplayAdSampleActivity.this, "弹窗广告 SpotKey", 
new IPopupEventCallbackListener() { @Override public void OnPopupAdReceiveSuccess() { Log.d("DEBUG", "PopupAdReceiveSuccess()"); } @Override public void OnPopupAdReceiveFailed(DAErrorCode errorCode) { Log.d("DEBUG", "OnPopupAdReceiveFailed(), ErrorCode : " + errorCode); } @Override public void OnPopupAdClosed() { Log.d("DEBUG", "OnPopupAdClosed()"); } });



结束画面广告 

在结束应用时显示弹窗,询问是否终止应用的广告形式。


广告加载

调用 loadEndingAd API 加载结束画面广告。调用的结果可以在启动应用时能够实现加载广告信息。

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
 	//DA SDK 初始化
	IgawDisplayAd.init(MyDisplayAdSampleActivity.this);
		
	//加载结束画面广告
	IgawDisplayAd.loadEndingAd(MyDisplayAdSampleActivity.this, "结束画面广告 SpotKey");
}

+ 结束画面广告 SpotKey : adPOPcron DA 管理页面中生成的弹窗广告 Spotkey


广告曝光

调用 showEndingAd API 曝光广告。建立与 Android 返回键 Event 或连接其他终止动作进行使用。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        IgawDisplayAd.showEndingAd(MyDisplayAdSampleActivity.this, "终止画面 SpotKey");
      return true;
    }
    return super.onKeyDown(keyCode, event);
}


Event Listener

对结束画面广告中发送的 Event 提供 Listener。提供的 Listener 和示例如下。

  • OnBtnClickListener : 点击按钮 Event,true-点击终止按钮
IgawDisplayAd.setEndingAdEventCallbackListener(MyDisplayAdSampleActivity.this, "终止画面 SpotKey", 
		new IEndingAdEventCallbackListener() {
	
	@Override
	public void OnBtnClickListener(boolean isClicked) {
		Log.d("DEBUG", "Ending Btn Clicked :: " + isClicked);
	}
});



原生广告

原生广告是使用从 adPOPcorn DA 服务器接收的 Json 字符串形式的广告信息,加工成需要的形态后显示广告。


Instance & Event Listener 生成

加载原生广告所需的 Instance 和申请结果被传达的 Event Listener 请如下生成。

  • OnNativeAdRequestSucceeded : 原生广告加载成功,nativeAdInfo 的 Json 字符串形式的广告信息。
  • OnNativeAdRequestFailed : 原生广告加载失败 (传达的错误代码请参考文件最后的部分)
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);

	//DA SDK 初始化
	IgawDisplayAd.init(MyDisplayAdSampleActivity.this);
//生成原生广告 Instance 和 Event Listener IgawNativeAd nativeAd = new IgawNativeAd(MyDisplayAdSampleActivity.this, "原生广告 SpotKey", new IgawNativeAdListener() { @Override public void OnNativeAdRequestSucceeded(IgawNativeAd nativeAdInfo) { } @Override public void OnNativeAdRequestFailed(IgawNativeAdErrorCode errorCode) { Log.d("DEBUG", "NativeAd Loaing Fail, ErrorCode :: " + errorCode); } }); }

+ 原生广告 SpotKey : adPOPcorn DA 管理页面生成的原生广告 Spotkey


广告加载

调用 loadAd API 加载原生广告信息。加载的信息通过前面生成的 Event Listener 传达。

IgawNativeAd nativeAd = 
	new IgawNativeAd(MyDisplayAdSampleActivity.this, "原生广告 SpotKey", 
	new IgawNativeAdListener() { 	
		@Override
		public void OnNativeAdRequestSucceeded(IgawNativeAd nativeAdInfo) { }
		
		@Override
		public void OnNativeAdRequestFailed(IgawNativeAdErrorCode errorCode) {
			Log.d("DEBUG", "NativeAd Loaing Fail, ErrorCode :: " + errorCode);		
		}
});

//加载原生广告信息 
nativeAd.loadAd();


广告信息确认

通过 loadAd API 成功加载广告时,通过 Event Listener 传达信息。使用此信息显示广告。

调用 nativeAdInfo.getNativeAdContents API 提取 Json 字符串。

IgawNativeAd nativeAd = 
	new IgawNativeAd(MyDisplayAdSampleActivity.this, "原生广告 SpotKey", 
	new IgawNativeAdListener() { 	
		@Override
		public void OnNativeAdRequestSucceeded(IgawNativeAd nativeAdInfo) { }
			if(nativeAdInfo != null){
				//提取原生广告 Json String,并进行构建。
				String nativeAdContents = nativeAdInfo.getNativeAdContents();
				Log.d("DEBUG", "AD INFO JSON STRING :: " + nativeAdContents);
			}
		@Override
		public void OnNativeAdRequestFailed(IgawNativeAdErrorCode errorCode) {
			Log.d("DEBUG", "NativeAd Loaing Fail, ErrorCode :: " + errorCode);		
		}
});


跟踪广告曝光情况

调用 impressionAction API 跟踪原生广告的曝光情况。

//曝光原生广告
// ...do someting...
//跟踪原生广告曝光情况
nativeAd.impressionAction();

+ 原生广告是 IgawNativeAd 形式的 Instance。


跟踪广告点击情况

调用 clickAction API 跟踪原生广告的点击情况。

//用户点击广告时
// ...do somethisng...
//跟踪原生广告点击
nativeAd.clickAction(MyDisplayAdSampleActivity.this);

+ 原生广告是 IgawNativeAd 形式的 Instance。


Instance 解除

调用 destroyAd API,在曝光原生广告的 activity 终止时或不在显示广告时,原生广告的 Instance 将同时被解除。

@Override
protected void onDestroy() {
    super.onDestroy();
    //原生广告 Instance 解除
    nativeAd.destroyAd();
}




DA 应答错误代码定义

各个广告 Event Listener 传达的错误代码的定义。

代码 信息 说明
200 Exception 一般错误
1000 Invalid Parameter 参数出错
9999 Unknown Server Error 未知的服务器错误
2000 Invalid Media Key AppKey 错误
2030 Invalid Spot Key SpotKey 错误
2100 Empty Campaign 无广告
2200 Invalid Third Party Name 外部 network 的广告信息加载失败
3200 Native Spot Does Not Initialized 原生广告设置初始化出错
5000 Server Timeout 服务器超时
5001 Load Ad Failed 无法加载特定 network 的广告
5002 No Ad 无法加载所有 network 的广告



DA Mediation

使用 Mediation 时,请参考以下链接进行。

[adPOPcorn DA : Android (Mediation)]