文档

概览


AdGyde是一款移动应用程序归因工具,可帮助应用程序所有者/营销人员更好地进行广告定位并优化广告支出。

Attribution
AdGyde通过其归因SDK可以确定应用安装通过哪个渠道/合作伙伴。 AdGyde显示了安装后事件,用户流以及应用程序的使用方式。 此数据可以帮助广告客户/应用程序所有者专门定位用户细分,找出改善投资回报率的最佳渠道。

要开始使用,请联系AdGyde支持 - support@adgyde.com

要开始集成,请检查 “AdGyde集成过程”“集成AdGyde Unity SDK” 部分。

AdGyde集成过程


1. 获取您的应用密钥
登录您的AdGyde控制台,凭据已由AdGyde支持团队提供。 如果您还没有收到相同的信息,请联系AdGyde支持团队。

请按照给定的步骤 :-
第1步 - 访问AdGyde网站 - https://www.adgyde.com
第2步 - 转到控制台
第3步 - 使用您的凭据登录
步骤4 - 从菜单选项转到设置 - >应用程序
步骤5 - 单击右上角的“创建应用程序”选项
步骤6 - 填写应用程序名称和包名称
步骤7 - 记下App Key以进行集成参考

2. 下载Android SDK
请从AdGyde控制台右上角的“下载Android SDK”链接下载SDK。



使用以下步骤集成下载的SDK


3. 将SDK集成到项目中

3.1 将库文件添加到项目中
  • 解压AdGyde Android SDK
  • 将ADGYDE_ANDROID_SDK * .aar文件添加到您的android项目中

3.2 按照以下步骤将.aar文件导入项目
  • 转到文件>新建>新模块
  • 选择“导入.JAR / .AAR包”,然后单击“下一步”。
  • 输入.aar文件的路径,然后单击“完成”。
  • 转到文件>项目结构(Ctrl + Shift + Alt + S)。
  • 在左侧菜单中的“模块”下,选择“应用”。
  • 转到“依赖关系”选项卡。
  • 单击右上角的绿色“+”。
  • 选择“模块依赖”
  • 从列表中选择ADGYDE_ANDROID_SDK .AAR文件。

3.3 初始化PAgent
Android SDK需要在应用程序中初始化。 请检查Android SDK上的示例项目以获取完整代码。

package com.adgyde.example;

import android.app.Application;
import android.util.Log;
import com.adgyde.android.PAgent;

public class ExampleApplication extends Application implements
Constants {
@Override

public void onCreate() {
super.onCreate();

Log.d(TAG, "ExampleApplication.onCreate()");
PAgent.init(this, "Your Appkey", "Organic"); // Default channel is Organic
PAgent.flush();

PAgent.setDebugEnabled(true);
}
}

请不要在主要活动上初始化AdGyde SDK,否则会导致会话数据不正确。

请求您创建单独的应用程序类或使用项目中已存在的任何应用程序类。 对于New application class - 创建 ExampleApplication.java并 在AndroidManifest.xml中的application标签下添加详细信息。

<application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name= "com.adgyde.example.ExampleApplication">

<!- application configuration items -->

</application>

android:name参数的值应该是新创建的应用程序类的全名,如上面的代码片段所示

3.4 将Google Play服务嵌入到您的应用中
安装Google Play Services SDK并将其导入您的项目。 有关下载详情, 点击这里。 将以下代码 / 条目 添加 到AndroidManifest.xml作为应用程序标记中的最后一个条目(就在 </application> 之前)

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

注意
AdGyde建议始终使用最新版本的Google Play服务。

有关详细信息,请参阅以下链接。
https://developer.android.com/google/play-services/setup.html
请参考以下代码

< application
android:name=".ExampleApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">

<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />


<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" \>
</intent-filter>
</activity>

<service android:name="com.adgyde.android.AppJobService"android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE">
</service>


3.5 androidmanifest.xml中添加安装接收器代码

注意:
请确保将以下接收器标签保留在应用程序标签内。

<receiver android:name="com.adgyde.android.InstallReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

如应用程序使用了多个INSTALL_REFERRER接收器,您可以使用
com.adgyde.android.MultiInstallReceiver以处理这种场景。
MultiInstallReceive必须是首个INSTALL_REFERRER接收器,它会向其他接收器广播此事件。

<receiver android:name="com.adgyde.android.MultiInstallReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

如果要使用多个接收器,则Manifest.xml应如下所示:

<!--The AdGyde Install Receiver should be placed first and it will broadcast to all receivers placed below it -->

<receiver android:name="com.adgyde.android.MultiInstallReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

<!--All other receivers should be followed right after -->
<receiver android:name="com.google.android.abc.AbcReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>

<receiver android:name="com.adsmobi.android.xyz.InstallReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>


3.6 添加项目权限
将以下权限添加到AndroidManifest.xml

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


3.7 向项目添加依赖项
将以下依赖项添加到Android gradle文件(Module:android)。

dependencies {
// . . .
compile 'com.android.installreferrer:installreferrer:1.0'
// . . .
}


4. 深层链接
深层链接是在提供个性化内容或将用户发送到应用程序内的特定活动时启动移动应用程序的行为。

深层链接详细的集成过程


5. 卸载跟踪
AdGyde的卸载跟踪 功能 允许您跟踪指定应用程序的卸载次数。 卸载是一个重要的索引,可帮助您跟踪用户的质量,从而跟踪广告系列。

卸载详细的集成过程

