Analytics: Track any custom event you want and use custom fields for segmentation

Hmm I’d check the errors page to see if you’re getting any errors there. And just fyi you can’t send events from studio.

2 Likes

Checked the errors page and couldn’t find anything.

Also it never stated once that events didn’t work in studio, thx for the info :sob:. I think it might be my issue.

Thank you so much! Just went into a live game server and tried it out and its now working!

1 Like

My Custom Event doesn’t seem to be tracking the Custom Fields passed through?

			AnalyticsService:LogCustomEvent(
				playerObject,
				"PlayerLoaded",
				1,
				{
					[Enum.AnalyticsCustomFieldKeys.CustomField01] = "Class: "..folder.CurrClass.Value,
					[Enum.AnalyticsCustomFieldKeys.CustomField02] = "Level: "..folder.Classes[folder.CurrClass.Value].Value,
					[Enum.AnalyticsCustomFieldKeys.CustomField03] = "Load Time: "..(time() - startLoading),
				}
			)

Could it be the 3rd variables is creating too many combinations, and if so, what can I do to reuse this event name?

1 Like

I’m ashamed to admit me and the team I work with have spent way too long looking through our code wondering why it isn’t logged. You have to include the .Name at the end of the keys.

local customFields = {
	[Enum.AnalyticsCustomFieldKeys.CustomField01.Name] = "value1",
	[Enum.AnalyticsCustomFieldKeys.CustomField02.Name] = "value2",
	[Enum.AnalyticsCustomFieldKeys.CustomField03.Name] = "value3",
}

Small, but deadly.

2 Likes

Custom fields are currently meant for discrete values. If you pass in something like a time to load, depending on how you are tracking it like if it’s decimals, or if the time span can be very long, you can user up all of your cardinality limits.

If you’re going to do that, it might be better to classify your times like SuperFast (0-2), Fast (2-5), …etc and then analyze the buckets.

This is very useful! Already implemented into my game…

I was going to ask for filtering and then I noticed that it’s already supported. This is everything I want… :sob:

I think the only ask at this point is a way to label data so we aren’t stuck having to remember what CustomField01 means.

Would it be better if I pass the time to load as the event value?

If I use up all the cardinality limits, what happens?

Yes, it’s better for the value to be the time to load in this case

1 Like

It depends on the field. For event name, out-of-cardinality events will be dropped. For custom fields, those will grouped into Other. Check out the specific field limits & behavior here: Event Types | Documentation - Roblox Creator Hub

1 Like

This is super cool, but I’m having trouble testing it out - I’m certain at least one event has gone through since the events page has changed to say Populating Events, but the event stream is completely empty almost an hour after that event was sent through. Is this normal? Is there a way I can speed up the event stream so I can iterate more rapidly?

The stream doesn’t refresh on it’s own so you might have to refresh manually. But apart from that if you’re seeing Populating events you should have events in the event stream. Feel free to send me a link to your experience if this isn’t resolved.

We’ve tried setting up events for one of our games and it’s been a few days but no events have shown up yet. We try to fire all of the events on player leave (but with the Player object returned from game.Players.PlayerRemoving), does the player still need to physically be in the game for an event to count even if there’s a valid player object being passed into LogCustomEvent()?

Edit: It didn’t appear before but now it’s showing the Player needs to be a child of game.Players. We really only changed this to avoid rate limits, would this be a possible feature to add in the future?

I’ve refreshed a few times and still no luck unfortunately. I’ve logged events in two places that haven’t shown up yet:

1 Like

Could we please get a way to delete old events in any of the 3 categories? (Custom, Economy, Funnel) After successfully getting custom to work in my experience, I got curious with the others and have already implemented the economy one. I did mess up the formatting and swapped the CurrrencyName and SKU fields on accident, which has lead to messed up data for when it turns my data into a chart later, and I can’t find a way to delete it at all.

2 Likes

Ah - this is an issue with our dashboard. I can verify that an event has went through and you should be seeing the charts soon. Will deploy a fix on Monday so you can see your event stream.

1 Like

Yup we’re currently investigating! For now they will automatically go away in 90 days

1 Like

Hello! Awesome feature finally coming out for all developers, but I have a request, could we also receive a “Aggregate by” with porcentages? Like how trigger types compare by themselves?

It would be incredibly useful when you are trying to see how a certain amount of players in your game triggered a certain type of event, such as by example weapon that was most used by the MVP, how many times it were used is useful for sure, but a more simple porcentage showing option would be great!

Regardless of it all, good job Roblox team for creating it.

1 Like

A question about custom fields - should I keep the meaning of each custom field the same across all events? e.g. if I have a CarPurchased event and a PlayerDied event, can I have CustomField01 on the first event be the car model and on the second event be the level the player died on? Or will this display awkwardly on the dashboard?