为什么要进行转化跟踪?广告界有句老话。我知道我一半的广告费都被浪费了,但我不知道是怎么浪费的。因此,广告跟踪对广告商来说非常重要。当你在广告上花费大量预算时,效果如何?如何根据每次广告投放的数据调整和优化投放策略,取决于广告跟踪。但现实情况是,广告平台上的数据和广告主端的数据是天然分离的。广告平台可以收集安装事件,但平台无法收集应用内支付、激活等转化事件,无法分析真实转化率。广告主可以轻松采集实际转化,但无法关联广告任务,影响后续投放优化。通过转化跟踪,可以将广告主端的转化事件与广告平台端的投放任务关联起来,为投放效果分析提供数据支持。什么是转化跟踪?转化追踪是一种将广告主最关心的转化行为(OAID、时间戳、转化行为、行为参数)通过API、SDK等方式上报给广告平台的产品,基于转化追踪,广告主可以追踪广告投放效果详细监测不同平台、不同广告形式带来的流量和相应的转化效果,为持续优化广告投放提供准确的数据依据。为了更好地帮助广告商在华为设备上推广应用,HUAWEIAdsKit还提供转化追踪能力,方便广告商追踪广告转化渠道,分析转化效果。华为广告服务转化跟踪参数能力工作原理1.广告主APP集成广告服务获取转化跟踪参数能力,上架华为应用市场(AppGallery)。2、广告商在华为广告网络(AdNetwork)投放App下载广告,并设置转化跟踪参数。3、媒体应用(MediaApp)请求并显示广告商投放的广告。4、用户在媒体APP上点击广告主投放的广告,用户可以选择、下载、安装广告主的APP。5、华为应用市场将转化跟踪参数写入广告服务。6、当用户在设备端激活广告商的App时,App从广告服务中获取转化跟踪参数。7、广告主APP将激活事件上报给第三方跟踪平台(Third-partytrackingplatform),平台可以使用转化跟踪参数分析APP的转化效果。开发步骤一、集成转化跟踪参数开放能力(SDK方式)SDK方式是指广告主通过华为广告服务提供的SDK接入开放能力,获取App转化跟踪参数集成SDK1。配置HUAWEIAdsSDK的Maven仓库地址打开AndroidStudio在项目级的“build.gradle”文件中,在“allprojects>repositories”中配置SDK的Maven仓库地址。allprojects{repositories{google()jcenter()maven{url'https://developer.huawei.com/repo/'}}}2.配置依赖打开子项目“app”下的“build.gradle”文件,在在dependencies中添加SDK依赖,并将{version}替换为实际的HUAWEIAdsSDK版本号。具体请参见版本更新说明。dependencies{implementation'com.huawei.hms:ads-installreferrer:{version}'}3.同步修改后的文件4.PK前需要配置不混淆HUAWEIAdsSDK,以免功能异常。打开Android工程应用级根目录下的“app/proguard-rules.pro”混淆配置文件,添加如下两行代码,添加排除HUAWEIAdsSDK的混淆配置。allprojects{repositories{google()jcenter()maven{url'https://developer.huawei.com/repo/'}}}创建转化跟踪参数状态监听器1.实现InstallReferrerStateListener监听器的onInstallReferrerSetupFinished和onInstallReferrerSetupFinished两个方法interfaceonInstallReferrerServiceDisconnected,代码示例如下:/***创建一个监听器*/privateInstallReferrerStateListenerinstallReferrerStateListener=newInstallReferrerStateListener(){@OverridepublicvoidonInstallReferrerSetupFinished(intresponseCode){switch(responseCode){caseInstallReferrerLogReferer.OK,"connect广告套件可以");得到();休息;caseInstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED://该服务不支持,请下载并安装最新版本的HMSCore(APK)Log.i(TAG,"FEATURE_NOT_SUPPORTED");休息;案例InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE://服务不可用,请将HMSCore(APK)版本升级到2.6.5或以上Log.i(TAG,"SERVICE_UNAVAILABLE");休息;默认值:Log.i(TAG,"responseCode:"+responseCode);休息;}}@OverridepublicvoidonInstallReferrerServiceDisconnected(){Log.i(TAG,"onInstallReferrerServiceDisconnected");}};2。在连接成功回调中调用getInstallReferrer方法获取转化跟踪参数/***获取转化跟踪参数*/privatevoidget(){if(null!=mReferrerClient){try{//获取referrerDetails实例,不要在主线程调用此方法ReferrerDetailsreferrerDetails=mReferrerClient.getInstallReferrer();if(null!=referrerDetails&&null!=mCallback){//更新数据mCallback.onSuccess(referrerDetails.getInstallReferrer(),referrerDetails.getReferrerClickTimestampMillisecond(),referrerDetails.getInstallBeginTimestampMillisecond());}}emoteLogption{(TAG,"getInstallReferrerRemoteException:"+e.getMessage());}catch(IOExceptione){Log.i(TAG,"getInstallReferrerIOException:"+e.getMessage());}最后{断开连接();}}}创建InstallReferrerClient实例通过构建器配置并创建InstallReferrerClient实例。1.调用InstallReferrerClient.newBuilder创建Builder实例。2.调用build创建一个InstallReferrerClient实例。mReferrerClient=InstallReferrerClient.newBuilder(mContext).build();连接到转换跟踪参数服务建立到转换跟踪参数服务的连接。1、将startConnection的监听设置为创建的InstallReferrerStateListener监听。2、在子线程中调用startConnection方法连接服务。mReferrerClient.startConnection(installReferrerStateListener);2.集成转化跟踪参数开放能力(AIDL方式)广告主除了接入SDK之外,还可以直接调用华为广告服务的AIDL接口获取华为设备上的转化跟踪参数。获取Conversiontracking参数的方式有两种,对于同一个设备来说是一样的。添加AIDL接口文件在项目“app/src/main/aidl/com/huawei/android/hms/ppskit/”路径下添加一个接口文件“IPPSChannelInfoService.aidl”,包名为“com.huawei.android”.hms.ppskit”,然后将以下内容复制到界面文件中。//IPPSRemoteService.aidlpackagecom.huawei.android.hms.ppskit;/**注意:不要修改AIDL文件中方法的顺序*/interfaceIPPSChannelInfoService{StringgetChannelInfo();}创建一个实现ServiceConnection接口的类1.实现ServiceConnection的onServiceConnected方法。2、调用IPPSChannelInfoService.Stub.asInterface方法获取IPPSChannelInfoService。3.调用getChannelInfo方法获取转化跟踪参数。私有最终类InstallReferrerServiceConnection实现ServiceConnection{privateInstallReferrerServiceConnection(){}@OverridepublicvoidonServiceConnected(ComponentNamecomponentName,IBinderiBinder){Log.i(TAG,"onServiceConnected");mService=IPPSChannelInfoService.Stub.asInterface(iBinder);if(null!=mService){try{//获取渠道信息(Json格式)StringchannelJson=mService.getChannelInfo();Log.i(TAG,"channelJson:"+channelJson);//解析JSONObjectjsonObject=newJSONObject(channelJson);//获取转换跟踪参数StringinstallReferrer=jsonObject.optString("channelInfo");longclickTimestamp=jsonObject.optLong("clickTimestamp",0);longinstallTimestamp=jsonObject.optLong("installTimestamp",0);如果(空!=mCallback){//更新数据mCallback.onSuccess(installReferrer,clickTimestamp,installTimestamp);}else{mCallback.onFail("installreferrer为空");}}catch(RemoteExceptione){Log.e(TAG,"getChannelInfoRemoteException");mCallback.onFail(e.getMessage());}catch(Exceptione){Log.e(TAG,"getChannelInfoException");mCallback.onFail(e.getMessage());}最后{unbindService();}}}@OverridepublicvoidonServiceDisconnected(ComponentNamecomponentName){Log.i(TAG,"onServiceDisconnected");mService=null;}}连接AIDL服务与转化跟踪参数1.创建一个InstallReferrerServiceConnection实例2.创建一个Intent,Action是“com.huawei.android.hms.CHANNEL_SERVICE”。3.Intent包名设置为“com.huawei.hwid”。4.调用bindService连接AIDL服务,带转化跟踪参数privatebooleanbindService(){Log.i(TAG,"bindService");if(null==mContext){Log.e(TAG,"contextisnull");返回假;}mServiceConnection=newInstallReferrerServiceConnection();意图intent=newIntent(Constants.SERVICE_ACTION);intent.setPackage(Constants.SERVICE_PACKAGE_NAME);//绑定服务booleanresult=mContext.bindService(intent,mServiceConnection,Context.BIND_AUTO_CREATE);Log.i(TAG,"绑定服务结果:"+result);返回结果;}使用AIDL接口后断开转化跟踪参数的AIDL服务,应该主动断开服务连接。privatevoidunbindService(){Log.i(TAG,"unbindService");if(null==mContext){Log.e(TAG,"contextisnull");返回;}if(null!=mServiceConnection){//解绑服务mContext.unbindService(mServiceConnection);mService=null;mContext=null;mCallback=null;}}3.接入单机测试上述获取转化跟踪参数的业务代码完成后,就可以进行编译,编译完成后生成APK安装运行。提供相关demo,可以在端侧生成转化跟踪参数进行测试。修改应用以测试转化跟踪参数。SDK方法:创建InstallReferrerClient时设置为测试模式,调用setTest(true),示例代码如下:mReferrerClient=InstallReferrerClient.newBuilder(mContext).setTest(true).build();mReferrerClient.startConnection(installReferrerStateListener);AIDL方法:测试时将绑定的AIDL服务包名设置为“com.huawei.pps.hms.test”。示例代码如下:mServiceConnection=newInstallReferrerServiceConnection();Intentintent=newIntent(Constants.SERVICE_ACTION);intent.setPackage(Constants.TEST_SERVICE_PACKAGE_NAME);布尔结果=mContext.bindService(intent,mServiceConnection,Context.BIND_AUTO_CREATE);Log.i(TAG,"绑定服务结果:"+result);编译工程生成APK文件,并将APK文件安装到设备上。运行App,出现如下页面。点击“WriteTestConversionTrackingParameters”,界面会跳转到下图所示页面,输入App包名(见“AndroidManifest.xml”)和转化跟踪参数,并保存。4、获取产品联测转化跟踪参数后,需要登录华为广告平台将广告跟踪参数与推广任务进行关联。2、在华为广告平台创建推广任务时,设置转化跟踪参数,如下图:3、读取转化跟踪参数。广告主APP启动后,会读取转化跟踪参数,并将信息上报给开发者的分析平台。更多详情,请访问华为广告服务官网获取华为广告服务开发指导文档华为广告服务开源仓库地址:GitHub、Gitee华为HMSCore官方论坛解决集成问题,请关注我们StackOverflow,了解最新HMSCore技术首次亮相~
