I have Expo sending events to Segment using both Identify and Screen. These events show up in the Segment debugger, but don’t go through to Google Analytics.
Segments documentation suggests using a web property for hybrid apps (which… I believe Expo is?) so I have a web property set up in Google Analytics.
Further, I’ve set the property id for the Mobile, Web and Server Tracking IDs in segment.
However, neither Identify nor Screen events (the only events we have instrumented) stream through to Google Analytics.
The questions that may be answerable by yall are:
Should I be doing a web property or a mobile property? (Mobile properties want me to set up a firebase account, which seems… unnecessary?)
Are “screen” events not forwarded (in your experience?) and should I rely on “track” events instead?
Is there some other “gotcha” that is common that I may have overlooked?
Segments documentation suggests using a web property for hybrid apps (which… I believe Expo is?)
Expo isn’t a hybrid app in the way they’re using the term. We don’t use a webview so you probably want to use the mobile property.
Mobile properties want me to set up a firebase account, which seems… unnecessary?
Agree that seems unnecessary. This might be a limitation in Google Analytics. You should probably be using a mobile property instead of a web property. Does Segment support forwarding events from a mobile app to a mobile property in Google Analytics? It seems like Expo will support that if it’s possible on the Google/Segment side.
So, it winds out that using a Web Property is A-OK, the problem is that Google Analytics rejects events that don’t have context.app.name set; and the native Segment library infers this from the CFBundleDisplayName attribute, which is only set when you are doing standalone builds. I believe it may only be set if you manually set the app.ios.infoPlist.CFBundleDisplayName property in app.json like so:
There does still appear to be weirdness about the screen api not registering page-views, but I wound up getting around that by leveraging track and treating my page-views as events instead of screen.