Freshpaint React Native SDK Reference

track

The track call can be used to manually send data to your destinations. See the docs on manually tracking events in Freshpaint for more information.

Freshpaint.track("Purchase", {"price": 500});
Argument
Type
Required
Description

Event Name

String

Yes

The name of the event you want to send to Freshpaint.

Properties

Object

No

A JSON object of properties you want to send along with the event.

options

Object

No

Options object containing integrations for per-call destination filtering.

identify

The identify call can used to attach user properties the current user. Destinations will then use that data to create a single profile for that user, even if data for that user comes from multiple places. See the identify docs for more information.

// Associate all future events sent from
// the library with the distinct_id [email protected]
Freshpaint.identify("[email protected]", { 
  "email": "[email protected]", 
  "name": "Ada Lovelace"
});โ€Œ

The properties argument is optional. If you want to only attach a unique identifier to the user, you can call identify like so:

Freshpaint.identify("[email protected]");

Likewise, the identifier is also optional. If you only want to attach properties to the user without attaching an identifier, you can perform a call like the following:

Argument
Type
Required
Description

unique_id

String

No

A string that uniquely identifies a user (such as email address).

properties

Object

No

A JSON object of user properties to send to the destinations.

options

Object

No

Options object containing integrations for per-call destination filtering.

group

The group call will add the given user to a group and attach the provided properties to the group. The call

will add the current user to the "Google" group and attach the provided properties to the group.

Argument
Type
Required
Description

unique_id

String

No

The ID of the group the user is being added to.

properties

Object

No

Properties to attach to the group.

options

Object

No

Options object containing integrations for per-call destination filtering.

reset

The reset call clears any local Freshpaint data attached to this user. This does not clear any local data for any of your destinations.

addEventProperties

The addEventProperties call can be used to set data layer properties. Once a property is set through addEventProperties all events going forward will contain that property. The call

will include the property pricing plan with the value enterprise until either the value is overwritten or you delete the property with removeEventProperty. addEventProperties should be used to set any properties that can change.

Argument
Type
Required
Description

properties

Object

Yes

An object of properties and values to attach to all events going forward.

addInitialEventProperties

The addInitialEventProperties call works the same way as addEventProperties except if a property is already set, addInitialEventProperties will not override it. This is useful for when you care about the first value of some property. As an example, the call

will set the value of the property initial landing page to /article. Even after calling addInitialEventProperties with a different of initial landing page the value of initial landing page will still be /article. addInitialEventProperties should be used to set properties that you never want to change.

Argument
Type
Required
Description

properties

Object

Yes

An object of properties and values to attach to all events going forward.

removeEventProperty

The removeEventProperty call can be used to remove data layer properties. Once used, freshpaint will no longer send the given property. As an example, the call:

will delete the current search term property and Freshpaint will stop sending it going forward.

Argument
Type
Required
Description

property

String

Yes

The name of the property to remove.

setOptOut

The setOptOut call can be used to opt the current user out of tracking.

Argument
Type
Required
Description

property

Boolean

No

True or false to disable tracking for the current user.

init

Freshpaint's React Native SDK accepts some options in its init method. We'll go over these options in this section.

While there are technically other init options that may be available, options not documented below are unsupported and may not work as intended. Use them at your own risk, and please contact [email protected] if there is a specific option you would like added supported for.

Option
Type
Default
Description

sessionTimeout

number

1800000 ms (30 minutes)

The timeout for Freshpaint to start a new session, in seconds. If more than sessionTimeout seconds have passed since the last event was registered in an existing session, Freshpaint will start a new session and generate a new session_id.

optOut

boolean

false

If true then Freshpaint will not send or log events.

Per-Call Destination Filtering

The Freshpaint React Native SDK supports per-call destination filtering, allowing you to control which destinations receive specific events. This feature provides parity with the Web SDK's destination filtering capability.

Overview

By default, events are sent to all destinations enabled for your project. With per-call destination filtering, you can override this behavior on a per-event basis by passing an options parameter with an integrations object.

Usage

track()

identify()

group()

API Reference

Options Object

Property
Type
Description

integrations

Object

An object where keys are destination names or UUIDs, and values are booleans

Integrations Object

Key
Type
Description

All

boolean

When set to false, disables all destinations unless explicitly enabled

[DestinationName]

boolean

Enable (true) or disable (false) a specific destination by name

[DestinationUUID]

boolean

Enable (true) or disable (false) a specific destination by its UUID

Supported Destination Names

Use the exact destination name as shown in your Freshpaint dashboard. Common examples:

  • Mixpanel

  • Amplitude

  • Iterable

  • Facebook Conversions API

  • Google Analytics 4

If you have multiple configured instances of a given destination type, you can choose a specific one with a suffix, such as: Facebook Conversions API::0123456789012345. The configuration page for the instance shows the full value to use. When no suffix is specified, all configured instances of the destination type are selected for inclusion / exclusion.

Common Patterns

Whitelist Pattern (Send only to specific destinations)

Blacklist Pattern (Send to all except specific destinations)

Notes

  • If the options parameter is not provided or options.integrations is undefined, events are sent to all enabled destinations (default behavior)

  • The UI setting "Override hardcoded destinations" in the Freshpaint dashboard takes precedence over the integrations object set in code

  • This feature is available in @freshpaint/freshpaint-react-native version 0.3.2 and later

Comparison with Web SDK

The React Native SDK uses a third options parameter for better ergonomics, while the Web SDK nests $options inside the properties object:

React Native SDK:

Web SDK:

Both approaches result in the same backend behavior.

Last updated

Was this helpful?