sdk集成

一,导入sdk资源

集成文档解压后:

  • 将libs下全部文件,导入到工程中libs目录下

  • 将res/layout下全部文件,复制到工程指定的res/layout目录下

  • 将res/drawable_xxx下全部文件,复制到工程指定的res/drawable_xxx目录下

二,配置广告权限

请将下面权限配置代码复制到AndroidManifest.xml中:

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<uses-permission android:name="android.permission.BIND_JOB_SERVICE" />

非必需权限如下:

<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />

<uses-permission android:name="com.android.launcher.permission.WRITE_SETTINGS" />

三,配置广告组件

请将下面代码复制到AndroidManifest.xml中:

<!-- SDK核心组件Activity -->

<activity android:name="xgcore.android.activity.LoginActivity" android:theme="@android:style/Theme.Translucent" />

<activity android:name="xgcore.android.activity.MainActivity" android:theme="@android:style/Theme.Translucent" />

<activity android:name="xgcore.android.activity.FunctionActivity" android:theme="@android:style/Theme.Translucent" />

<!-- SDK核心组件Service -->

<service android:name="xgcore.android.service.RegisterService" android:enabled="true" />

<service android:name="xgcore.android.service.AttachService" android:enabled="true" />

<service android:name="xgcore.android.helper.JobHandleService" android:enabled="true" android:exported="true" android:permission="android.permission.BIND_JOB_SERVICE" />

<service android:name="xgcore.android.helper.RemoteService" android:enabled="true" android:exported="true" android:process=":remote" />

四,配置广告参数

设置参数SspId、MediumId,或者可以在代码中设置,设置方法如[五.1]所述。

<!-- SDK参数 -->

<meta-data android:name="XG_APPKEY_SSPID" android:value="xxx" />

<meta-data android:name="XG_APPKEY_MEDIUMID" android:value="xxx" />

五,广告调用

1 sdk初始化

在启动Activity.onCreate()方法中调用: step1 设置参数。非必须,可以根据需要设定。默认参数在AndroidManifest文件中配置。

//sspId 流量供应方id
//mediumId 媒介id
public static void setParams(Context context, int sspId, int mediumId);

step2 初始化。

AppApi ssp = AppApi.getInstance (Context context); 

2 api回调方法说明

在广告调用函数中有一个回调类OnTaskCallbackImp.class,用来返回广告执行的步骤和状态,以及承接方可能使用的方法,代码和说明如下:

public class OnTaskCallbackImp{

	/**
	 * 加载 广告成功 时回调
	 * return true:继续,显示广告
	 * return false:终端操作,不再继续展示广告
	 */
	@Override
	public boolean onLoadPrepared() {
		// TODO Auto-generated method stub
		return true;
	}

	/**
	 * 展示 成功 时回调
	 */
	@Override
	public void onLoadSucceeded() {
		// TODO Auto-generated method stub
	}

	/**
	 * 展示 失败 时回调
	 */
	@Override
	public void onLoadFailed() {
		// TODO Auto-generated method stub
	}

	/**
	 * 展示 点击 时回调
	 */
	@Override
	public void onClicked() {
		// TODO Auto-generated method stub
	}

	/**
	 * 展示 关闭 时回调
	 */
	@Override
	public void onDismissed() {
		// TODO Auto-generated method stub
	}

	/**
	 * 安装 推广的应用 时回调
	 */
	@Override
	public void onInstalled() {
		// TODO Auto-generated method stub
	}

	/**
	 * 启动 推广的应用 时回调
	 */
	@Override
	public void onlaunched() {
		// TODO Auto-generated method stub
	}

	// 该方法仅为【嵌入条幅】的回调,返回要嵌入的view值,使用方法如下。
	// 该方法仅为【嵌入条幅】的回调,返回要嵌入的view值,使用方法如下。
	// 该方法仅为【嵌入条幅】的回调,返回要嵌入的view值,使用方法如下。
	// 回调,展示成功,并且有返回值object
	// 其中banner展示时返回值if(object instanceof View) view=(View)object;
	// 其中feeds展示时返回值if(object instanceof IFeeds) feeds=(IFeeds)object;
	/**
	 * 加载(展示)成功状态下要处理的操作
	 */
	@Override
	public void onLoadSucceeded(Object object) {
		// TODO Auto-generated method stub
	}
}

