重要提示:本文说明了旧版插件。新用户应该使用最新插件

适用于 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, string 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, "200"));

相关资源

广告系列

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

您可以使用构建器方法将广告系列参数作为任何匹配的一部分来发送。

构建器方法

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

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

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

public void Dispose();

示例

googleAnalytics.Dispose();