适用于 Unity 的 Google Analytics(分析)插件 - API 参考

本文档介绍了如何发送数据,并列出了适用于 Unity 的 Google Analytics(分析)插件的所有方法。

简介

当使用适用于 Unity 的 Google Analytics(分析)插件向 Google Analytics(分析)发送数据时,您可以使用基本方法或构建器方法。如果您要向命中附加广告系列参数或自定义维度/指标,则需要使用构建器方法。您可以交替使用这两种方法发送命中。

请按照开发者指南为您的项目设置和配置适用于 Unity 的 Google Analytics(分析)插件。

常规

调度命中

在有网络连接的情况下,将命中(数据视图、事件等)分派给 Google Analytics(分析)。

public void DispatchHits();

相关资源

会话控制

会话表示用户与游戏互动的单段过程。会话是衡量活动(包括屏幕浏览、事件和电子商务交易)的实用容器。

以下方法可用于强制开始或结束会话。

// Start a new session.
public void StartSession();
// There should be no need to end a session explicitly. However, if you do
// need to indicate the end of session you can use the following method.
public void StopSession();

相关资源

屏幕

在 Google Analytics(分析)中,屏幕表示用户在您的游戏内查看的内容。一次屏幕浏览包含一个字符串字段,该字段将用作您的 Google Analytics(分析)报告中的屏幕名称。

基本

public void LogScreen(string title);

构建器

public void LogScreen(AppViewHitBuilder builder);

示例

googleAnalytics.LogScreen("Main Menu");

//Builder Hit with all App View parameters (all parameters required):
googleAnalytics.LogScreen(new AppViewHitBuilder()
    .SetScreenName("Main Menu"));

相关资源

活动

事件是一种实用的方式,可以收集有关用户与游戏的互动组件互动情况(例如对某件商品的使用情况)相关的数据。一个事件由四个字段组成,您可以使用这些字段来描述用户与游戏的互动情况。

基本

public void LogEvent(string eventCategory,
    string eventAction,
    string eventLabel,
    long value);

构建器

public void LogEvent(EventHitBuilder builder);

示例

googleAnalytics.LogEvent("Achievement", "Unlocked", "Slay 10 dragons", 5);

// Builder Hit with all Event parameters.
googleAnalytics.LogEvent(new EventHitBuilder()
    .SetEventCategory("Achievement")
    .SetEventAction("Unlocked")
    .SetEventLabel("Slay 10 dragons")
    .SetEventValue(5));

// Builder Hit with minimum required Event parameters.
googleAnalytics.LogEvent(new EventHitBuilder()
    .SetEventCategory("Achievement")
    .SetEventAction("Unlocked"));

相关资源

崩溃和异常

崩溃和异常衡量功能可帮助您衡量游戏中发生的崩溃和异常的次数及类型。

基本

public void LogException(string exceptionDescription, bool isFatal);

构建器

public void LogException(ExceptionHitBuilder builder);

示例

googleAnalytics.LogException("Incorrect input exception", true);

// Builder Hit with all Exception parameters.
googleAnalytics.LogException(new ExceptionHitBuilder()
    .SetExceptionDescription("Incorrect input exception")
    .SetFatal(true));

// Builder Hit with minimum required Exception parameters.
googleAnalytics.LogException(new ExceptionHitBuilder());

相关资源

用户计时

用户计时在 Google Analytics(分析)中提供了一种原生的时间衡量方式。例如,这对于测量资源加载时间非常有用。

基本

public void LogTiming(string timingCategory,
    long timingInterval,
    string timingName,
    string timingLabel);

构建器

public void LogTiming(TimingHitBuilder builder);

示例

googleAnalytics.LogTiming("Loading", 50L, "Main Menu", "First Load");

// Builder Hit with all Timing parameters.
googleAnalytics.LogTiming(new TimingHitBuilder()
    .SetTimingCategory("Loading")
    .SetTimingInterval(50L)
    .SetTimingName("Main Menu")
    .SetTimingLabel("First load"));

// Builder Hit with minimum required Timing parameters.
googleAnalytics.LogTiming(new TimingHitBuilder()
    .SetTimingCategory("Loading")
    .SetTimingInterval(50L));

相关资源

社交互动

社交互动衡量功能可让您衡量用户与您的内容中嵌入的各种社交网络分享和推荐小部件的互动情况。

基本

public void LogSocial(string socialNetwork,
    string socialAction,
    string socialTarget);

构建器

public void LogSocial(SocialHitBuilder builder);

示例

googleAnalytics.LogSocial("twitter", "retweet", "twitter.com/googleanalytics/status/482210840234295296");

// Builder Hit with all Social parameters.
googleAnalytics.LogSocial(new SocialHitBuilder()
    .SetSocialNetwork("Twitter")
    .SetSocialAction("Retweet")
    .SetSocialTarget("twitter.com/googleanalytics/status/482210840234295296"));

// Builder Hit with minimum required Social parameters.
googleAnalytics.LogSocial(new SocialHitBuilder()
    .SetSocialNetwork("Twitter")
    .SetSocialAction("Retweet"));

相关资源

电子商务

通过电子商务衡量,您可以向 Google Analytics(分析)发送游戏内购买和销售数据。Google Analytics(分析)中的电子商务数据由交易命中和商品命中组成,两者又由共享交易 ID 相关联。

交易

基本

public void LogTransaction(string transID,
    string affiliation,
    double revenue,
    double tax,
    double shipping);

public void LogTransaction(string transID,
    string affiliation,
    double revenue,
    double tax,
    double shipping,
    string currencyCode);