6. 人口统计学
AdGyde人口统计数据提供详细的年龄和性别明智的用户隔离,广告客户可以使用它来定位新用户并有效地运行他们的广告系列。 可以记住,应用程序主要由女性和26-35岁年龄组使用,因此广告客户可以要求发布商仅定位这些群组并获得最大安装量并返回花费的成本。

6.1 年龄概况
用户年龄概况人口统计显示广告商用户隔离和特定年龄段的用户集中度。 拥有此数据,可帮助应用营销人员进行更准确的测量并帮助您做出决策。

可以通过以下两个函数将数据传递给SDK
  1. PAgent.setAge(Context context, int years, int month, int day);
  2. PAgent.setAge(Context context, int age);

// Age to be calculated from Year, Month, Day
PAgent.setAge(context, 1991, 05, 03);

// Age Value
PAgent.setAge(context, 32);





6.2 性别概况
用户性别配置文件人口统计信息向广告客户显示特定性别细分受众群的用户隔离和用户集中度。 拥有此数据,可帮助应用营销人员进行更准确的测量并帮助您做出决策。

语法:PAgent.setGender(Context context,String gender);

函数中允许的值
  1. 男 (M)
  2. 女 (F)
  3. 其他 (O)

// when you pass string for Male
PAgent.setGender(context,PAgent.M);

// when you pass string for Female
PAgent.setGender(context,PAgent.F);

// when you pass string for Others
PAgent.setGender(context,PAgent.O);




用户详情


新用户
AdGyde可以让您知道有多少用户通过各种广告系列实时安装了您的应用。 通过此功能,您可以比较广告系列的效果并分析应用程序的流量。

有机 v/s 非有机下载
AdGyde为有机和非有机下载提供隔离数据
Organic App download: 有机下载是一种下载类型,其中用户已通过Play商店访问您的应用程序,搜索您提供的关键字。
Non-organic app download: 非自然安装是用户来到您的应用下载页面的原因之一,它们可能是由朋友推荐的,或者他们已经看到了某种形式的应用推广。 有人指导用户使用您的应用程序

活跃用户
AdGyde会告诉您在给定的日期至少打开一次应用程序的用户数量,并且该数字会实时显示。

手机品牌和型号
AdGyde提供了安装应用程序的电话品牌和型号的完整列表,以便您可以定位潜在用户。

地理位置
AdGyde以明智的方式提供新用户数量,以便您可以在更有潜力的情况下定位广告系列。

会议
1. 概述
Android应用程序是一组活动,应用程序和活动之间的关系是松散的。 最常见的案例问题之一是,按下BACK键后应用程序不会退出,这会让开发人员和用户感到困惑。 AdGyde重新定义了会话,使其易于理解。

2. 会议的定义
会话是移动应用程序和用户之间的对话。 会话从应用程序启动开始,并在用户退出应用程序后结束。 在用户预期中,在主活动上按BACK键或单击应用程序上的退出按钮将启动应用程序退出,但这些任务将应用程序切换到背景,这很难理解。

通常开发人员使用finish()来按代码退出应用程序。
public class MainActivity extends Activity {
protected onCreate(Context context) {
// some code
Button quitButton = (Button)findViewById(R.id.quitAppButton);
quitButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// quit application by close main activity
MainActivity.this.finish();
}
});
}
}

MainActivity.this.finish()将关闭主要活动,但不会退出应用程序,这只是将应用程序置于后台。 在理解时,应该在用户再次启动应用程序时创建MainActivity,但由于应用程序已经在后台,因此只需将背景切换到前台。

AdGyde重新定义了应用程序的退出 - 一旦用户关闭最后一个活动,会话就会关闭。 它完全符合用户使用该应用程序的体验。 在最后一个活动上按BACK键将被视为用户想要退出该应用程序。

3. 会议情景
3.1 以BACK键结束
  1. 用户启动应用程序,会话开始
  2. 主要活动已创建
  3. 用户按BACK键
  4. 主要活动被破坏
  5. 会话结束

3.2 按代码退出
  1. 用户启动应用程序,会话开始
  2. 主要活动已创建
  3. 用户点击主要活动的“退出”按钮
  4. 主要活动被破坏
  5. 会话结束

3.3 切换到后台
  1. 用户启动应用程序,会话开始
  2. 主要活动已创建
  3. 用户按HOME键进入主屏幕
  4. 用户在45秒后点击应用程序图标
  5. 应用程序被带到前面,会话关闭,新会话开始

如果应用程序切换到后台超过30秒,会话将被关闭,因为假设用户切换到另一个任务/应用程序并且上下文中的应用程序未被使用。

3.4 被系统任务管理器杀死
  1. 用户启动应用程序,会话开始
  2. 用户按HOME键打开系统任务管理器
  3. 用户使用系统任务管理器杀死应用程序。 会话结束


3.5 被系统杀死
  1. 用户启动应用程序,会话启动
  2. 用户切换到另一个应用程序
  3. 应用程序在后台运行,应用程序被低内存系统杀死。 会话结束


返回用户
1. 概述
返回应用程序是衡量用户忠诚度的指标。

对于应用程序 - 测量应用程序性能的每周返回率将是预期的标准。 例如,对于在线书店,我们希望用户至少每周一次打开应用程序。 如果在线书店今天有100个新用户,并且60个用户在本周至少打开一次应用程序,则每周返回率为60%。 它可以被认为是一个在线书店的好。

对于游戏 - +1天的返回率应该比每周返回率更重要。 这是因为开发人员希望用户应该被他们的游戏所吸引,并且应该日夜玩游戏。 如果用户第二天不玩游戏,则表示用户不喜欢游戏并且用户可能丢失。

