Freshpaint
HomeLogin
  • Documentation
    • What is Freshpaint?
    • ⚕️HIPAA Mode
    • 🏗️Building Out Your Account
    • 🌐Overview of Features
    • Guides
      • 📡Add Autotrack to your website to collect data from your users
        • Installing the Freshpaint Javascript SDK
        • Installing the Freshpaint SDK with a Content Security Policy (CSP)
        • Installing the Freshpaint Javascript SDK with Server-Side Rendering (SSR) + React
        • Autocapture + React
        • Configuring a Destination
        • Labeling User Actions
        • How do I install Freshpaint with Typescript?
      • 🔁Send historical data to any destination with Time Machine
      • Next.js Quickstart Guide
      • Android Quickstart Guide
        • Installing the Freshpaint Android SDK
        • Configuring a Destination
        • Instrumenting Your App
      • iOS Quickstart Guide
        • Installing the Freshpaint iOS SDK
        • Configuring a Destination
        • Instrumenting Your App
      • React Native Quickstart Guide
        • Installing the Freshpaint React Native SDK
        • Configuring a Destination
        • Labeling User Actions
        • Configuring Property Capture
    • Setting up Properties
    • Setting up Your Destinations
      • Enabling and Disabling a Destination
      • Deleting a Destination
    • Setting up Your Events
    • User Identification
      • Designated Identify Properties
    • Maps
    • Analytics (Beta)
      • Web Analytics Dashboard
      • Campaigns
      • Service Lines
      • Data Glossary
    • Translations
    • Web Tracker Monitoring
      • Tracker Resolution Types
      • Historical Scans
  • Integrations
    • Destinations
      • Demand Side Platforms (DSPs)
        • Basis
          • Basis Quick Start Guide
          • Basis Reference
        • Google Campaign Manager 360
        • StackAdapt
          • StackAdapt Quick Start Guide
          • StackAdapt Reference
        • theTradeDesk
          • theTradeDesk Quick Start Guide
          • theTradeDesk Reference
          • theTradeDesk with CM360 Configuration Guide
        • Viant
          • Viant Quick Start Guide
          • Viant Reference
      • Direct Response Ads
        • Facebook Conversions API
          • Facebook Conversions API Quick Start Guide
          • Facebook Conversions API Reference
        • Google Ads Conversion API
          • Google Ads Conversion API Quick Start Guide
          • Google Ads Conversions API Reference
        • Google Ads
          • Google Ads Quick Start Guide
          • Google Ads Reference
        • LinkedIn Ads
          • LinkedIn Ads Quick Start Guide
          • LinkedIn Ads Reference
        • Microsoft Ads (formerly Bing Ads)
          • Microsoft Ads Quick Start Guide
          • Microsoft Ads Reference
          • Microsoft Ads Multi-Config Reference
        • Pinterest Ads (Beta)
          • Pinterest Ads Quick Start Guide
          • Pinterest Ads Reference
        • Pinterest Tag
        • Reddit Ads
          • Reddit Ads Quick Start Guide
          • Reddit Ads Reference
        • TikTok Ads
        • Twitter Ads
      • Data Activation
        • ActiveCampaign
          • ActiveCampaign Quick Start Guide
          • ActiveCampaign Reference
        • Amplitude
          • Amplitude Quick Start Guide
          • Amplitude Reference
        • Braze (formerly Appboy)
          • Braze Quick Start Guide
          • Braze Reference
        • Customer.io
          • Customer.io Quick Start Guide
          • Customer.io Reference
        • Freshsales
        • Google Analytics 4 Proxy
          • Google Analytics 4 Proxy Quick Start Guide
          • Google Analytics 4 Proxy Reference
          • Google Analytics 4 Proxy Advanced Tracking Configurations
        • Google Analytics 4 Server-Side
          • Google Analytics 4 Server-Side Quick Start Guide
          • Google Analytics 4 Server-Side Reference
        • Heap
        • Hotjar
        • HubSpot Cloud
        • HubSpot Web
        • impact.com
          • Impact.com Quick Start Guide
          • Impact.com Reference
        • Intercom
          • Intercom Quick Start Guide
          • Intercom Reference
        • Iterable
          • Iterable Quick Start Guide
          • Iterable Reference
        • June
        • Klaviyo
        • Mixpanel
          • Mixpanel Quick Start Guide
          • Mixpanel Reference
        • OneSignal
          • OneSignal Quick Start Guide
          • OneSignal Reference
        • Sendinblue
        • Sentry
        • Vero Cloud
        • Webengage
        • Webhooks
        • Woopra
        • Zendesk
      • Data Warehouses
        • Azure Warehouse Setup
        • BigQuery Warehouse Setup
        • Databricks Warehouse Setup
        • Postgres Warehouse Setup
        • Redshift Warehouse Setup
        • S3 Warehouse Setup
        • Snowflake Warehouse Setup
      • Consent Management
        • Osano
        • OneTrust
        • Custom Consent Manager
    • Sources
      • Web
        • Autotrack
        • Precision Tracking
      • CallRail
      • Invoca
      • Customer.io
      • Intercom
      • Mailchimp
      • React Native
      • SendGrid
      • Sendinblue
      • Server-Side
      • iOS
    • 🔷Google Tag Manager integration
      • Google Tag Manager migration
      • Quick Start Guide
    • 📺Freshpaint Video Platform
    • 🖼️Impression Pixel
  • Admin Panel
    • Event Library
      • Event Library Bulk Actions
      • Event Definition Filters
      • Event Tester
      • 🔁Time Machine
      • Visual Tagger
      • Advanced Options
        • Tag Manager
        • Disabling Target Text Capture
        • Cross Domain Tracking
    • Projects & Environments
    • Teams
      • Role-Based Access Control (RBAC)
    • Transformations
      • Standard Events
      • Modify Data
      • Modify User Data
      • SQL Transformations
    • 📈Destination Monitoring
    • 🔎Investigate: Testing and Debugging
      • Live View
      • Event Verification
  • Reference
    • Developer Docs
      • Freshpaint Web SDK Reference
      • Freshpaint Web SDK Options
      • Freshpaint React Native SDK Reference
      • Freshpaint iOS SDK Reference
      • Freshpaint Android SDK Reference
      • HTTP API
    • Frequently Asked Questions
      • How do I circumvent ad blockers?
      • Can Freshpaint track users across domains?
      • Can I install Freshpaint on a Chrome extension?
      • What properties are captured with my events?
      • How Do I Switchover From Segment?
      • How Do I Switch From Native Google Analytics to the Freshpaint Google Analytics Destination?
      • Where do I find my Environment ID?
      • Is Freshpaint GDPR & CCPA Compliant?
      • Can I use transformations to anonymize data for client-side destinations?
      • How do I QA or debug my data?
      • Why Do My Numbers Differ Across Different Tools?
      • Billing: How Does Freshpaint Determine MTUs?
      • Can I Use Freshpaint on Multiple Sites?
      • How Can I Export Data From Freshpaint?
      • How Does Freshpaint Identify Users?
      • How Many Events Should I Create?
      • What Should I Name My Events?
      • How do I track scroll depth?
      • What Data Does Freshpaint Collect?
        • Data Collected on Web
        • Data Collected on React Native
      • Does Freshpaint's Autotrack slow my site down?
      • Running Freshpaint with a Proxy
      • Should my Environment ID be treated as a sensitive key?
      • How Does Freshpaint Determine Session Count?
      • What is the difference between client-side and server-side connection mode?
      • What is a Proxy Integration?
      • Where can I view Freshpaint’s Status?
      • Does Freshpaint provide HIPAA audit logs?
      • Freshpaint Cookie Too Large
      • How does Freshpaint compare to server-side Google Tag Manager?
      • If a user re-installs my app, will Freshpaint generate a new device ID?
      • Why doesn't Freshpaint need a BAA before sending data to Google Ads and Facebook Ads?
      • What Implementation Services Does Freshpaint Offer?
      • Single Sign On (SSO) Setup
