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
        • Podscribe (Early Access)
        • 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
  • Initialization and Configuration
  • Importing the SDK
  • Initializing the SDK
  • iOS SDK API
  • track
  • identify
  • screen
  • group
  • alias
  • reset

Was this helpful?

  1. Reference
  2. Developer Docs

Freshpaint iOS SDK Reference

PreviousFreshpaint React Native SDK ReferenceNextFreshpaint Android SDK Reference

Last updated 8 months ago

Was this helpful?

Initialization and Configuration

Importing the SDK

import FreshpaintSDK
#import <FreshpaintSDK/FPAnalytics.h>

Initializing the SDK

let configuration = FreshpaintConfiguration("<your environment id>")
configuration.trackApplicationLifecycleEvents = true;
configuration.recordScreenViews = true;
Freshpaint.setup(with: configuration)
    FPAnalyticsConfiguration *configuration = [FPAnalyticsConfiguration configurationWithWriteKey:@"<your environment id>"];
    configuration.trackApplicationLifecycleEvents = YES;
    configuration.recordScreenViews = YES;
    [FPAnalytics setupWithConfiguration:configuration];

You can get your environment id from the .

The FPAnalyticsConfiguration class provides the following configuration options:

Name

Swift/Objective-C Type

Description

Default

flushAt

UInt /NSUInteger

How many events to queue before flushing the queue.

20

flushInterval

TimeInterval/NSTimeInterval

The maximum amount of time to wait before flushing queued events.

10 seconds

maxQueueSize

UInt/NSUInteger

The maximum number of events to queue before starting to drop the oldest ones.

1000

recordScreenViews

Bool/BOOL

Whether or not screen view changes will automatically be recorded.

NO

trackApplicationLifecycleEvents

Bool/BOOL

Whether or not the Application Installed, Application Updated, and Application Opened events should be automtically tracked.

NO

iOS SDK API

track

The track call can be used to manually send data to your destinations.

Freshpaint.shared().track(
    "Purchase", 
    properties: ["price": 500]
)
[[FPAnalytics sharedAnalytics]
              track:@"Purchase" 
              properties:@{ @"price": @500 }];

Argument

Swift/Objective-C Type

Required

Description

event

String/NSString *

Yes

The name of the event to send.

properties

[String : Any]/NSDictionary *

No

Additional properties to attach to the event.

identify

The identify call attaches an identity or user properties to the user.

Freshpaint.shared().identify(
    "ada.lovelace@example.com", 
    traits: [
      "email": "ada.lovelace@example.com", 
      "name": "Ada Lovelace"
    ]
);
[[FPAnalytics sharedAnalytics] 
              identify:@"ada.lovelace@example.com"
              traits:@{ @"email": @"ada.lovelace@example.com",
                        @"name": @"Ada Lovelace" }]

Argument

Swift/Objective-C Type

Required

Description

userId

String/NSString *

No

The id to attach to the user.

traits

[String : Any]/NSDictionary *

No

Additional user properties to attach to the user.

screen

The screen call triggers a screen event. This is the mobile equivalent of a pageview event. Some destinations will treat this event specially.

Freshpaint.shared().screen(
    "Home Screen", 
    properties: ["A/B Test Variant": "A"]
);
[[FPAnalytics sharedAnalytics] 
              screen:@"Home Screen"
              properties:@{ @"A/B Test Variant": @"A" }]

Argument

Swift/Objective-C Type

Required

Description

name

String/NSString*

Yes

The name of the screen.

properties

[String : Any]/NSDictionary *

No

Additional properties to attach to the event.

group

Freshpaint.shared().group(
    "Google", 
    traits: [
      "plan": "enterprise", 
      "sign-up-date": "04/04/2019"
    ]
);
[[FPAnalytics sharedAnalytics]
              group:@"Google"
              traits:@{ @"plan": @"enterprise",
                        @"sign-up-date": "04/04/2019" }]

Argument

Swift/Objective-C Type

Required

Description

groupId

String/NSString *

Yes

The id of the group to add the user to.

traits

[String : Any]/NSDictinoary *

No

Additional properties to attach to the group.

alias

The alias call can be used to specify one user id as an alias for another user id. Calling this will alias the current user's identity to the new provided identity. This is needed to implement identify for some destinations, specifically Mixpanel and Kissmetrics.

Freshpaint.shared().alias("ada.lovelace@example.com")
[[FPAnalytics sharedAnalytics] alias:@"ada.lovelace@example.com"];

Argument

Swift/Objective-C Type

Required

Description

newId

String/NSString *

Yes

The id you want to alias the current user's identity to.

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. For example this may be useful if a user logs out and logs in to a different account.

Freshpaint.shared().reset()
[[FPAnalytics sharedAnalytics] reset]

The group call associates the user with a user group. Some destinations let you work with groups of users. For example, and then perform analytics on the individual groups. Most often, a group of users is all users that work for a single organization.

Freshpaint sources page
Amplitude lets you group users together