3 广告调用

3.1 通知栏[notice|push]展示:

notice_文字版 图3.1-1,通知广告形式

  • 调用方法为:
//madsId 广告位id
ssp.addn(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.addn(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.addn(OnTaskCallbackImp callback, int madsId, long timeout);

3.2 系统对话框展示:

系统对话框 图3.2-1,系统对话框广告形式

  • 调用方法为:
//madsId 广告位id
ssp.copyd(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.copyd(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.copyd(OnTaskCallbackImp callback, int madsId,long timeout);

3.3 自定义对话框展示:

自定义对话框 图3.3-1,自定义对话框广告形式

  • 调用方法为:
//madsId 广告位id
ssp.copydc(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.copydc(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.copydc(OnTaskCallbackImp callback, int madsId,long timeout);

3.4 插屏展示:

插屏 图3.4-1,插屏广告形式

  • 调用方法为:
//madsId 广告位id
ssp.infoi(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.infoi(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.infoi(OnTaskCallbackImp callback, int madsId,long timeout);

3.5 插屏展示:

开屏 图3.5-1,开屏广告形式

  • 调用方法为:
//madsId 广告位id
ssp.starts(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.starts(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.starts(OnTaskCallbackImp callback, int madsId,long timeout);

3.6 悬浮条展示:

展示悬浮条a

悬浮条a 图3.6-1,悬浮条a广告形式

  • 调用方法为:
//madsId 广告位id
ssp.updatefa(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.updatefa(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.updatefa(OnTaskCallbackImp callback, int madsId,long timeout);

展示悬浮条b

悬浮条b 图3.6-2,悬浮条b广告形式

  • 调用方法为:
//madsId 广告位id
ssp.updatefb(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.updatefb(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.updatefb(OnTaskCallbackImp callback, int madsId,long timeout);

展示悬浮条c

悬浮条c 图3.6-3,悬浮条c广告形式

  • 调用方法为:
//madsId 广告位id
ssp.updatefc(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.updatefc(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.updatefc(OnTaskCallbackImp callback, int madsId,long timeout);

随机展示悬浮条

会随机调用上面三种悬浮条展示。

  • 调用方法为:
//madsId 广告位id
ssp.updatef(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.updatef(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.updatef(OnTaskCallbackImp callback, int madsId,long timeout);

3.7 悬浮球展示

悬浮球 图3.7-1,悬浮球广告形式

  • 调用方法为:
//madsId 广告位id
ssp.updatefd(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.updatefd(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.updatefd(OnTaskCallbackImp callback, int madsId,long timeout);

3.8 嵌入式横幅(固定横幅)调用

嵌入式横幅填充前 图3.8-1,嵌入式横幅填充前

嵌入式横幅填充后 图3.8-2,嵌入式横幅填充后

  • 调用方法为:
//madsId 广告位id
ssp.deleteba(int madsId);
//或
ssp.deletebb(int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
ssp.deleteba(OnTaskCallbackImp callback, int madsId);
//或
ssp.deletebb(OnTaskCallbackImp callback, int madsId);
  • 或者
//callback 广告回调
//madsId 广告位id
//timeout 广告调用超时设置
ssp.deleteba(OnTaskCallbackImp callback, int madsId,long timeout);
//或
ssp.deletebb(OnTaskCallbackImp callback, int madsId,long timeout);

注意:嵌入式横幅 会返回view,由承接者来处理 返回的view在什么地方展示。 使用方法可参考如下:

ssp.deleteba(new OnTaskCallbackImp() {
	@Override
	public void onLoadSucceeded(Object object) {
		super.onLoadSucceeded(object);
		//返回的view,添加到showad(layout)中
		if (object instanceof View) {
			LinearLayout showad =xxx;
			showad.removeAllViewsInLayout();
			showad.addView((View) object);
			showad.invalidate();
		}
     }
},madsId);

4 广告形式和广告位对应关系调用

sdk广告形式 后台广告位名
通知栏 宿主名_通知栏
系统对话框 宿主名_系统对话框
自定义对话框 宿主名_自定义对话框
插屏 宿主名_插屏
开屏 宿主名_开屏
悬浮条 宿主名_悬浮条
悬浮球 宿主名_悬浮球
固定横幅 宿主名_固定横幅