This repository was archived by the owner on Apr 28, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 728
analytics.js traits behave differently to Analytics for AndroidΒ #656
Copy link
Copy link
Open
Description
I'm designing our segment.io web integration and in the process I've found that analytics.js behaves differently to Analytics for Android with regards to traits
.
The Android Identify documentation says:
Additionally, traits are sent in the context.traits field with every message.
For example:
window.analytics.indentify({
first_name: 'Barry',
last_name: 'From Eastenders'
});
// Sends
{
// ...
"type": "identify",
"context": {
// ...
},
"traits": {
"first_name": "Barry",
"last_name": "From Eastenders"
}
}
Then a subsequent call to track or page:
window.analytics.track('Button Clicked', { button_name: 'Support' });
// Sends
{
// ...
"type": "track",
"context": {
// ...
// Analytics for Android includes the traits from our previous identify call here, but analytics.js does not
// "traits": {
// "first_name": "Barry",
// "last_name": "From Eastenders"
// }
},
"properties": {
"button_name": "Support"
}
}
I'm not sure what iOS Analytics does or if the SDKs differ by design but I think it's a feature we'd like.
I have implemented it via a middleware, but before I went ahead with this it would be good to get some feed back re: why it's not done by default / whether it's a good or bad practice?
window.analytics.addSourceMiddleware(({ payload, next }) => {
const traits = window.analytics.user().traits();
payload.obj.context.traits = {
...traits,
...payload.obj.context.traits
};
next(payload);
});
pepf
Metadata
Metadata
Assignees
Labels
No labels