2. 归还的定义
在下面的描述中+ n指定自安装以来的天数。 假设2016年4月1日的新用户数为100。 +1表示2016年4月2日,+1上的用户表示在第0天(2016年4月1日)安装了应用程序的用户数再次返回/打开申请+1(2016年4月2日)。 类似地,+ 2表示2016年4月3日,而+2上的用户表示在第0天(2016年4月1日)安装了应用程序的用户在+2(2016年4月3日)上再次返回/打开了应用程序。

  日期 活跃用户数(4月1日新用户除外) 返回用户数
  2016年4月1日 100 (新用户)  
+1 2016年4月2日 5 =5
+2 2016年4月3日 10 =distinct(5, 10)
+3 2016年4月4日 15 =distinct(5, 10, 15)
+4 2016年4月5日 20 =distinct(5, 10, 15, 20)
+5 2016年4月6日 25 =distinct(5, 10, 15, 20, 25)
+6 2016年4月7日 30 =distinct(5, 10, 15, 20, 25, 30)
+7 2016年4月8日 35 =distinct(5, 10, 15, 20, 25, 30, 35)
+14 2016年4月15日 40 =distinct(5, 10, 15, 20, 25, 30, 35, 40)
+30 2016年5月1日 45 =distinct(5, 10, 15, 20, 25, 30, 35, 40, 45)


在2016年4月2日,100个新用户中有5个打开了申请,返回用户数为5。从2016年4月2日到2016年4月3日,共有15个用户打开了申请,系统将删除重复用户,因此编号返回用户将是不同的(5,10)。

注意:随着时间的推移,现实生活中的这些数据随着返回的用户数量的减少而下降。

3. 如何阅读报告
返回用户数据不会实时处理,最多可能需要24小时才能在控制台中显示。
1. 登录AdGyde控制台
2. 从左侧导航菜单中的“采集”标题中选择“返回用户”部分

用户流程
“用户流” 允许Application Developer通过应用程序中定义的活动来评估其用户的移动。 通过分析用户流程Sankey 图, App开发人员可以预测哪些活动在其用户中最受欢迎以及下降率高的位置。

假设食品交付应用程序的用户流量预计如下:
  1. 用户选择餐厅
  2. 用户选择美食
  3. 加入购物篮
  4. 付款已完成
用户流程下面解释了用户从一个活动移动到另一个活动的行为。



用户甚至可以知道用户相对于一个节点的流入和流出的数量。 例如,在下面的图像中,“Home” 节点告诉来自根,类别和促销的流程,其中蓝色表示“流入”,红色表示“流出”。




跟踪离线广告系列的安装


本节讨论跟踪的跟踪解决方案
  1. 预加载活动
  2. 离线广告系列
  3. 商店下载/ APK下载

预加载广告系列
要跟踪AdGyde中的广告系列,广告客户需要在应用程序本身中集成预加载渠道,然后与预加载合作伙伴共享APK

离线广告系列
要跟踪AdGyde中的广告系列,广告客户需要在应用程序本身中集成离线渠道,然后通过某些商店的通知运行广告系列。我们还可以共享跟踪链接,以帮助下载APK。

可以在AdGyde中与合作伙伴一起制作广告系列,以便广告客户跟踪CPI,CPR和CPM类型的广告系列。

创建脱机跟踪链接
1. 综合合作伙伴跟踪链接
  1. 登录AdGyde控制台
  2. 点击设置
  3. 转到广告系列跟踪
  4. 点击“+新广告系列”
  5. 输入广告系列的名称,然后选择点击归因后退窗口的范围
  6. 单击“创建”按钮



  7. 单击频道下的“+”按钮,然后在频道名称中选择要使用的合作伙伴
  8. 单击离线复选框以进行离线广告系列(如下图所示)
  9. 复制跟踪链接



  10. 创建一个配置了以下内容的APK
    • 在PAgent.init()中,对于频道名称参数,请提供AdGyde控制台中显示的合作伙伴的名称,并使用“_offline”结束字符串。(例如:如果通道名称为Loopback,则将参数名称保留为Loopback_offline)
    • 然后为APK创建一个可下载的链接,将跟踪链接(已从控制台复制)中的宏ag_r的值替换为APK的链接(确保从此链接下载APK文件)。
  11. 现在,已创建的链接已准备好与您的合作伙伴共享以运行广告系列。


离线广告系列安装测试
  1. 1. 请使用 之前 从未安装过应用程序的新设备开始测试,或使用白名单设备。
  2. 2. 确保您正在安装的int application APK已集成AdGyde SDK
  3. 3. 安装并使用几秒钟后启动应用程序
  4. 4. AdGyde仪表板现在应在控制台上的“非有机”下显示安装转换。

注意: PAgent.init中设置的伙伴/频道的名称(此处为“app-Key”,“channel_offline”)应与在AdGyde控制台中创建频道时输入的名称完全相同。

package com.adgyde.example;

import android.app.Application;
import android.util.Log;

import com.adgyde.android.PAgent;

public class ExampleApplication extends Application implements Constants {
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "ExampleApplication.onCreate()");
// Initialize AdGyde SDK with appkey & default channel id.
// SDK will use default channel id if no INSTALL_REFERRER being sent by Google Play Service.
// This case only will happen in debug. (Install APK to phone with adb.)
PAgent.init(this, "app-key", "channel_offline");
PAgent.setDebugEnabled(true);
}
}

跟踪在线广告系列的安装


AdGyde归因和分析解决方案已为移动广告渠道整合了广告合作伙伴; 您还可以归因广告系列驱动的应用安装。

AdGyde支持
  • CPI(每次展示费用)
  • CPC (每次点击费用),
  • CPR (每次注册费用),
  • CPA (每次转化费用)

