Show Menu
主题×

Analytics

在将库添加到项目后,您可以在应用程序中的任意位置进行任何Analytics方法调用。
确保导入 ADBMobile.h 到类。

Enable mobile application reports in Analytics

在添加代码之前,请让您的 Analytics 管理员完成以下步骤来启用移动设备应用程序生命周期跟踪。这可确保您的报表包已做好准备,可以在您开始开发时捕获量度。
  1. Open Admin Tools > Report Suites and select your mobile report suite(s).
  2. Click Edit Settings > Mobile Management > Mobile Application Reporting .
  3. Click Enable Latest App Reports .
    Optionally, you can also click Enable Mobile Location Tracking or Enable Legacy Reporting and Attribution for background hits .
现在便可以捕获生命周期量度,“移动设备应用程序报表”会出现在市场营销报告界面的“ 报表 ”菜单中。

新版本

移动设备应用程序报表的新版本将会定期发布。新版本不会自动应用于您的报表包,您必须重复这些步骤以执行升级。在您每次向应用程序中添加新的 Experience Cloud 功能时,我们建议您重复这些步骤以确保您具有最新的配置。

Lifecycle metrics

要在您的应用程序中收集生命周期量度,请添加应用程序被激活时的调用,如以下示例中所示。

default.js中的WinJS

app.onactivated = function (args) { 
  if (args.detail.kind === activation.ActivationKind.launch) { 
   ... 
   // launched and resumed stuff  
   ADBMobile.Config.collectLifecycleData(); 
  } 
}; 
app.oncheckpoint = function (args) { 
  ADBMobile.Config.pauseCollectingLifecycleData(); 
}

C# in App.xaml.cs

public App() 
{ 
    this.InitializeComponent(); 
    this.Resuming += OnResuming; 
    this.Suspending += OnSuspending; 
} 
protected override void OnLaunched(LaunchActivatedEventArgs e) 
{   ... 
    ADBMobile.Config.CollectLifecycleData(); 
    ... 
} 
private void OnResuming(object sender, object e) 
{ 
    ... 
    ADBMobile.Config.CollectLifecycleData(); 
    ... 
} 
private void OnSuspending(object sender, SuspendingEventArgs e) 
{ 
    ... 
    ADBMobile.Config.PauseCollectingLifecycleData(); 
    ... 
}

App.xaml.cpp 中的 C++/CX

App::App() 
{ 
 InitializeComponent(); 
 Resuming += ref new EventHandler<Object ^>(this, &App::OnResuming); 
 Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending); 
} 
void App::OnResuming(Object ^sender, Object ^args) 
{ 
 ... 
 ADBMobile::Config::CollectLifecycleData(); 
 ... 
} 
void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e) 
{ 
 ... 
 ADBMobile::Config::PauseCollectingLifecycleData(); 
 ... 
} 
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) 
{ 
 ... 
 ADBMobile::Config::CollectLifecycleData(); 
 ... 
}

If CollectLifecycleData() is called twice in the same session, your application reports a crash on every call after the first. SDK 会在应用程序关闭时设置一个标记,以指示成功退出。If this flag is not set, CollectLifecyleData() reports a crash.

Events, props, and eVars

If you've looked at SDK methods , you are probably wondering where to set events, eVars, props, heirs, and lists. 在版本 4 中,您不能再在应用程序中直接分配这些类型的变量。SDK 而是会使用上下文数据和处理规则将您的应用程序数据映射到 Analytics 变量以供报告。
处理规则具有以下几个好处:
  • 您无需向应用商店提交更新即可更改数据映射。
  • 您可以对数据使用有意义的名称,而不是设置特定于报表包的变量。
  • 对发送额外数据的影响甚微。这些值在使用处理规则映射后才会显示在报表中。
您直接分配到变量的任何值都应当添加到上下文数据中。

处理规则

处理规则用于将您在上下文数据变量中发送的数据复制到 eVar、prop 及其他变量以供报告。
2013 年峰会上的 处理规则培训
我们建议使用“命名空间”对您的上下文数据变量进行分组,因为它能帮助您保持逻辑顺序。例如,如果您要收集有关某个产品的信息,则可以定义以下变量:
"product.type":"hat" 
"product.team":"mariners" 
"product.color":"blue"

