Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 15 additions & 19 deletions doc/mixpanel_setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,26 @@ For the backend Freshheads created a php bundle, [FHMixpanelBundle](https://gith
Add the MixpanelProvider to your app:

```tsx
import { MixpanelProvider } from '@freshheads/analytics-essentials';
import { MixpanelProvider } from "@freshheads/analytics-essentials";
import { useMemo } from "react";

const App = () => {
const trackingService = useMemo(
() =>
new WebTrackingService((event) => {
return sendTrackEvent(event);
}),
[]
);

return (
<MixpanelProvider
trackingService={
new WebTrackingService((event) => {
return sendTrackEvent(event);
})
}>
<YourApp />
<MixpanelProvider trackingService={trackingService}>
<YourApp />
</MixpanelProvider>
);
};
```
> Tip: memoize the WebTrackingService instance to prevent accidental page view triggers. If we'd instantiate it inline, we would trigger a page view whenever app rerenders (e.g. when the path, query params or hash changes)

`sendTrackEvent` is a function that sends the event to the backend. It should have the following signature:

Expand Down Expand Up @@ -89,11 +94,7 @@ const defaultMixpanelEventContext = {
const App = () => {
return (
<MixpanelProvider
trackingService={
new WebTrackingService((event) => {
return sendTrackEvent(event);
})
}
trackingService={trackingService}
defaultEventContext={defaultMixpanelEventContext}>
<YourApp />
</MixpanelProvider>
Expand Down Expand Up @@ -148,12 +149,7 @@ Then add this component to your app:

const App = () => {
return (
<MixpanelProvider
trackingService={
new WebTrackingService((event) => {
return sendTrackEvent(event);
})
}>
<MixpanelProvider trackingService={trackingService}>
<TrackPageView />
{children}
</MixpanelProvider>
Expand Down
Loading