Swiftpack.co -  mixpanel/mixpanel-swift as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
mixpanel/mixpanel-swift
Official iOS (Swift) Tracking Library for Mixpanel Analytics
.package(url: "https://github.com/mixpanel/mixpanel-swift.git", from: "v3.0.0.beta.3")

Mixpanel Swift Library

Average time to resolve an issue Percentage of issues still open CocoaPods Compatible Carthage compatible Swift Package Manager compatible Apache License Documentation

Table of Contents

Overview

Welcome to the official Mixpanel Swift Library

The Mixpanel Swift library for iOS is an open-source project, and we'd love to see your contributions! We'd also love for you to come and work with us! Check out Jobs for details.

If you are using Objective-C, we recommend using our Objective-C Library.

Check out our Advanced iOS Swift Guide for additional advanced configurations and use cases, like setting up your project with European Union data storage.

Quick Start Guide

Our master branch and our releases are on Swift 5. If you wish to use our Swift 4.2 implementation, please point to the v2.6.1 release. For Swift 4/4.1 implementation, please point to the v2.4.5 release. For Swift 3 implementation, please point to the v2.2.3 release.

1. Install Mixpanel

You will need your project token for initializing your library. You can get your project token from project settings.

Installation Option 1: Swift Package Manager

The easiest way to get Mixpanel into your iOS project is to use Swift Package Manager(requires Xcode 12+).

  1. In Xcode, select File > Swift Packages > Add Package Dependency.
  2. Follow the prompts using the Github URL for Mixpanel Swift library and a minimum semantic version of v2.8.0.

On Jan 1, 2022, we’ll remove the Messages & Experiments feature from Mixpanel. For now, you can choose to opt in to our beta version without Messages & Experiments feature support. You can use Swift Package Manager to point to the branch 3.0.0.beta

Installation Option 2: CocoaPods

  1. If this is your first time using CocoaPods, Install CocoaPods using gem install cocoapods. Otherwise, continue to Step 3.
  2. Run pod setup to create a local CocoaPods spec mirror.
  3. Create a Podfile in your Xcode project directory by running pod init in your terminal, edit the Podfile generated, and add the following line: pod 'Mixpanel-swift'.
  4. Run pod install in your Xcode project directory. CocoaPods should download and install the Mixpanel library, and create a new Xcode workspace. Open up this workspace in Xcode or typing open *.xcworkspace in your terminal.

Installation Option 3: Carthage

Mixpanel supports Carthage to package your dependencies as a framework. Include the following dependency in your Cartfile:

github "mixpanel/mixpanel-swift"

Check out the Carthage docs for more info.

2. Initialize Mixpanel

Import Mixpanel into AppDelegate.swift, and initialize Mixpanel within application:didFinishLaunchingWithOptions:

import Mixpanel

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    ...
    Mixpanel.initialize(token: "MIXPANEL_TOKEN")
    ...
}

See all configuration options

3. Send Data

Let's get started by sending event data. You can send an event from anywhere in your application. Better understand user behavior by storing details that are specific to the event (properties). After initializing the library, Mixpanel will automatically collect common mobile events. You can enable/disable automatic collection through your project settings. Also, Mixpanel automatically tracks some properties by default. learn more

Mixpanel.mainInstance().track(event: "Sign Up", properties: [
   "source": "Pat's affiliate site",
   "Opted out of email": true
])

In addition to event data, you can also send user profile data. We recommend this after completing the quickstart guide.

4. Check for Success

Open up Live View in Mixpanel to view incoming events.

Once data hits our API, it generally takes ~60 seconds for it to be processed, stored, and queryable in your project.

Complete Code Example

Here's a runnable code example that covers everything in this quickstart guide.

import Mixpanel

func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    ...
    Mixpanel.initialize(token: "MIXPANEL_TOKEN")
    Mixpanel.mainInstance().track(event: "Sign Up", properties: [
       "source": "Pat's affiliate site",
       "Opted out of email": true
    ])
    ...
}

FAQ

I want to stop tracking an event/event property in Mixpanel. Is that possible?

Yes, in Lexicon, you can intercept and drop incoming events or properties. Mixpanel won’t store any new data for the event or property you select to drop. See this article for more information.

I have a test user I would like to opt out of tracking. How do I do that?

Mixpanel’s client-side tracking library contains the optOutTracking() method, which will set the user’s local opt-out state to “true” and will prevent data from being sent from a user’s device. More detailed instructions can be found in the section, Opting users out of tracking.

Why aren't my events showing up?

To preserve battery life and customer bandwidth, the Mixpanel library doesn't send the events you record immediately. Instead, it sends batches to the Mixpanel servers every 60 seconds while your application is running, as well as when the application transitions to the background. You can call flush() manually if you want to force a flush at a particular moment.

Mixpanel.mainInstance().flush()

If your events are still not showing up after 60 seconds, check if you have opted out of tracking. You can also enable Mixpanel debugging and logging, it allows you to see the debug output from the Mixpanel library. To enable it, set loggingEnabled to true.

Mixpanel.mainInstance().loggingEnabled = true

Starting with iOS 14.5, do I need to request the user’s permission through the AppTrackingTransparency framework to use Mixpanel?

No, Mixpanel does not use IDFA so it does not require user permission through the AppTrackingTransparency(ATT) framework.

If I use Mixpanel, how do I answer app privacy questions for the App Store?

Please refer to our Apple App Developer Privacy Guidance

I want to know more!

No worries, here are some links that you will find useful:

Have any questions? Reach out to Mixpanel Support to speak to someone smart, quickly.

GitHub

link
Stars: 301
Last commit: 6 hours ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

Release v3.0.0.beta.3
5 weeks ago

v3.0.0.beta.3 is in parity with v2.10.2 but without the Messages & Experiments feature support.

On Jan 1, 2022, we’ll remove the Messages & Experiments feature from Mixpanel. For now, if you do not use Mixpanel's Messages & Experiments feature, you can choose to opt into this beta version.

You can use Swift Package Manager to install the beta version: In Xcode, select File > Swift Packages > Add Package Dependency. Follow the prompts using the URL for this repository and point to branch 3.0.0.beta.

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API