Funnel Events not showing up in dashboard

Hey guys i just set up some funnel events for my FNAF Nightmare game however Im having trouble viewing the data. I have a function which I call to save recurring funnels, and I have confirmed that it fires, but I am not seeing any data in my dashboard:

This is my script which saves recurring funnels

local function recurring(plr, FunnelName, StepNumber)
		
	local userData = plrsData[plr.UserId]
	local funnelData = userData[FunnelName]
	local stepName = funnelData["Steps"][StepNumber]
	local currentStep = funnelData["Current"]
	local FunnelId

	if StepNumber ~= currentStep then

		-- set current to step
		funnelData["Current"] = StepNumber
		
		-- set to primary path
		userData["CurrentPrimaryPath"] = FunnelName

		-- generate an id if nessessary
		if StepNumber == 1 then
			funnelData["Id"] = HttpService:GenerateGUID()
		end
		-- save
		AnalyticsService:LogFunnelStepEvent(plr, FunnelName, funnelData["Id"], StepNumber, stepName)
	end
end

This function connects to my outside tables which outlines the different paths:

game.Players.PlayerAdded:Connect(function(plr)
	plrsData[plr.UserId] = {
		["CurrentPrimaryPath"] = nil,
		["Donation"] = {
			["Steps"] = {
				[1] = "Hovered On Donate",
				[2] = "Opened Donation Menu",
				[3] = "Hovered on Buy",
				[4] = "Purchased",
				[5] = "Leave Game",
			},
			["Current"] = 0,
			["Id"] = nil
		},
		["Non Automatic Gameplay"] = {
			["Steps"] = {
				[1] = "Hovered on Play",
				[2] = "Started Gameplay",
				[3] = "Reached Halfway Point",
				[4] = "Completed Night",
				[5] = "Leave Game",
			},

			["Current"] = 0,
			["Id"] = nil

		},
		["Automatic Gameplay"] = {
			["Steps"] = {
				[1] = "Started Loading",
				[2] = "Started Gameplay",
				[3] = "Reached Halfway Point",
				[4] = "Completed Night",
				[5] = "Leave Game",
			},
			["Current"] = 0,
			["Id"] = nil
		}}
end)

But when I look instead my dashboard I dont see any events:

Do you guys know what I might be doing wrong which prevents funnel events from showing up?

Hello!

If I remember correctly, funnel events don’t fire while testing in-studio so devs can obtain proper analytics, try playing the game then check the events on dashboard.

Remember, the chart for your funnels take a day to appear on dashboard, only the events that are fired appear instantly.

1 Like

When you say “events that are fired appear instantly” do you mean that it will appear in dashboard instantly but wont form charts or are you referring to the coding?

Sorry for the confusing wording,

I meant they appear in the following page called “View Events” instantly:

it takes around a day for roblox to prepare the chart though!

Remember, events must be fired in the game (not studio).

Hey I see only 2 events inside of my “view now” when as you can see I have 5. Does that mean I did something wrong in my coding or is that expeceted since it hasnt loaded fully yet

Hallo!

Note that your step can only be a value between 1-100, are you updating the “Current” so funnel step 0 is not fired?

Although I’m sure you’ve done most of the things properly, its good to always check out limitations in the documentation click me

Except that I recommend checking console for any errors when the funnels are fired.

I think the issue might be that I don’t fully understand how their funnel system works. My current understanding is that:

  1. When you create an ID, reusing that Id adds on to a funnel. When you make a new ID, it creates a seperate funnel.
  2. You can update a funnel and it will automatically add it.

Heres the full code i made to implement it, which I specifically designed to automate specific areas so that I can update or reuse the code easier in the future:

-------------------------
--// Services
-------------------------
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
local HttpService = game:GetService("HttpService")



-------------------------
--// Variables
-------------------------
local plrsData = {}
local folder = game.ReplicatedStorage.Analytics




-------------------------
--// Functions
-------------------------
local function recurring(plr, FunnelName, StepNumber)
	
	print("loading recurring for " .. FunnelName)
	
	local userData = plrsData[plr.UserId]
	local funnelData = userData[FunnelName]
	local stepName = funnelData["Steps"][StepNumber]
	local currentStep = funnelData["Current"]
	local FunnelId

	if StepNumber ~= currentStep then

		-- set current to step
		funnelData["Current"] = StepNumber
		
		-- generate an id if nessessary
		if StepNumber == 1 then
			funnelData["Id"] = HttpService:GenerateGUID()
		end

		-- save
		print("Logging Funnel Step:", FunnelName, funnelData["Id"], StepNumber, stepName)
		AnalyticsService:LogFunnelStepEvent(plr, FunnelName, funnelData["Id"], StepNumber, stepName)
	end
end



-------------------------
--// Events
-------------------------
game.Players.PlayerAdded:Connect(function(plr)
	plrsData[plr.UserId] = {
		
		["Donation"] = {
			["Steps"] = {
				[1] = "Hovered On Donate",
				[2] = "Opened Donation Menu",
				[3] = "Hovered on Buy",
				[4] = "Purchased",
			},
			["Current"] = 0,
			["Id"] = nil
		},

		["Non Automatic Gameplay"] = {
			["Steps"] = {
				[1] = "Hovered on Play",
				[2] = "Started Gameplay",
				[3] = "Reached Halfway Point",
				[4] = "Completed Night",
			},

			["Current"] = 0,
			["Id"] = nil

		},

		["Automatic Gameplay"] = {
			["Steps"] = {
				[1] = "Started Loading",
				[2] = "Started Gameplay",
				[3] = "Reached Halfway Point",
				[4] = "Completed Night",
			},
			["Current"] = 0,
			["Id"] = nil
		}}
	
end)

game.Players.PlayerRemoving:Connect(function(plr)
	local userId = plr.UserId
	plrsData[userId] = nil
end)

folder.Recurring.OnServerInvoke = (function(plr, FunnelName, StepNumber)
	recurring(plr, FunnelName, StepNumber)	
end)

A breakdown of the code is essentially:

  1. When a user joins, it creates a profile and the different paths that exist. The profile has information for:
  • What the ID is, which a new ID is generated everytime they are at step 1 so it creates a new funnel
  • What their current stage is on the path so that it doesn’t repeat the same multiple times

  1. When a user leaves, it cleans up the data

However I don’t think I did it right because when I observe my data I see:


I already removed the Leave Game funnel option because I realized I don’t need to do that. But for some reason for my Step 1, 2, and 4 its blank without following the step names I mentioned

When I test it in game, it prints like its okay:

I think roblox’s analytical service must be broken. Its clear I have implemented everything right but Roblox doesn’t seem to want to function properly. I am considering moving this issue to #bug-reports

I tried searching DevForums for more info on how FunnelSessionId works but I could not find anything useful.

The best we can do is understand the following:

Since this is used for recurring funnels, I’m assuming session Id basically means it starts a new funnel tracking for every new Session Id. As you can see in your screen-shot here, you are sorting the funnels according to UserId:

There are only 2 UserId which fired the events, hence the funnel exists only for both of these users:

Try clicking on By Session on top right of this ss:

1 Like

let me have the solution if it helped :slight_smile: