User identification

Turn anonymous visitors into persistent and searchable profiles along with custom parameters.

Profiles track your users with persistent IDs (like email or userId) and provide several advantages:

  • Cross-platform tracking: Follow users across browsers and devices
  • Search visitors: Find specific users and their journeys in your analytics dashboard
  • Persistent tracking: Maintain user journey even if cookies are reset
  • Better attribution: Link anonymous traffic to known users

How to identify a user

Use the window.datafast() method to identify a visitor:

window?.datafast("identify", {
  user_id: "unique-user-id", // required
  name: "John Wayne", // optional - if present, it will replace the anonymous name in the visitor profile
  image: "https://example.com/avatar.jpg", // optional - profile image URL
  // ... any other custom parameters you want to track
});

Required parameters

  • user_id (string, required): A unique identifier for the user like email or userId

Special parameters (optional)

  • name (string): If present, it will replace the anonymous name in the visitor profile
  • image (string, 250 char. max.): A valid URL pointing to a profile image to display in Journeys and the Realtime Map. Example: https://lh3.googleusercontent.com/-WuQbhWk1Xso/AAAAAAAAAAI/AAAAAAAAAAA/ALKGfklNb9VSEpE-xxOXfgy6n9NGIdz-2g/photo.jpg?sz=46

Custom parameters validation rules

  • Property names: lowercase letters, numbers, underscores (_), and hyphens (-) only. Max 64 characters.
  • Property values: any string, max 255 characters.
  • Limits: maximum 10 custom parameters.

Ensure reliable tracking (recommended)

Add this script to your HTML <head> to guarantee identification is captured even when triggered before the main script loads:

<script id="datafast-queue">
  window.datafast = window.datafast || function() {
    window.datafast.q = window.datafast.q || [];
    window.datafast.q.push(arguments);
  };
</script>

Example usage

useEffect(() => {
  if (user && user.email) {
    window?.datafast("identify", {
      user_id: user.email,
      name: user.name,
      image: user.profileImage,
      role: user.role,
      plan: user.plan,
    });
  }
}, [user]);

Note: User identification is separate from custom goals. Use identify to link users to their accounts, and use custom goals to track specific user actions.

Special notes

  • Persistent tracking: You need to identify the visitor each time their cookie changes for persistent tracking. You can call window.datafast("identify") every time their session changes.

  • Revenue attribution: If revenue attribution is present, we automatically identify the customer using data from the payment provider.