衡量您的Attribution Analytics帐户中的广告系列需要两件事:
  • 添加内部合作伙伴以将广告系列与之关联

    注意: 已与AdGyde集成的合作伙伴称为集成合作伙伴。如果您的合作伙伴未在集成合作伙伴中找到,请通过填写合作伙伴集成表单 https://www.adgyde.com/partners.php请求合作伙伴启动集成,或要求他们通过support@adgyde.com与我们联系。

  • 生成测量URL


在线活动流程





为内部合作伙伴添加广告系列
要生成要在营销广告系列中使用的衡量网址,您需要在填写广告系列详细信息后创建“广告系列”

添加新广告系列
  1. 登录AdGyde控制台
  2. 单击“设置”
  3. 转到广告系列菜单,然后点击“+新广告系列”即可开始添加新广告系列
  4. 输入广告系列名称,然后选择点击归因回溯窗口的范围
  5. 单击“创建”按钮



广告系列跟踪详情
  1. 单击频道下的“+”按钮,然后在频道名称中选择要使用的合作伙伴
  2. 设置特定合作伙伴的每次非自然下载(每次安装的成本)的成本
  3. 创建的链接; 现在可以与您的合作伙伴共享以运行该 广告系列 。



  4. 如果需要,可以为“点击每次注册”,“点击播放”等广告系列设置S2S活动(注册和播放等应用内活动)
  5. 在控制台中添加合作伙伴事件代码,该代码将与事件名称相对应(此合作伙伴事件代码将由您的合作伙伴提供)
  6. 单击“更新”按钮

广告系列投放后,可以在广告系列效果下的归档分析报告中查看通过此广告系列推动的最终应用安装。
  1. 每个频道的新用户
  2. 每个频道有价值的用户
  3. 每通道成本
  4. 每个频道的每次安装点击次数
  5. 每个渠道产生的收入
  6. 每个频道的延迟深度链接计数
  7. 每个频道的深层链接数
  8. 每个频道的重新归属



深层链接


深层链接是在提供个性化内容或将用户发送到应用程序内的特定活动时启动移动应用程序的行为。

1. Deep Link的工作原理
当用户单击Campaign链接时,如果安装了应用程序,则将使用深层链接打开应用程序并将用户定向到特定页面。如果未安装应用程序,则广告系列将照常运行,用户可以安装应用程序。

下图显示了深层链接方案。



2. 深层链接集成步骤
允许用户启用深层链接。我们在AdGyde控制台中提供用户界面。使用以下步骤,用户可以启用深层链接。

  1. 登录AdGyde控制台
  2. 单击设置选项
  3. 单击深层链接
  4. 单击+创建新方案以深入链接应用程序
  5. 从下拉列表中选择您的应用程序,设置方案名称,输入在AndroidManifest.xml中传递的方案名称,设置主机名和路径
  6. 单击Create Scheme.



    E. g.如果您想深入链接以下链接 - https://www.adgyde.com/demo
    • 方案:https.必须为Intent过滤器设置至少一个scheme属性
    • 主持人:www.adgdye.com
    • 路径:/ demo,标识特定资源(路径以“/”开头)

    E. g.如果您想深入链接以下链接 - adgyde://demo/registration
    • 方案:adgyde
    • 主持人:演示
    • 路径:/注册

    通过此方案和详细信息,您可以获得自定义方案设置并使用相同的方案


  7. 现在启用广告系列的深层链接。单击设置选项
  8. 点击广告系列跟踪
  9. 点击+新广告系列以创建新广告系列,该广告系列用于启用深层链接
  10. 创建新广告系列后,点击加号(+)按钮
  11. 单击“启用深层链接”
  12. 从下拉列表中选择深层链接方案
  13. 输入应用程序类名称(活动名称),您希望在深层链接后进行操作
  14. 输入广告系列时点击桌面浏览器的数据网址,然后打开数据网址内容
  15. 复制自动生成的intent-filter并粘贴到您的AndroidManifest.xml中
  16. 点击“更新”按钮,使用深层链接更新广告系列。



活动


事件是跟踪用户和移动应用程序之间交互的强大工具。
有3种事件,都是
  1. 简单的事件
  2. 计数事件
  3. 计算事件

1. 简单的事件
简单事件是没有参数的事件。 它可用于跟踪简单事件。 例如,如果您需要跟踪用户启动您的应用程序的次数。 只需在主要活动的onCreate()上添加一行即可。

public void onCreate() {
// some code here
// fire simple event named "Launch my application"
PAgent.onEvent("Launch my application");
PAgent.flush();
}

简单事件可用于构建漏斗,其详细信息可在漏斗部分找到。

对于更复杂的事件跟踪 - 应考虑计算事件或计算事件。

2. 计数事件
Counting Event对于跟踪需要计数的事件非常有用。 例如,如果我们正在开发新闻应用程序。 该应用程序有三个类别,即本地新闻,国家新闻和国际新闻。 我们需要知道哪个类别最受欢迎,只需在点击监听器上实现以下代码即可。

/**
* Being triggered if "Local News" tab clicked.
*/
public void onCategoryLocalNewsClicked(View view) {
// your code here
Map<String, String> params = new HashMap<String, String>();
params.put("category", "local news");
PAgent.onEvent("selected category", params);
PAgent.flush();
}

/**
* Being triggered if "National News" tab clicked.
*/
public void onCategoryNationalNewsClicked(View view) {
// your code here
Map<String, String> params = new HashMap<String, String>();
params.put("category", "national news");
PAgent.onEvent("selected category", params);
PAgent.flush();
}

