You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Over the last few months I've started seeing errors when invoking the 'setScreenNameAndScreenClass' methods. I had been using strings with forward slashes in them for several years without issue, but after upgrading the FA module in the last year (I think when I jumped from android v3.x to v5.x), I started seeing errors like "FA: Name must start with a letter" or "FA: Name must consist of letters, digits or _". After looking at the Firebase docs, I did see that EVENT names must follow this format, but the strings themselves shouldn't be restricted by that. If I changed the 'screen name' string to something that met the alphanumeric and length requirements then I did NOT see the error. I noticed that Firebase had deprecated the 'setScreenName' method at some point - and suggested using the 'logEvent' SCREEN_VIEW event in its place, which is how the Ti FA module's 'setScreenNameAndScreenClass' method had been updated. However, after looking at the specific code, I saw a potential issue that might be causing the issue.
Using the Android version as an example (although I see the same thing on iOS as well) - specifically the TitaniumFirebaseAnalyticsModule.java file, on lines 120-2 we have this:
Bundle bundle = new Bundle(1); bundle.putString(screenName, screenClass); instance.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);
I think this makes it possibly view 'screenName' as an 'event type' and therefore needing the string restrictions (alphanumeric, <40 chars). But I think that should instead be something like this:
There may be something else going on, but I thought this might be at least a starting point. I'm not sure why else this occurs. This issue is causing all my custom screenviews to come through to Firebase as 'not set'. One work-around that I'm currently using is to manually set a 'screen_view' event using the Ti FA method 'logEvent'. That seems to work, but thought I would point this out.
The text was updated successfully, but these errors were encountered:
Looking more closely at my Firebase console, it looks like these events ARE coming through as 'screen_view' events despite the error I'm seeing. It looks like all the 'screen_view' events associated with a '(not set)' screen name, have a corresponding 'screen_class' of TiActivity. And it almost looks like there's one '(not set)' for every manually tracked 'screen_view'. So now I'm thinking that the '(not set)' entries are due to 'automatic screen tracking', which seems to be on by default. It's all a bit confusing. It still doesn't explain WHY I see an "FA" error every time I invoke the 'setScreenNameAndScreenClass' method with a non-compliant string (non-alphanumeric chars and/or > 40 chars). And why that error goes away when I change it to a compliant, alphanumeric string.
Over the last few months I've started seeing errors when invoking the 'setScreenNameAndScreenClass' methods. I had been using strings with forward slashes in them for several years without issue, but after upgrading the FA module in the last year (I think when I jumped from android v3.x to v5.x), I started seeing errors like "FA: Name must start with a letter" or "FA: Name must consist of letters, digits or _". After looking at the Firebase docs, I did see that EVENT names must follow this format, but the strings themselves shouldn't be restricted by that. If I changed the 'screen name' string to something that met the alphanumeric and length requirements then I did NOT see the error. I noticed that Firebase had deprecated the 'setScreenName' method at some point - and suggested using the 'logEvent' SCREEN_VIEW event in its place, which is how the Ti FA module's 'setScreenNameAndScreenClass' method had been updated. However, after looking at the specific code, I saw a potential issue that might be causing the issue.
Using the Android version as an example (although I see the same thing on iOS as well) - specifically the TitaniumFirebaseAnalyticsModule.java file, on lines 120-2 we have this:
Bundle bundle = new Bundle(1);
bundle.putString(screenName, screenClass);
instance.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);
I think this makes it possibly view 'screenName' as an 'event type' and therefore needing the string restrictions (alphanumeric, <40 chars). But I think that should instead be something like this:
Bundle params = new Bundle();
params.putString(Param.SCREEN_CLASS, screenClass);
params.putString(Param.SCREEN_NAME, screenName);
instance.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);
I'm not an Android dev, so I may be off on the specific syntax/usage, but I'm basing this off the SCREEN_VIEW (and SCREEN_NAME/SCREEN_CLASS) docs here: https://firebase.google.com/docs/reference/android/com/google/firebase/analytics/FirebaseAnalytics.Event#public-static-final-string-screen_view
There may be something else going on, but I thought this might be at least a starting point. I'm not sure why else this occurs. This issue is causing all my custom screenviews to come through to Firebase as 'not set'. One work-around that I'm currently using is to manually set a 'screen_view' event using the Ti FA method 'logEvent'. That seems to work, but thought I would point this out.
The text was updated successfully, but these errors were encountered: