MMA中国广告监测及验证统一SDK(iOS)

MMA中国广告监测及验证统一SDK(iOS)

 

MMA中国广告监测及验证统一SDK 说明文档

MMA 中国广告监测及验证统一SDK (iOS) 部署指南

步骤1:添加 MMA iOS SDK 到工程中

  1. 点此下载(下载内容为:MMA 中国广告监测及验证统一SDK (iOS) 安装包)MMA iOS SDK (如需浏览此开源项目和 demo 工程请到 https://gitee.com/MMAChinaSDK 注册账号后邮件联系 yanluchen@admaster.com.cn)
  2. 将SDK发布文件中,release目录下的MobileTracking.hlibMobileTracking.asdkconfig.xml三个文件拷贝到项目工程中,将sdkconfig.xml上传到 web 服务器,使其可以通过 web 方式访问,假设其地址为http://xxxxxx.com/sdkconfig.xml(其后会用到)。
  3. 在项目工程 App 的 Target Build Settings 中的Other Linker Flags选项里添加 -lxml2 -all_load-lxml2 -force_load静态库的绝对路径

步骤2:配置文件sdkconfig.xml的使用方法

在使用的文件中引用 #import “MobileTracking.h”.

使用说明:

1、初始化方法

在进行监测之前,必须进行初始化,通过以上的代码进行初始化操作

[MobileTracking sharedInstance]

2、配置远程配置文件地址方法

SDK 会自动下载远程的配置文件,使用最新的配置文件进行参数的组装。

[[MobileTracking sharedInstance] configFromUrl:@“http://xxxxxx.com/sdkconfig.xml”];

3、曝光的监测

通过调用以下的代码进行曝光的监测,

  1. 第一个参数为第三方公司的监测地址
  2. 第二个参数为当前广告视图对象(可视化广告监测为必传字段,普通广告监测默认缺省。)
  3. 第三个参数为当前视频广告的播放类型(视频可视化广告监测为可选字段,1-自动播放,2-手动播放,0-无法识别。)

普通广告监测

[[MobileTracking sharedInstance] view:@"http://example.com/xxxxxx”];

可见性广告监测

[[MobileTracking sharedInstance] view:@"http://example.com/xxxxxx” ad:adview];

视频可见性广告监测

[[MobileTracking sharedInstance] viewVideo:@"http://example.com/xxxxxx” ad:adview];
[[MobileTracking sharedInstance] viewVideo:@"http://example.com/xxxxxx” ad:adview videoPlayType:type];

可见性广告JS监测

[[MobileTracking sharedInstance] jsView:@"http://example.com/xxxxxx” ad:adview];

视频可见性广告JS监测

[[MobileTracking sharedInstance] jsViewVideo:@"http://example.com/xxxxxx” ad:adview];

可见性广告监测停止,广告播放结束时调用

[[MobileTracking sharedInstance] stop:@"http://example.com/xxxxxx”];

4、点击监测

通过调用以下的代码进行点击的监测,参数为第三方公司的监测地址

[[MobileTracking sharedInstance] click:@"http://example.com/xxxxxx"];

5、进入后台时调用

主要用于保存当前监测数据,不被丢失。建议放在AppDelegate的applicationDidEnterBackground方法中

[[MobileTracking sharedInstance] didEnterBackground];

6、回到前台时调用

重新读取缓存数据,主要用于保证当前监测数据,及时上报,建议放在AppDelegate的applicationWillEnterForeground方法中

[[MobileTracking sharedInstance] didEnterForeground];

7、应用结束时调用

主要用于保存当前监测数据,不被丢失。

[[MobileTracking sharedInstance] willTerminate];

8、开启调试日志

建议在测试时候打开

[[MobileTracking sharedInstance] enableLog:YES];

步骤3:验证和调试

SDK 的测试有两个方面:

  1. 参数是否齐全,URL 拼接方式是否正确
  2. 请求次数和第三方监测平台是否能对应上

请联系第三方监测平台完成测试

 

MMA中国广告监测及验证统一SDK(Android)

MMA中国广告监测及验证统一SDK(Android)

 

MMA中国广告监测及验证统一SDK 说明文档

Android SDK 部署指南

步骤1:添加 Android SDK 到工程中

  1. 点此下载(下载内容:MMA 中国广告监测及验证统一SDK (Android) 安装包)MMA Android SDK (如需浏览此开源项目和 demo 工程请到 https://gitee.com/MMAChinaSDK 注册账号后邮件联系 yanluchen@admaster.com.cn)
  2. 将 SDK 的 mmachina_sdk.jar 拷贝到 libs 目录下并添加为 JAR 包;
  3. 将libMMASignature.so 拷贝到 libs\armeabi 目录下;
  4. 把sdkconfig.xml配置文件拷贝到工程里的assets目录下,同时将 sdkconfig.xml 上传到 web 服务器,使其可以通过 web 方式访问,假设其地址为 CONFIG_URL(其后会用到)。

对于Eclipse工程,请参照下面的步骤添加 JAR 包:

  1. 在 “Package Explorer” 窗口中右击你的工程并选择 “Properties”
  2. 在左侧面板中选择 “Java Build Path”
  3. 在主窗口中选择 “Libraries”
  4. 点击“Add JARs…”按钮
  5. 选择拷贝到libs目录下的 mmachina_sdk.jar
  6. 点击 “OK” 完成添加。

步骤2:修改 AndroidManifest.xml 文件

修改 AndroidManifest.xml 文件,新增网络连接请求和读取手机状态的权限:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

步骤3:为广告添加监测代码

在有广告监测需求的 Activity 中的 onStart() 方法中调用,进行初始化,其中 CONFIG_URL 为远程配置文件的地址

Countly.sharedInstance().init(this, CONFIG_URL); 

普通广告曝光监测:

当广告产生曝光时,控制触发以下代码进行曝光监测。

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码  
Countly.sharedInstance().onExpose(TEST_TRACKING_URL); 

可见性广告曝光监测:

当广告产生曝光时,控制触发以下代码进行曝光监测。第一个参数为曝光监测代码,第二个参数为当前广告展示视图对象。

注意:对于需要监测广告可视化的广告监测,第二个参数(广告视图对象)为必选项,且媒体需要传入当前广告展示的视图对象,否则可能造成SDK无法监测当前广告可视化的情况出现

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码  
Countly.sharedInstance().onExpose(TEST_TRACKING_URL,adView);

可见性视频广告曝光监测:

当视频广告产生曝光时,控制触发以下代码进行曝光监测。第一个参数为曝光监测代码,第二个参数为当前广告展示视频视图对象。

注意:对于需要监测广告可视化的视频广告监测,第二个参数(视频视图对象)为必选项,且媒体需要传入当前广告展示的视图对象,否则可能造成SDK无法监测当前视频广告可视化的情况出现

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码  
Countly.sharedInstance().onVideoExpose(TEST_TRACKING_URL,videoView);

可见性广告监测停止:

当广告播放结束时,控制触发以下代码停止监测。参数为曝光监测代码。

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码
Countly.sharedInstance().stop(TEST_TRACKING_URL);

可见性广告曝光JS监测:

当广告产生曝光时,控制触发以下代码使用JS方案进行曝光监测。第一个参数为曝光监测代码,第二个参数为当前广告展示视图对象。

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码  
Countly.sharedInstance().onJsExpose(TEST_TRACKING_URL,adView);

可见性视频广告曝光JS监测:

当视频广告产生曝光时,控制触发以下代码使用JS方案进行曝光监测,第一个参数为曝光监测代码,第二个参数为当前广告展示视频视图对象。

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码
Countly.sharedInstance().onVideoJsExpose(TEST_TRACKING_URL,videoView); 

广告点击监测:

当广告被点击时,控制触发以下代码

String TEST_TRACKING_URL = "http://example.com/xxxxxx";//TEST_TRACKING_URL 为对应的曝光代码
Countly.sharedInstance().onClick(TEST_TRACKING_URL); 

代码示例(具体请见 demo 项目源码)


    package com.mmandroid_demo;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import cn.com.mma.mobile.tracking.api.Countly;

/**
 * 此工程是为使用SDK的用户提供的demo
 * 
 */
public class MainActivity extends Activity {

  /**
   * sdkconfig.xml配置文件服务器存放地址
   */
  public static final String CONFIG_URL = "";
  private static final String TAG = MainActivity.class.getSimpleName();
  /**
   * 点击监测地址
   */
  public static final String TEST_TRACKING_URL = "http://example.com/xxxxxx";

  private TextView adView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    adView = (TextView) findViewById(R.id.adview);

    // MMA SDK 初始化
    Countly.sharedInstance().setLogState(true);
    Countly.sharedInstance().init(this, CONFIG_URL);

  }

  /**
   * 点击监测
   * 
   * @param view
   */
  public void doClick(View view) {
    Countly.sharedInstance().onClick(TEST_TRACKING_URL);
    Log.d(TAG, "[click] 目标链接:" + TEST_TRACKING_URL);
  }

  /**
   * 曝光监测
   * 
   * @param view
   */
  public void doExpose(View view) {
    Countly.sharedInstance().onExpose(TEST_TRACKING_URL);
    Log.d(TAG, "[expose] 目标链接:" + TEST_TRACKING_URL);
  }

  /**
   * 可视化曝光监测
   * 
   * @param view
   */
  public void doViewAbilityExpose(View view) {
    Countly.sharedInstance().onExpose(TEST_TRACKING_URL, adView);
    Log.d(TAG,  "[ViewAbilityExpose] 目标链接:" + TEST_TRACKING_URL);
  }

  /**
   * 停止可视化曝光监测,广告播放结束时调用
   * 
   * @param tracking_url
   */
  public void stopViewAbilityExpose() {
    Countly.sharedInstance().stop(TEST_TRACKING_URL);
    Log.d(TAG,  "[Stop ViewAbilityExpose] 目标链接:" + TEST_TRACKING_URL);
  }

  /**
   * 可视化曝光JS监测
   * 
   * @param view
   */
  public void doViewAbilityJSExpose(View view) {
    Countly.sharedInstance().onJSExpose(TEST_TRACKING_URL, adView);
    Log.d(TAG, "[ViewAbilityJSExpose] 目标链接:" + TEST_TRACKING_URL);
  }

}
  

步骤4:验证和调试

SDK 的测试有两个方面:

  1. 参数是否齐全,URL 拼接方式是否正确
  2. 请求次数和第三方监测平台是否能对应上

请联系第三方监测平台完成测试

MMA中国广告监测 通用 SDK (Android)

MMA中国广告监测 通用 SDK (Android)

 

MMA 通用 SDK 说明文档

MMA Android SDK 部署指南

步骤1:添加 MMA Android SDK 到工程中

  1. 点此下载MMA Android SDK (如需浏览此开源项目和 demo 工程请到http://git.oschina.net/注册账号后邮件联系 fuliuwei@admaster.com.cn)
  2. 将 MMA SDK 的 mma_android_sdk_v1.3.3.jar 拷贝到 libs 目录下并添加为 JAR 包;
  3. 将libMMANDKSignature.so 拷贝到 libs\armeabi 目录下;
  4. 把sdkconfig.xml配置文件拷贝到工程里的assets目录下,同时将 sdkconfig.xml 上传到 web 服务器,使其可以通过 web 方式访问,假设其地址为 CONFIG_URL(其后会用到)。

对于Eclipse工程,请参照下面的步骤添加 JAR 包:

  1. 在 “Package Explorer” 窗口中右击你的工程并选择 “Properties”
  2. 在左侧面板中选择 “Java Build Path”
  3. 在主窗口中选择 “Libraries”页签
  4. 点击“Add JARs…”按钮
  5. 选择您拷贝到libs目录下的 mma_sdk.jar
  6. 点击 “OK” 完成添加。

步骤2:修改 AndroidManifest.xml 文件

修改 AndroidManifest.xml 文件,新增网络连接请求和读取手机状态的权限:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

步骤3:为广告添加监测代码

在有广告监测需求的 Activity 中的 onStart() 方法中调用 Countly.sharedInstance().init(this, CONFIG_URL); 进行初始化,其中 CONFIG_URL 为远程配置文件的地址,当广告产生曝光时,控制触发以下代码

String TEST_TRACKING_URL = "http://admaster.mobi/android/log/a222,c123,b132,";//TEST_TRACKING_URL 为对应的曝光代码  
Countly.sharedInstance().onExpose(TEST_TRACKING_URL);

当广告被点击时,控制触发以下代码

String TEST_TRACKING_URL = "http://admaster.mobi/android/log/a222,c123,b132,";//TEST_TRACKING_URL 为对应的曝光代码
Countly.sharedInstance().onClick(TEST_TRACKING_URL); 

代码示例(具体请见 demo 项目源码)

package com.mmandroid_demo;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import cn.com.mma.mobile.tracking.api.Countly;
import cn.com.mma.mobile.tracking.util.Logger;
/**
 * 此工程是为使用SDK的用户提供的demo
 * 
 * @author lincoln
 * 
 */
public class MainActivity extends Activity {
 int count = 0;
/**
 * sdkconfig.xml配置文件服务器存放地址
 */
 public static final String CONFIG_URL = "http://admaster.mobi/sdkconfig.xml";
 /**
 * 点击监测地址
 */
 public static final String TEST_TRACKING_URL = "http://admaster.mobi/android/log/a222,c123,b132,";
@Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
/**
 * 初始化SDK
 */
 Countly.sharedInstance().init(this, CONFIG_URL);
}
/**
 * 点击广告,发送消息
 */
 public void sendClickMsg(View view) {
 Countly.sharedInstance().onClick(TEST_TRACKING_URL);
 }
 /**
 * 曝光广告,发送消息
 */
 public void sendExposeMsg(View view) {
 Countly.sharedInstance().onExpose(TEST_TRACKING_URL);
 }
}

步骤4:验证和调试

SDK 的测试有两个方面:

  1. 参数是否齐全,URL 拼接方式是否正确
  2. 请求次数和第三方监测平台是否能对应上

针对第一点,使用 Admaster SDK 测试平台进行测试和验证,登入 http://developer.admaster.com.cn/, 根据页面上的提示进行调用, 页面会实时显示出服务器接收到的信息,如果和本地的设备相关信息一致,则表示测试通过。

针对第二点,建议使用第三方监测系统的正式环境进行测试,主要对比媒体自身广告系统监测数据和第三方监测数据数量上的差异。

MMA中国广告监测 通用 SDK (iOS)

MMA中国广告监测 通用 SDK (iOS)

 

MMA 通用 SDK 说明文档

MMA iOS SDK 部署指南

步骤1:添加 MMA iOS SDK 到工程中

  1. 点此下载MMA iOS SDK (如需浏览此开源项目和 demo 工程请到http://git.oschina.net/注册账号后邮件联系 fuliuwei@admaster.com.cn)
  2. 将SDK发布文件中,release目录下的MobileTracking.hlibMobileTracking.asdkconfig.xml三个文件拷贝到项目工程中,将 sdkconfig.xml 上传到 web 服务器,使其可以通过 web 方式访问,假设其地址为 http://xxxxxx.com/sdkconfig.xml(其后会用到)。
  3. 在项目工程 App 的 Target Build Settings 中的 Other Linker Flags 选项里添加 -lxml2 -all_load-lxml2 -force_load静态库的绝对路径

步骤2:配置文件sdkconfig.xml的使用方法

在使用的文件中引用 #import “MobileTracking.h”.

使用说明:

1、初始化方法

[MobileTracking sharedInstance]

在进行监测之前,必须进行初始化,通过以上的代码进行初始化操作,建议放在AppDelegate的didFinishLaunchingWithOptions方法中。

2、配置远程配置文件地址方法

[[MobileTracking sharedInstance] configFromUrl:@“http://xxxxxx.com/sdkconfig.xml”];

SDK 会自动下载远程的配置文件,使用最新的配置文件进行参数的组装。

3、点击和曝光的监测

通过调用以下的代码进行曝光的监测,参数为第三方公司的监测地址

[[MobileTracking sharedInstance] view:@"http://vxyz.admaster.com.cn/v/a17298,b81949763,c3194,i0,m201”];

通过调用以下的代码进行点击的监测,参数为第三方公司的监测地址

[[MobileTracking sharedInstance] click:@"http://vxyz.admaster.com.cn/v/a17298,b81949763,c3194,i0,m201"];

4、进入后台时调用

[[MobileTracking sharedInstance] didEnterBackground];

建议放在AppDelegate的applicationDidEnterBackground方法中

5、回到前台时调用

[[MobileTracking sharedInstance] didEnterForeground];

建议放在AppDelegate的applicationWillEnterForeground方法中

6、应用结束时调用

[[MobileTracking sharedInstance] willTerminate];

7、开启调试日志

[[MobileTracking sharedInstance] enableLog:YES];

建议在测试时候打开

步骤3:验证和调试

SDK 的测试有两个方面:

  1. 参数是否齐全,URL 拼接方式是否正确
  2. 请求次数和第三方监测平台是否能对应上

针对第一点,使用 Admaster SDK 测试平台进行测试和验证,登入 http://developer.admaster.com.cn/, 根据页面上的提示进行调用, 页面会实时显示出服务器接收到的信息,如果和本地的设备相关信息一致,则表示测试通过。

针对第二点,建议使用第三方监测系统的正式环境进行测试,主要对比媒体自身广告系统监测数据和第三方监测数据数量上的差异。

MMA标准委员会:移动策略路由数据误差统计说明

一、 研究背景:

随着移动广告的快速发展,市场营销人员在移动端的投入不断增加,对于移动端广告的效果评估需求也日益增加;除了常规的数据统计之外,一些原本用于PC端的效果统计指标也被逐渐应用到移动端的效果评估中;

对于地域定向的投放方式,多见于视频媒体等CPM购买方式的媒介平台,地域精准度已经成为考核媒体定向能力的重要指标;在实际项目执行中,我们发现即使在同源机房监测方式且媒体正常定向的情况下,仍然会存在媒体数据与第三方监测结果存在较大偏差的情况,在排除了媒体本身的定向问题之后,造成此类偏差的原因主要是策略路由,并且该现象多见于移动端平台,随时间变化呈现动态趋势;为此,MMA联合主要成员,包括视频媒体(iQiyi/Youku/PPTV/LETV/Tencent/Funshion/Sohu/Xunlei)及两家第三方监测公司(AdMaster精硕&Miaozhen秒针)对此进行了专项研究,评估同源机房条件下策略路由在移动端投放中对于监测数据的影响;

二、 统计方法:

由第三方监测公司抽取2014年至2015年Q1的历史移动端监测项目(50个以上项目),并进行地域精准度的分析统计,使用第三方获取地域数据与实际媒体投放地域数据进行交叉比对,将统计结果按照不同差异等级进行分类,最终获得本说明内的分析结果;

三、 结论:

针对广告主最常投放的130个城市进行了分析,统计结果如下:

误差比例 城市占比
≦5% 65.4%
5-10% 20.0%
10-20% 10.7%
20-30% 3.2%
≧30% 0.7%

在被统计的城市中,85%的城市由于策略路由造成的误差在10%以内;整体上误差范围稳定在30%以内;

四、 建议:

在广告项目实际执行过程中,可以参考误差统计结果,综合评估广告效果;

五、 附言:

策略路由:也称智能路由,当终端设备通过各种运营商(宽带、3/4G、公共Wifi)接入互联网时,绝大部分访问请求都会跨机房、跨运营商、跨省区甚至跨国进行长距离传输。在此传输过程中,运营商出于优化带宽网速、缩短传输路径、节约结算费用的目的,会实时动态地通过路由策略的智能调配等技术手段将数据包导向更宽、更短或更廉价的路由。因此在部分情况下,该次传输的目的地服务器 所接收到的 传输发起终端设备的真实源IP,也会发生不可预知的变化。因此同一个终端设备同时向两个不同区域的服务器发送数据包时,两个服务器可能获得完全不同的两个IP。这种差异的大小和 设备终端、服务器所在区域、所使用的网络接入商有关,和峰谷时段也有一定关联。通过广告投放决策、监测采集服务器同源部署,可以一定程度的消除这类差异。而在终端设备 高速移动 或 wifi/3/4G动态切换 的移动互联网环境下,策略路由导致的数据差异会更加明显。

MMA移动策略路由数据误差统计汇总AdM&MZ_201503_v统计版本

≦5% 5-10% 10-20% 20-30% ≧30%
包头市 鞍山市 吉林市 福州市 徐州市
保定市 蚌埠市 嘉兴市 东莞市
常德市 惠州市 金华市 柳州市
常州市 南宁市 四平市
大同市 萍乡市 台州市
阜阳市 深圳 湘平市
贵阳市 沈阳市 南昌市
桂林市 西安 阳泉市
哈尔滨市 襄樊市 石家庄市
海口市 长沙市 宝鸡市
衡阳市 肇庆市 大连市
呼和浩特市 北京市
湖州市 合肥市
淮安市 天津市
黄石市 武汉市
鸡西市 广州市
济南市 成都市
佳木斯市 杭州市
嘉峪关市 佛山市
金昌市 长春市
景德镇市 宁波市
开封市 湘潭市
克拉玛依市
昆明市
拉萨市
兰州市
临汾市
六盘水市
龙岩市
洛阳市
绵阳市
南京市
南通市
莆田市
齐齐哈尔市
秦皇岛市
青岛市
曲靖市
泉州市
三亚市
厦门市
汕头市
商丘市
上海市
韶关市
绍兴市
深圳市
十堰市
石嘴山市
苏州市
太原市
泰州市
唐山市
铜川市
威海市
潍坊市
温州市
乌海市
乌鲁木齐市
无锡市
芜湖市
吴忠市
西安市
西宁市
咸阳市
烟台市
盐城市
扬州市
银川市
镇江市
郑州市
中山市
重庆市
株洲市
淄博市
自贡市
遵义市