/**
* Being triggered if "International News" tab clicked.
*/
public void onCategoryInternationalNewsClicked(View view) {
// your code here
Map<String, String> params = new HashMap<String, String>();
params.put("category", "international news");
PAgent.onEvent("selected category", params);
PAgent.flush();
}

由于事件不同且AdGyde Server需要区分事件正在计数事件,因此需要在具有指定类型的控制台中添加事件。

以下是在Console中添加计数事件的步骤
  1. 登录AdGyde控制台
  2. 单击“设置/事件”
  3. 点击事件列表上方的“创建”按钮
  4. 在app_name字段中选择您的应用程序
  5. 在event_id字段中输入“selected category”。 它应该与PAgent.onEvent(String,Map <String,String>)的第一个参数相同
  6. 在parameter_name字段中输入“category”
  7. 选择comp_param_type字段的“Counting”项
  8. 单击“创建”按钮



Counting Event表示给定参数值之间的频率关系,因此我们选择了直方图,因为它们可以很好地呈现这些关系。

3. 计算事件
计算事件可用于跟踪 累积 值。

例如,如果我们将横幅放在具有不同权重或成本的应用程序中,那么使用计算事件我们可以根据 指定的 权重知道每个横幅的贡献 。

/**
* Invoked when advertisement clicked.
*/
public void onAdvertismentClicked(Advertisement adv) {
Map<String, String> params = new HashMap<String, String>();
// First parameter is event name and second is value name which will be accumulated.
params.put("CPM", adv.getName());
// Second parameter is the value for its value name. Value must be integer type.
params.put(adv.getName(), "" + adv.getPrice());
// Trigger event where first parameter is event_id
PAgent.onEvent("CPM income", params);
PAgent.flush();
}

计算事件使用2个参数。 第一个参数定义事件id说'CPM'是被累积的参数。 第二个参数定义参数值。 例如,新闻应用程序放置了2个横幅。 首先是'adv1',CPM是1美分。 第二是'adv2',CPM为5美分。'adv1'点击了5次,'adv2'点击了10次。 累计值为'adv1'= 1分* 5 = 5美分,'adv2'= 5美分* 10 = 50美分。

定义计算事件的过程类似于计数事件,但com_param_type应设置为“计算”。



计算事件表示事件中给定参数的贡献百分比,因此饼图是呈现此关系的适当工具。

4. 收入事件
有一个单独的收入,甚至可以用于跟踪通过应用程序产生的收入。 控制台中显示 仅 基于 此事件的收入也。

private void fireRevenueEvent() {
PAgent.onRevenue(17);
PAgent.flush();
}

5. 独特的活动
唯一事件对于跟踪一天需要计数一次的事件非常有用。 例如,如果我们开发新闻应用程序。 该应用程序有三个类别,即本地新闻,国家新闻和国际新闻。 我们需要知道哪个类别最受欢迎,只需将以下代码放在点击监听器上即可。

由于事件不同且AdGyde Server需要区分事件是唯一事件,因此需要在具有指定类型的控制台中添加事件。

请按照以下说明创建独特的活动
  1. 登录AdGyde控制台
  2. 单击“设置/事件”
  3. 在app_name字段中选择您的应用程序
  4. 在app_name字段中选择您的应用程序
  5. 在event_id字段中输入“selected category”。 它应该与PAgent.onEvent(String,Map,Boolean flag)的第一个参数相同
  6. 在parameter_name字段中输入“category”
  7. 选择comp_param_type字段的“唯一事件”项
  8. 单击“创建”按钮

唯一事件表示给定参数值之间的频率关系,因此直方图用于表示这些关系。


漏斗
漏斗是一种根据用户与应用程序交互来测量用户路径的方法。

1. 定义漏斗


假设在新闻应用程序的主页上显示横幅。 期望用户将被吸引点击横幅,该横幅将用户导航到本地新闻。 本新闻底部有一个联系链接。 付款将基于本地新闻主题,因此我们希望用户愿意点击并通过表单建立联系。

在实践中,100个用户进入这40个用户点击横幅的主页然后在这40个用户中只有10个用户阅读新闻并点击联系链接。 转换率为10%。



漏斗以每个步骤的视觉形式绘制转换率。

2. 跟踪代码
简单事件最适合于渠道。 以下示例还使用简单事件。

/**
* Invoked when user launch my application.
*/
public void onEnterHomePage() {
PAgent.onEvent( "enter home page");
PAgent.flush();
}

/**
* Invoked when user click on home page banner.
*/
public void onBannerClicked() {
PAgent.onEvent( "banner clicked");
PAgent.flush();
}

/**
* Invoked when user click on "contract us" link.
*/
public void onContractUsViewed() {
PAgent.onEvent("contract us");
PAgent.flush();
}


3. 设置渠道
编码部分完成后,还需要在控制台中设置漏斗。

请按照以下说明设置渠道
  1. 登录AdGyde控制台
  2. 点击“创建”按钮创建一个新的渠道
  3. 选择应用程序并输入渠道名称
  4. 点击“创建”按钮以保存渠道
  5. 在渠道列表中,点击新创建的渠道的“点击”
  6. 添加项目
注意:漏斗创建后,渠道中的数据填充至少需要1天。

转变

1. 概述
转换是一种强大的工具,可跟踪用户对设计服务路径的反应。 服务路径是为用户服务的过程。 例如,我们正在运营一个在线书店。 我们在主页上放了一个横幅来推广热销小说。 我们期望用户会被横幅吸引,然后点击横幅进入产品详细页面看看,然后他会喜欢这本书并把它放到购物车上。 在这种情况下,我们可以设计如下的服务路径。
  1. 用户被横幅所吸引
  2. 用户通过单击横幅进入产品详细信息页面
  3. 用户将推荐书放入购物车