Powered by GitBook
On this page
  • On Initial Page Load:
  • On Page Change:
  • On Identify
  • On Track
  • Security

Was this helpful?

  1. Admin Panel
  2. Event Library
  3. Advanced Options

Tag Manager

Inject code directly on your website without requiring engineering support

PreviousAdvanced OptionsNextDisabling Target Text Capture

Last updated 10 days ago

Was this helpful?

By using our Tag Manager feature, you can inject code into your website. To add or edit code snippets, you should go to the , and click the settings button for the project you want to inject code onto.

To use this feature, you must add the unsafe-eval expression to your

On Initial Page Load:

Important: When using event listeners in custom code, be aware that Freshpaint loads asynchronously. One-time events like window.load or DOMContentLoaded may have already fired before your code executes.

On Page Change:

On Identify

The values of the userID and userProps variables can be null if no userID or no user properties are passed into freshpaint.identify().

Code injected by On Identify is most often used to build custom javascript integrations by passing identity information from Freshpaint to a javascript SDK.

On Track

eventName will be the name of the event as a string.

eventProperties will be an object with event properties as key, value pairs.

eventOptions will only be present in manual/precision track calls, and it will be the third parameter passed in, which is usually used to control which destinations an event is sent to.

builtinProperties will contain the properties that Freshpaint automatically captures for each event. It is populated for autotrack events.

