AnalyticsService

Show Deprecated
Not Creatable
Service
Not Replicated

AnalyticsService is a collection of methods that allows developers to track how users interact with their experiences, specifically player progression, in-experience economy, funnels, and custom events.

Summary

Properties

Methods

Properties

Methods

FireCustomEvent

()
Deprecated

Parameters

player: Instance
eventCategory: string
customData: Variant

Returns

()

Code Samples

Analytics Event - Custom

local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
-- server event, report a new server started
local serverInfo = {
Time = os.time(),
PlaceId = game.PlaceId,
}
AnalyticsService:FireCustomEvent(nil, "ServerStart", serverInfo)
Players.PlayerAdded:Connect(function(player)
player.Chatted:Connect(function(message)
local customData = {
Time = os.time(),
Message = message,
}
AnalyticsService:FireCustomEvent(player, "PlayerChatted", customData)
end)
end)

FireEvent

()
Deprecated

Parameters

category: string
value: Variant

Returns

()

FireInGameEconomyEvent

()
Deprecated

Parameters

player: Instance
itemName: string
itemCategory: string
amount: number
currency: string
location: Variant
customData: Variant

Returns

()

Code Samples

Analytics Event - Economy

local AnalyticsService = game:GetService("AnalyticsService")
local gold = script.Parent
gold.Touched:Connect(function(otherPart)
local player = game.Players:GetPlayerFromCharacter(otherPart.Parent)
if player == nil then
return
end
local location = {
["Map"] = "someMap",
["Position"] = tostring(gold.Position),
}
AnalyticsService:FireInGameEconomyEvent(
player,
"Sword", -- item name
Enum.AnalyticsEconomyAction.Spend,
"Weapon", -- itemCategory
2020, -- amount of Gold
"Gold", -- currency
location,
{ SomeCustomKey = "SomeCustomValue" }
) -- optional customData
end)

FireLogEvent

()
Deprecated

Parameters

player: Instance
message: string
debugInfo: Variant
customData: Variant

Returns

()

Code Samples

Analytics Event - Log

local Players = game:GetService("Players")
local TeleportService = game:GetService("TeleportService")
local AnalyticsService = game:GetService("AnalyticsService")
local placeId = game.PlaceId
local player = Players:GetPlayerByUserId(123)
xpcall(function()
TeleportService:Teleport(placeId, player)
end, function(errorMessage)
local debugInfo = {
errorCode = "TeleportFailed",
stackTrace = debug.traceback(), -- the function call stack
}
AnalyticsService:FireLogEvent(
player,
Enum.AnalyticsLogLevel.Error, -- log level
errorMessage, -- message
debugInfo, -- optional
{
PlayerId = player.UserId,
PlaceId = placeId,
}
) -- customData optional
end)

FirePlayerProgressionEvent

()
Deprecated

Parameters

player: Instance
category: string
location: Variant
statistics: Variant
customData: Variant

Returns

()

Code Samples

Analytics Event - Progression

local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
local wisdomStone = script.Parent
wisdomStone.Touched:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if player == nil then
return
end
local location = {
["placeDesc"] = "Dungeon1",
["mapDesc"] = "LeftChamberMap",
}
local statistics = {
["amountOfExp"] = 1337,
["amountOfGold"] = 1337,
["kills"] = 1337,
}
AnalyticsService:FirePlayerProgressionEvent(
player,
Enum.AnalyticsProgressionStatus.Complete, -- progressionStatus
"LevelUp", -- category
location,
statistics, -- optional
{ AcquireType = "PickUp" }
) -- customData optional
end)

LogCustomEvent

()

Parameters

player: Player
eventName: string
value: number
Default Value: 1
customFields: Dictionary
Default Value: "nil"

Returns

()

Code Samples

Log Custom Event

local AnalyticsService = game:GetService("AnalyticsService")
-- Log when the mission starts
AnalyticsService:LogCustomEvent(
player,
"MissionStarted" -- Custom event name
)
-- Log when the mission is completed with the time it took
AnalyticsService:LogCustomEvent(
player,
"MissionCompletedDuration", -- Custom event name
120 -- Event value used in aggregation
)

LogEconomyEvent

()

Parameters

player: Player
currencyType: string
amount: number
endingBalance: number
transactionType: string
itemSku: string
customFields: Dictionary
Default Value: "nil"

Returns

()

Code Samples

Tracking an in-app purchase

local AnalyticsService = game:GetService("AnalyticsService")
AnalyticsService:LogEconomyEvent(
player,
Enum.AnalyticsEconomyFlowType.Source,
"Coins",
1000, -- How many coins are in the bundle
1020, -- balance after transaction
Enum.AnalyticsEconomyTransactionType.IAP.Name,
"1000CoinBundle" -- Unique identifier of the coin bundle
)

LogFunnelStepEvent

()

Parameters

player: Player
funnelName: string
funnelSessionId: string
step: number
Default Value: 1
stepName: string
customFields: Dictionary
Default Value: "nil"

Returns

()

Code Samples

Tracking Shop steps

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
funnelSessionId = HttpService:GenerateGUID()
-- Log when the user opens the store
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Funnel name used to group steps together
funnelSessionId, -- Funnel session ID for this unique checkout session
1, -- Step number
"Opened Store" -- Step name
)
-- Log when the user views an item
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Funnel name used to group steps together
funnelSessionId, -- Funnel session ID for this unique checkout session
2, -- Step number
"Viewed Item" -- Step name
)
-- Log when the user views adds to cart
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Funnel name used to group steps together
funnelSessionId, -- Funnel session ID for this unique checkout session
3, -- Step number
"Added to Cart" -- Step name
)

LogOnboardingFunnelStepEvent

()

Parameters

player: Player
step: number
stepName: string
customFields: Dictionary
Default Value: "nil"

Returns

()

Code Samples

Tracking onboarding steps

local AnalyticsService = game:GetService("AnalyticsService")
-- Log the first step of the FTUE
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Step number
"Joined Game" -- Step name
)
-- Log the second step of the FTUE
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- Step number
"Choose Class" -- Step name
)

LogProgressionCompleteEvent

()

Parameters

player: Player
progressionPathName: string
level: number
levelName: string
customFields: Dictionary
Default Value: "nil"

Returns

()

LogProgressionEvent

()

Parameters

player: Player
progressionPathName: string
level: number
levelName: string
customFields: Dictionary
Default Value: "nil"

Returns

()

LogProgressionFailEvent

()

Parameters

player: Player
progressionPathName: string
level: number
levelName: string
customFields: Dictionary
Default Value: "nil"

Returns

()

LogProgressionStartEvent

()

Parameters

player: Player
progressionPathName: string
level: number
levelName: string
customFields: Dictionary
Default Value: "nil"

Returns

()

Events