我们将上述步骤标记为MyPromoteStep1,MyPromoteStep2和MyPromoteStep3,并使用简单事件来跟踪这些事件。 如果用户遵循服务路径,将触发MyPromoteStep 事件。 如果MyPromoteStep1被触发100次,MyPromoteStep2被触发50次,MyPromoteStep3被触发10次,则购买转换为10/100 = 10%。 这对我的在线图书有好处,我应该支付更多的钱购买更多的销售量。

2. 定义漏斗
  1. 登录AdGyde控制台
  2. 单击“设置/事件”
  3. 添加3个名为MyPromoteStep1,MyPromoteStep2,MyPromoteStep3的简单事件
  4. 单击“设置/事件”漏斗
  5. 创建一个新的渠道
  6. 点击渠道商品列的“点击进入”
  7. 从列表中选择事件添加渠道项目。 第一步是MyPromoteStep1,第二步是MyPromoteStep2,第三步是MyPromoteStep3

3. 追踪守则
现在我们将跟踪代码放入我们的在线书店项目中。

/**
* Invoked when user click on home page banner.
*/
public void onClickOnBanner() {
PAgent.onEvent( "MyPromoteStep1");
PAgent.flush();
}

/**
* Invoked when user enter detail page of promoted novel.
*/
public void onEnterNovelDetailPage() {
PAgent.onEvent("MyPromoteStep2");
PAgent.flush();
}

/**
* Invoked when user put promoted novel to cart.
*/
public void onPutNovelToCart() {
PAgent.onEvent( "MyPromoteStep3");
PAgent.flush();
}


4. 转换报告
转换可以在第二天看到
  1. 登录AdGyde控制台
  2. 在工具栏上选择查询日期范围
  3. 单击“转换”菜单
  4. 从“选择渠道”下拉列表中选择渠道名称
  5. 检查漏斗图

货币化


1. 货币化和应用内收入
应用内收入是由任何类型的应用内事件生成的收入类型。应用内收入被认为适合衡量广告系列的效果。

假设App Developer可以在购买屏幕上创建新的应用内购买事件,并创建到购买屏幕的深层链接。然后它开始一个活动。用户点击应用内事件的跟踪链接并进行购买。然后,App Developer可以衡量广告系列的效果并进行合适的付款。

App Developer通常将应用内收入视为衡量和评估广告系列效果的合适参数。
  1. App Developer分配收益事件,并将Diwali Gift的值设置为代码为Rs.50
  2. 在您的应用程序中实现深层链接功能
  3. 登录AdGyde控制台
  4. 为此促销创建广告系列以及深层链接和延迟深层链接功能,以便将用户直接带到“购买”屏幕
  5. 当用户拥有应用程序时,他将被带到购买屏幕,但如果用户没有应用程序,则安装应用程序,然后将其带到购买屏幕
  6. 在控制台中,我们可以看到此广告系列生成的收入

2. 生命时间价值
在收入和忠诚度方面吸引用户的价值,当与会话详细信息和用户流量等其他指标相结合时,它可以为您提供有用的洞察力,了解您的忠实用户是谁以及谁在您的应用上花费更多。

了解和识别具有更高生命周期价值的这些用户将是生存的关键,您可能希望建立这些用户和广告网络之间的关联,营销活动和将这些用户发送到您的应用的关键功能集。

这使您可以深入了解应该在何处花费营销资金,以及在何处合理地支付更高的每次安装成本并优化您的营销获取成本。


队列分析


AdGyde的同期报告提供了在不同时间范围内查看和比较每个多个群组的不同指标的功能。输入过滤条件(如日期范围,版本,位置和渠道)可用于细分用户数,也可根据有价值的用户在控制台上查看每日/每周收入趋势。

要比较基于地理位置的 广告系列的 每个城市的用户质量,请按以下步骤操作
  1. 登录AdGyde控制台
  2. 从客户端列表中选择应用程序
  3. 选择条件:
    1. 选择日期范围
    2. 选择广告系列名称
    3. 将城市名称保留为全部
  4. 选择“城市”选项以用于分组依据
  5. 单击“查询”以填充数据
  6. 控制台将队列报告显示为折线图:
    1. Y轴:会话计数
    2. X轴:日期

广告系列跟踪


根据定义,广告系列跟踪是指跟踪安装来源的方法。广告系列跟踪有助于分析新用户,回复用户,应用内事件,为广告网络和广告客户生成的应用内收入。

  1. 登录AdGyde控制台。
  2. 选择应用程序。
  3. 为发布商创建新广告系列。
  4. 从集成合作伙伴列表中选择“发布者”。
  5. 输入广告系列名称。
  6. 选择“点击归因回顾窗口”(1 - 90天)
  7. 配置将发送给发布者的应用内事件。输入发布者事件令牌作为事件值。
  8. AdGyde控制台创建跟踪网址为“http://www.adgyde.com/b/1/r?c=aB1&clickid={clickid}”
  9. 保存广告系列并与发布商共享跟踪网址。
  10. 发布商需要使用自己的工具屏蔽跟踪网址,并使链接公开/启动广告系列
  11. 当用户单击屏蔽的跟踪URL时,他将导航到发布者的服务器。
  12. 发布者的服务器为此次点击创建一个ID,并使用此ID替换跟踪网址中的{clickid}。(此ID在发布商的末尾定义。对于 某些 发布商,它可以是{transaction_id},{clickid}或{subid})
  13. 发布商链接使用唯一的点击ID将用户重定向到跟踪网址。
  14. AdGyde会捕获这些详细信息,包括点击ID。它使用点击ID为Google Play商店创建引荐来源安装网址。以下参数将作为推荐人发送到Google Play商店。
  15. AdGyde会将用户重定向到Google Play商店。
  16. Google Play商店会下载并安装APK。
  17. 首次启动应用程序时,Google Play服务会将INSTALL_REFERRER发送到应用程序。
  18. AdGyde SDK捕获引荐来源并将日志上传到服务器。
  19. AdGyde创建了一个新用户。
  20. 用户开始使用该应用程序。应用程序触发PLAY_GAME事件。(触发事件的时间是每个应用程序。)
  21. AdGyde服务器获取PLAY_GAME事件的日志
  22. AdGyde服务器将PLAY_GAME事件发送回发布者服务器。

