NextAuth.js
Learn how to track a lead conversion event with NextAuth.js and the Dub SDK
When it comes to conversion tracking, a lead
event happens when a user performs an action that indicates interest in your product or service. This could be anything from:
- Signing up for an account
- Adding a product to cart
- Joining a mailing list
In this guide, we will be focusing on tracking new user sign-ups for a SaaS application that uses NextAuth.js for user authentication.
Prerequisites
Before you get started, make sure you follow the Dub Conversions quickstart guide to get Dub Conversions set up for your links:
- Install the @dub/analytics client-side SDK
- Install the Dub server-side SDK
- Enable conversion tracking for your links
Configure NextAuth.js Options
Then, set up your NextAuth.js configuration options to track a lead conversion event using the dub
TypeScript SDK.
Here’s how it works in a nutshell:
- Use NextAuth’s
signIn
event to detect when there’s a new sign up. - If the user is a new sign up, check if the
dub_id
cookie is present. - If the
dub_id
cookie is present, send a lead event to Dub usingdub.track.lead
- Delete the
dub_id
cookie.
Under the hood, Dub records the user as a customer and associates them with the click event that they came from. The user’s unique ID is now the source of truth for all future events – hence why we don’t need the dub_id
cookie anymore.
Here’s the full list of attributes you can pass when sending a lead event:
Property | Description | Required |
---|---|---|
clickId | The unique dub_id parameter that the lead conversion event is attributed to. | Yes |
eventName | The name of the event. Example: “Sign up”. | Yes |
customerId | The unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer. | Yes |
customerEmail | The email address of the customer. If not passed, a random email address will be generated. | No |
customerName | The name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”). | No |
customerAvatar | The avatar URL of the customer. If not passed, a random avatar URL will be generated. | No |
Create a NextAuth.js Route Handler
Finally, import the authOptions
variable you created earlier and use NextAuth
to create a handler for your NextAuth.js routes.
View your conversions
Once you’ve set this up, all your tracked lead events will show up on your Analytics dashboard. We provide 3 different views to help you understand your conversions:
- Time-series: A time-series view of the number of leads over time.
- Funnel chart: A funnel chart view visualizing the conversion & dropoff rates across the different steps in the conversion funnel (clicks → leads → sales).
- Real-time events stream: A real-time events stream of every single lead event that occurs across all your links in your workspace.
Example Apps
Was this page helpful?