构建器

public void LogTransaction(TransactionHitBuilder builder);

示例

googleAnalytics.LogTransaction("TRANS001", "Coin Store", 3.0, 0.0, 0.0);
googleAnalytics.LogTransaction("TRANS001", "Coin Store", 3.0, 0.0, 0.0, "USD");

// Builder Hit with all Transaction parameters.
googleAnalytics.LogTransaction(new TransactionHitBuilder()
    .SetTransactionID("TRANS001")
    .SetAffiliation("Coin Store")
    .SetRevenue(3.0)
    .SetTax(0)
    .SetShipping(0.0)
    .SetCurrencyCode("USD"));

// Builder Hit with minimum required Transaction parameters.
googleAnalytics.LogTransaction(new TransactionHitBuilder()
    .SetTransactionID("TRANS001")
    .SetAffiliation("Coin Store")
    .SetRevenue(3.0)
    .SetTax(0)
    .SetShipping(0.0));

内容

基本

public void LogItem(string transID,
    string name,
    string SKU,
    string category,
    double price,
    long quantity);

public void LogItem(string transID,
    string name,
    string SKU,
    string category,
    double price,
    long quantity,
    string currencyCode);

构建器

public void LogItem(ItemHitBuilder builder);

示例

googleAnalytics.LogItem("TRANS001", "Sword", "SWORD1223", "Weapon", 3.0, 2);
googleAnalytics.LogItem("TRANS001", "Sword", "SWORD1223", "Weapon", 3.0, 2, "USD");

// Builder Hit with all Item parameters.
googleAnalytics.LogItem(new ItemHitBuilder()
    .SetTransactionID("TRANS001")
    .SetName("Sword")
    .SetSKU("SWORD1223")
    .SetCategory("Weapon")
    .SetPrice(3.0)
    .SetQuantity(2)
    .SetCurrencyCode("USD"));

// Builder Hit with minimum required Item parameters.
googleAnalytics.LogItem(new ItemHitBuilder()
    .SetTransactionID("TRANS001")
    .SetName("Sword")
    .SetSKU("SWORD1223")
    .SetPrice(3.0)
    .SetQuantity(2));

相关资源

自定义维度和指标

自定义维度可让您在 Google Analytics(分析)中将元数据关联到匹配、用户及会话,而自定义指标可让您在 Google Analytics(分析)中创建和增加您自己的指标。

您必须先创建和配置自定义维度和自定义指标,然后才能加以使用。配置完成后,您可以使用构建器方法将数据作为任何命中的一部分发送。

构建器

// Custom Dimension.
public T SetCustomDimension(int dimensionNumber, string value);
// Custom Metric.
public T SetCustomMetric(int metricNumber, float value);

示例

// Custom Dimension.
// An AppView hit example, but custom dimensions can be sent with all hit types.
googleAnalytics.LogScreen(new AppViewHitBuilder()
    .SetScreenName("Another screen")
    .SetCustomDimension(1, "200"));

// Custom Metric.
// An Event hit example, but custom metrics can be sent with all hit types.
googleAnalytics.LogEvent(new EventHitBuilder()
    .SetEventCategory("Achievement")
    .SetEventAction("Unlocked")
    .SetEventLabel("Slay 10 dragons")
    .SetEventValue(5)
    .SetCustomMetric(3, 81.5));

相关资源

广告系列

在 Google Analytics(分析)中衡量广告系列可让您将游戏中的用户活动归因于特定的广告系列和流量来源。

您可以使用 Builder 方法将广告系列参数作为任何命中的一部分发送。

构建器

public T SetCampaignName(string campaignName);
public T SetCampaignSource(string campaignSource);
public T SetCampaignMedium(string campaignMedium);
public T SetCampaignKeyword(string campaignKeyword);
public T SetCampaignContent(string campaignContent);
public T SetCampaignID(string campaignID);

示例

googleAnalytics.LogTiming(new TimingHitBuilder()
    .SetTimingCategory("Loading")
    .SetTimingInterval(50L)
    .SetTimingName("Main Menu")
    .SetTimingLabel("First load")
    .SetCampaignName("Summer Campaign")
    .SetCampaignSource("google")
    .SetCampaignMedium("cpc")
    .SetCampaignKeyword("games")
    .SetCampaignContent("Free power ups")
    .SetCampaignId("Summer1"));

// Send campaign parameters with timing hit.
// Builder Hit with minimum required Campaign parameters.
googleAnalytics.LogTiming(new TimingHitBuilder()
    .SetTimingCategory("Loading")
    .SetTimingInterval(50L)
    .SetTimingName("Main Menu")
    .SetTimingLabel("First load")
    .SetCampaignSource("google");

相关资源

高级

仅建议熟悉跟踪器概念的 Google Analytics(分析)高级用户使用这些方法。

SetOnTracker

在跟踪器中设置要随其他命中一起发送的值。

使用 Assets/Plugins/Fields.cs 中的变量作为 fieldName 参数(例如 Fields.SCREEN_NAME)。

public void SetOnTracker(Field fieldName, object value);

示例

googleAnalytics.SetOnTracker(Fields.SCREEN_NAME, "Main Menu");

处置

释放受管理的资源并重置跟踪器。

如果调用 dispose,那么下一个跟踪命中将需要创建一个新的跟踪器,因此建议仅在完全完成跟踪时才调用此方法。例如,在用户退出游戏时执行的 onDispose() 方法中。

public void Dispose();

示例

googleAnalytics.Dispose();