邮寄后的URL
AdGyde的一项先进功能,回发后URL为每个安装的新用户和应用内事件提供服务器到服务器通知。

以下是安装回发中支持的宏列表
评论
{idfa}目前将为null,因为我们没有捕获任何idfa值
{advertisingId}用户的Google广告IDe23c04c6-44aa-48fc-9781-xxxxxxxxxxxx
{androidId}应用程序的Android ID35aa72a37cxxxxxx
{packageName}包的应用程序名称。仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用com.adgyde.adgydedemo
{install_time}以Unix时间戳格式返回宏1532081296
{click_time}以Unix时间戳格式返回宏1532081266
{campaign}广告系列名称TestMacroCampaign
{country_code}应返回国家/地区代码但我们在此版本中返回国家/地区名称,因为我们不会捕获国家/地区代IN
{city}城市名称Noida
{device_brand}触发安装的设备的品牌Motorola
{operator}运营商名称Wifi
{ip}设备的IP地址。在内部讨论后,应向合作伙伴提供敏感信息和回发182.76.yy.xxx
{device_model}设备型号Nexus+6.0
{language}电话的语言en
{transaction_id}AdGyde发送的唯一ID。仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用1532081266741C1wRx
{sdk_ver}AdGyde SDK版本1.1.0
{app_ver}应用版本1.9
{os_ver}该版本的设备版本6.0.1
{appName}应用程序名称保存在 AdGyde中。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用AdGydeDemo
{clickid}合作伙伴发送的唯一价值testdclick12
{sub1}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro1
{sub2}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro2
{sub3}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro3
{sub4}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro4


示例安装回发URL:
http://www.adgyde.com?idfa={idfa}&advertiserId={advertiserId}&android-id={androidId}&app-id={packageName}&install-unix-ts={install_time}&click-ts={click_time}&camapign={camapign}&country-code={country_code}&city={city}&device-brand={device_brand}&carrier={operator}&ip={ip}&device-model={device_model}&language={language}&customclickid={transaction_id}&sdk-version={sdk_ver}&app-version={app_ver}&os-version={os_ver}&app-name={app_name}&clickid={clickid}&sub1={sub1}&sub2={sub2}&sub3={sub3}&sub4={sub4}

应用内活动
通过应用内活动,AdGyde可让您跟踪您感兴趣的任何与媒体源和广告系列相关的安装后事件。

您可以跟踪应用内事件,例如:
  • 登录
  • 添加到购物车
  • 应用内购买
  • 或任何其他逻辑事件

您还可以为每个活动添加应用内收入值,您可以在AdGyde信息中心使用此值。您可以将这些应用内事件映射到媒体源定义的事件。

以下是应用内事件回发中支持的宏列表
评论
{idfa}目前将为null,因为我们没有捕获任何idfa值
{advertisingId}用户的Google广告IDe23c04c6-44aa-48fc-9781-xxxxxxxxxxxx
{androidId}应用程序的Android ID35aa72a37cxxxxxx
{packageName}包的应用程序名称。仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用com.adgyde.adgydedemo
{install_time}以Unix时间戳格式返回宏1532081296
{click_time}以Unix时间戳格式返回宏1532081266
{campaign}广告系列名称TestMacroCampaign
{country_code}应返回国家/地区代码但我们在此版本中返回国家/地区名称,因为我们不会捕获国家/地区代IN
{city}城市名称Noida
{device_brand}触发安装的设备的品牌Motorola
{operator}运营商名称Wifi
{ip}设备的IP地址。在内部讨论后,应向合作伙伴提供敏感信息和回发182.76.yy.xxx
{device_model}设备型号Nexus+6.0
{language}电话的语言en
{transaction_id}AdGyde发送的唯一ID。仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用1532081266741C1wRx
{sdk_ver}AdGyde SDK版本1.1.0
{app_ver}应用版本1.9
{os_ver}该版本的设备版本6.0.1
{appName}应用程序名称保存在 AdGyde中。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用AdGydeDemo
{clickid}合作伙伴发送的唯一价值testdclick12
{sub1}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro1
{sub2}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro2
{sub3}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro3
{sub4}自定义 宏。 仅当广告系列采用新的广告系列跟踪方法时,即通过API / b / 1 / u时,此功能才可用CutomMacro4


应用内收入
应用内收入事件用于跟踪通过应用内用户互动获得的收入。收入事件也是一个应用内事件,但是分开,因为这会转化为应用开发者的收入。

保留率
保留率功能可帮助Application Developer每天研究其应用程序的用户保留期。Application Developer可以在不同的时间范围内查看保留率,例如每日7天,每周4周和每月2个月,即新用户谁可以在9月1日(第35周,9月)他们在9月2日返回或做了他们在第36周或10月份回归。还返回有机和非有机获取模式的用户部门。