Sample value of builtinProperties for an autotrack event
{
  time: 1660750813.235,
  $device_id: "182a231fdd1c09-0b27ca77a82ebd-1b525635-4da900-182a231fdd2da7",
  $user_id: "support@freshpaint.io",
  $os: "Mac OS X",
  $browser: "Chrome",
  $browser_version: 104,
  $current_url: "https://yourwebsite.com/pages/target-page.html?param=value",
  $title: "Your page title",
  $host: "yourwebsite.com",
  $initial_referrer: "http://google.com?q=query",
  $initial_referring_domain: "google.com",
  $pathname: "/pages/target-page.html",
  $referrer: "http://google.com?q=query",
  $referring_domain: "google.com",
  $screen_height: 1080, // screen height in pixels
  $screen_width: 1920, // screen width in pixels
 
  initial_utm_medium: "email",
  initial_utm_campaign: "ad",

  utm_source: "newsletter",
  utm_medium: "email",
  utm_campaign: "insta-ad1",
  utm_content: "toplink",
  utm_term: "jorndan-sneakers",
 
  $pageview_id: "182a239735d1fb-08f5527f006d0b-1b525635-4da900-182a239735e1cc5",
  $session_id: "182a231fdd3597-0341e9ffa768f-1b525635-4da900-182a231fdd41b94",

  mp_lib: "web",
  $lib_version: "1.3.0",
  $insert_id: "iitj42ivuwfozhls",

  $event_type: "click",
  $elements: [ // hierarchy of the element clicked
    { // element that was clicked
      attr__class: "registration-btn-cls",  // class name of element
      tag_name: "button", // tag name of element
      attr__id: "reg-button", // id of element
      nth_child: 2, // element was 2nd child of the parent
      nth_of_type: 1 // element is the 1st button in parent
    },
    { // element's parent
      attr__class: "registration-div",
      tag_name: "div",
      attr__id: "reg-div",
      nth_child: 6,
      nth_of_type: 2
    },
    { // parent of parent
      attr__class: "",
      tag_name: "body",
      attr__id: "",
      nth_child: 2,
      nth_of_type: 1
    }
  ],
  $el_text: "Register with us",
  $el_nested_text: "Register with us",
  $event_name: "$web_event",
}

Code injected by On Track is most often used to build custom javascript integrations by passing identity information from Freshpaint to a javascript SDK.

On Track can also be used to compute new properties using javascript and send them with the event.

The following example shows how On Track in tag manager can be used to compute new event properties using custom javascript code.

Security

If you want to opt out of this feature, and disable Freshpaint admins from using it, you can set the option tag_manager to false in your Freshpaint init() call.

freshpaint.init("YOUR-ENV-ID", {
    ...options...
    "tag_manager": false,
});

Code injected here will be triggered when your website is first loaded. This is similar to a DOMContentLoaded event, except we call it a little later, once Freshpaint is loaded. A common use case for this is attaching or with dynamic properties that are only available after page load.

Code injected here will be triggered each time a page is loaded. This includes the initial page load event, but also any subsequent page changes within a single page app. This is often used for attaching within single page apps.

Code injected here will be triggered each time is called. You will have access to two variables, userID and userProps. These variables will take on the values of the unique_id and properties arguments of freshpaint.identify().

Code injected here will be triggered each time is called. You will have access to - eventName, eventProperties, builtinProperties and eventOptions. The variables eventName, eventProperties and eventOptions will take on values as they were passed to freshpaint.track.

user properties
event properties
page view properties
freshpaint.identify()
freshpaint.track()
Projects Page
Content Security Policy.
Write transformation code in On Track
Computed property is available in the event