上下文数据变量在处理规则界面中按字母顺序进行排序,这样命名空间便能使您快速查看哪些变量位于同一命名空间。
此外,我们还听说有些人使用 eVar 或 prop 编号命名上下文数据键:
"eVar1":"jimbo"

在处理规则中执行一次性映射时,这或许会​ 稍微 ​提供一些便利,但在调试期间,您将会失去可读性,并且日后也更难以进行代码更新。我们强烈建议为键和值使用描述性名称:
"username":"jimbo"

将定义计数器事件的上下文变量设置为值“1”:
"logon":"1"

定义增量器事件的上下文数据变量可以使用以下递增值:
"levels completed":"6"

Adobe保留命名空间 a. 。 除此限制外,上下文数据变量只需要在登录公司中具有唯一性,以避免冲突。

Products variable

要在移 products 动SDK中设置,必须使用特殊语法。 有关详细信息,请参阅 产品变量

(Optional) Enable offline tracking

To store hits when the device is offline, you can enable offline tracking in the SDK methods file. 在启用脱机跟踪之前,请仔细注意配置文件引用中描述的时间戳要求。

Geo-location and points of interest

地理位置允许您测量位置数据(纬度/经度)和预定义的目标点。Each TrackLocation call sends:
  • 纬度/经度,以及 POI(如果位于在 ADBMobileConfig.json 配置文件中定义的 POI 内)。
    这些信息将被传递到移动设备解决方案变量以便自动进行报告。
  • 作为上下文数据传递的到中心的距离以及精确度。
    使用处理规则捕获。
要跟踪位置,请执行以下操作:
var ADB = ADBMobile; 
ADB.Analytics.trackLocation(37.75345, -122.33207, null);

如果在 ADBMobileConfig.json 配置文件中定义了以下 POI:
"poi" : [ 
            ["San Francisco",37.757144,-122.44812,7000], 
        ]

When the device location is determined to be within a 7000 meter radius of the defined point, an a.loc.poi context data variable with the value San Francisco is sent in with the TrackLocation hit. 另外,还将发送 a.loc.dist 上下文变量,其中包含到定义坐标的距离(以米为单位)。

Lifetime value

您可以使用生命周期值测量和定位每个用户的生命周期值。每当您通过 TrackLifetimeValueIncrease 发送值时,该值都会添加到现有值。生命周期值存储在设备上,并可随时通过调用 GetLifetimeValue 进行检索。此值可用于存储生命周期购买、广告查看、视频完成、社交分享、照片上载等。
// Lifetime Value Example 
var ADB = ADBMobile; 
var purchasePrice = 39.95; 
var cdata = new Windows.Foundation.Collections.PropertySet(); 
cdata["ItemPurchaseEvent"] = "ItemPurchaseEvent"; 
cdata["PurchaseItem"] = "Item453"; 
cdata["PurchasePrice"] = purchasePrice; 
ADB.Analytics.trackLifetimeValueIncrease(purchasePrice, cdata);

Timed actions

定时操作允许您测量某个操作从开始到结束之间的应用程序内时间和总时间。SDK 将计算完成该操作所用的会话内时间量以及总时间(跨会话)。这可用于定义区段以按时比较购买、通过水平、结帐流程等。
  • 在应用程序内开始和结束之间的总秒数 - 跨会话
  • 开始和结束之间的总秒数(时钟时间)
// Timed Action Start Example 
var ADB = ADBMobile; 
var cdata = new Windows.Foundation.Collections.PropertySet(); 
cdata["ExperienceName"] = experience; 
ADB.Analytics.trackTimedActionStart("TimeUntilPurchase", cdata);

// Timed Action Update Example 
var ADB = ADBMobile; 
var cdataUpdate = new Windows.Foundation.Collections.PropertySet(); 
cdataUpdate["ImageLiked"] = imageName; 
ADB.Analytics.trackTimedActionStart("TimeUntilPurchase", cdata); 

// Timed Action End Example 
var ADB = ADBMobile; 
ADB.Analytics.trackTimedActionEnd("TimeUntilPurchase");