App Developer使用保留率来检查新用户的质量
  1. 登录AdGyde控制台
  2. 选择应用程序
  3. 选择日期范围,有机/非有机和频道
  4. 可以看到广告网络公司的1天保留率,并且 可以根据用于缩放广告系列的信息做出决定 。


安卓卸载跟踪


AdGyde的卸载跟踪 功能 允许您跟踪指定应用程序的卸载次数。 卸载是一个重要的索引,可帮助您跟踪用户的质量,从而跟踪广告系列。

1. 要求
AdGyde SDK集成的Android应用程序,对于相同的应用程序Firebase项目的服务器密钥

笔记:-
  1. Android SDK 3.1.0版支持卸载跟踪
  2. 如果您使用多个InstanceIDListener服务,则可以创建自己的Listener并将令牌传递给AdGyde的API


2. 启用AdGyde卸载跟踪的步骤

2.1. 没有Firebase消息传递的应用程序
如果您的Android应用程序未使用Firebase Messaging Service,请按照以下说明操作:

  • 获取Firebase项目的服务器密钥(第3节)
  • 输入AdGyde仪表板的服务器密钥。 (第4节)
  • 在您的应用上配置Firebase消息传递。 (第5节)
  • 如上所述,将以下代码添加到您的应用程序:
  • 将Firebase依赖项添加到应用程序的build.gradle文件中,如下所示:

    dependencies {
    // . . .
    compile 'com.google.firebase:firebase-messaging:11.0.1'
    // . . .
    }

  • 将这些行添加到应用程序标记内的应用程序的AndroidManifest.xml文件中:

    <application
    <!-- ... -->
    <service android:name="com.adgyde.android.FIIDService">
    <intent-filter>
    <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
    </intent-filter>
    </service>
    <!-- ... -->
    </application>

2.2. Firebase消息集成的应用程序
如果您的应用中集成了Firebase通知,请按照以下说明操作:

  • 获取Firebase项目的服务器密钥。 (第3节)
  • 输入AdGyde仪表板的服务器密钥。 (第4节)
  • 如上所述,将以下代码添加到您的应用程序:
  • 在InstanceIDListener Service的onTokenRefresh方法(扩展com.google.firebase.iid.FirebaseInstanceIdService的类)中,在重写方法onTokenRefresh中调用我们的API,如下例所示:

public class FIIDService extends FirebaseInstanceIdService {
private static final String TAG = "FIIDService";
@Override
public void onTokenRefresh() {
try {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
PAgent.onTokenRefresh(refreshedToken);
Log.d(TAG, "onTokenRefresh Refreshed token : " + refreshedToken);
} catch(Exception e){
e.printStackTrace();
}
}
}

3. 获取Firebase服务器密钥
  1. 打开Firebase控制台: https://console.firebase.google.com
  2. 创建Firebase Android应用程序项目(如果您尚未这样做)。 有关详情,请访问以下链接: https://firebase.google.com/docs/notifications/android/console-audience#add_firebase_to_your_app
  3. 打开Firebase控制台: https://console.firebase.google.com
  4. 创建项目后,通过从所有列出的项目中选择项目来打开项目页面
  5. 导航到项目设置(单击页面左侧窗格上“概述”旁边的齿轮)
  6. 在“云消息传递”选项卡下,您可以看到可能用于FCM / GCM的发件人ID)以及两个服务器密钥,如下所示



  7. 记下服务器密钥(长密钥而不是旧服务器密钥),它将在AdGyde的仪表板中输入以进行卸载跟踪

4. 在AdGyde的仪表板上输入服务器密钥
  1. 登录AdGyde控制台
  2. 设置时钟 - >卸载左侧导航菜单。


  3. 输入您在前面提供的区域中复制/记录的Firebase服务器密钥


5. 在应用程序上配置Firebase-Messaging
  1. 下载项目的JSON文件:google-services.json并将其保存在应用程序的模块目录下,如果您没有此文件,可以从Firebase控制台的“项目设置”下载该文件
  2. 将Firebase-Messaging依赖项添加到项目中。 将规则添加到根级build.gradle文件以包含google-services插件:

    buildscript {
    // ...
    dependencies {
    // ...
    classpath 'com.google.gms:google-services:3.0.0' // ADD THIS LINE HERE
    }
    }

  3. 在项目的模块Gradle文件(通常是app / build.gradle)中,在文件底部添加apply plugin行以启用Gradle插件,并在依赖项块中添加依赖项

    apply plugin: 'com.android.app'
    android {
    // ...
    }

    dependencies {
    // ...
    compile 'com.google.firebase:firebase-messaging:11.0.1' // ADD THIS LINE AT THE BOTTOM OF THIS BLOCK
    }

    .
    .
    .

    apply plugin: 'com.google.gms.google-services' // ADD THIS LINE AT THE BOTTOM OF THIS FILE

    如果遇到“找不到。。”错误,请确保您在Android SDK Manager中安装了最新的Google Repository以解决相同问题

6. 将ProGuard与卸载跟踪结合使用
如果您的项目使用的是ProGaurd,则需要注意AdGyde SDK功能和Google Firebase Messaging Service功能不会被混淆,因为以下规则例外需要在ProGaurd文件中添加

-dontwarncom.adgyde.android.**
-keep public class com.google.firebase.iid.FirebaseInstanceId {
public *;
}


7. 测试Android卸载跟踪
卸载跟踪的测试非常简单。
无论Android应用程序是在Google Play上运行,等待提交还是在商店外,测试将保持不变,只需从设备卸载应用程序即可。

新应用程序的卸载事件最多需要24小时才会显示在仪表板的卸载趋势部分