Common Services
Partytown is built with the goal that any third-party script can be ran from within it. At the lowest level, any script can add the type="text/partytown" attribute to have it executed from a web worker.
Below is a list of plugins / libraries that are tested & known to be working with Partytown with their commonly used forward configs and proxied domains.
| Service | Forward Config | Proxy Domain | Additional Config |
|---|---|---|---|
| Facebook Pixel | "fbq" | "connect.facebook.net" | |
| FullStory | "FS.identify", "FS.event" | strictProxyHas: true (if loaded via GTM) | |
| Google Tag Manager | "dataLayer.push" | ||
| Hubspot Tracking | "_hsq.push" | ||
| Intercom | "Intercom" | ||
| Klaviyo | "_learnq.push" | "static.klaviyo.com", "static-tracking.klaviyo.com" | |
| TikTok Pixel | "ttq.track", "ttq.page", "ttq.load" | ||
| Mixpanel | "mixpanel.track" |
If you would like to add to this list,
- Refer to the "for Plugin Authors / Developers" section to see how you can validate whether a library / plugin works with Partytown.
- Send us a PR so that we can have a scenario checked in that validates it.
- Please edit this doc to add your plugin / library and its configuration so that others can start using it!
FullStory with Google Tag Manager
When loading FullStory via Google Tag Manager (GTM), you need to enable the strictProxyHas configuration option. This is because FullStory checks for namespace conflicts using the in operator (e.g., if (!("FS" in window))), and by default, Partytown's window proxy always returns true for the in operator for backwards compatibility.
<script>
partytown = {
forward: ['FS.identify', 'FS.event'],
strictProxyHas: true,
};
</script>Without strictProxyHas: true, FullStory will detect a false "namespace conflict" and fail to initialize when loaded via GTM's Custom HTML tag. This configuration ensures the in operator accurately checks property existence on the window object.