This transformation enhances incoming events by including browser & OS details from the $useragent
property.
Note: This transformation is generally only needed when using clients that don't already set these properties, or when sending events directly from the server.
This transformation extracts the following properties from the provided $useragent
:
Property | Description | Example |
---|---|---|
$browser | Name of the browser for the user | Chrome, Firefox |
$browser_version | The version of the browser that was used | 70, 79 |
$os | The operating system of the user | Windows, Mac OS X |
$browser_type | The type of client that made the request | bot, browser |
Requirements
Using this requires either PostHog Cloud with the data pipelines add-on, or a self-hosted PostHog instance running a recent version of the Docker image.
Installation
- In PostHog, click the "Data pipeline" tab in the left sidebar.
- Search for 'User Agent Populator'.
- Configure the transformation by clicking on the settings icon.
- Click the toggle to enable the transformation.
Once the transformation has been configured and enabled, it will begin to transform all new events which come into PostHog.
Configuration
Before an transformation can be enabled in PostHog, it has to be configured.
Option | Description |
---|---|
Can override existing browser related properties of event? Type: string Required: False | If the ingested event already have $browser $browser_version properties in combination with $useragent the $browser, $browser_version properties will be re-populated with the value of $useragent |
Automatically read segment_userAgent property, automatically sent by Segment via analytics.js? Type: choice Required: False | Segment's analytics.js library automatically sends a useragent property that Posthog sees as segment_userAgent. Enabling this causes this plugin to parse that property |
Using the User Agent Populator
This transformation works by parsing the $useragent
property on events as they are ingested.
As a result, if an event is ingested without the $useragent
(or $user-agent
) property set, this transformation will do nothing.
This property can be set using any of our client or server libraries.
Note: Most of our client libraries will already automatically extract the
$browser
,$browser_version
, and$os
properties, so there is no need to set the$useragent
property when using these libraries.
One common use-case for this transformation is populating client information when sending events from the server-side. Typically, a UserAgent
header will be set when a client sends a request to your server, which your server can then forward to PostHog with the $useragent
property.
This gives you an idea of what types of clients are using your service and allows you to create insights that filter based on these properties.
What if my question isn't answered above?
We love answering questions. Ask us anything in our community forums or using the Q&A widget at the bottom of this page.
FAQ
Who maintains this?
This is maintained by the community. If you have issues with it not functioning as intended, please let us know!
What if I have feedback on this destination?
We love feature requests and feedback. Please tell us what you think.
What if my question isn't answered above?
We love answering questions. Ask us anything via our community forum.