Start tracking usage stats, in-app purchases, custom metrics and more.

After completing SDK Basic Setup PAK will automatically begin tracking events for you. A list of these events can be found in our Scheduler Docs.

PAK also allows you to track further detail than the built in events. Before using any of the custom tracking methods below you should ensure that you have included the Paddle Analytics in your class.

#import <Paddle-iOS/PaddleAnalyticsKit.h>

Custom Events

As well as the default events tracked by PAK you can also track any number of custom events throughout your app. Simply use the track method. This methods accepts an identifier for the action along with a dictionary of properties associated with the action. For example:

NSDictionary *properties = @{@"documentType": @"pdf"};
[PaddleAnalyticsKit track:@"ExportDocument" properties:properties];

var eventProperties:NSDictionary = ["documentType": "pdf"]
PaddleAnalyticsKit.track("ExportDocument", properties: eventProperties as [NSObject : AnyObject])

Identifying Users

By default PAK will assign an identifier to events tracked from your app for the device it is used on. If you would like to assign your own identifier for your users then you can use the identify method. For example:

[PaddleAnalyticsKit identify:@“ab2”];


Tracking Payments

PAK will automatically track any purchases through Paddle Licensing or PSK. If you are using PAK in your iOS or MAS app then you can use the payment method to ensure your other purchases are also tracked. It will accept:

  • Payment Amount - NSNumber
  • Currency - must be a standard 3 character currency code
  • Product identifier
  • Store - PAKiOS, PAKMacAppStore, PAKOther

[PaddleAnalyticsKit payment:[NSNumber numberWithDouble:4.99] currency:@"GBP" product:@"myProductId" store:PAKiOS];

PaddleAnalyticsKit.payment(4.99, currency: "GBP", product: "myProductId", store: PAKiOS)

Disabling Tracking

If, you wish to disable tracking of events completely then you can easily do this like the example below:

[PaddleAnalyticsKit disableTracking];


Customer Opt-In

You may wish to ask your customers if they would like to opt-in to sending anonymous data. If you’d like to give them this option you can do this before setting your API, Vendor and Product ID. The example below will present the option to a user the first time your app is run:

[PaddleAnalyticsKit enableOptin];


Opt-In Status

You can check the opt-in status at any time. Simply use the isOptedIn method. For example:

if ([PaddleAnalyticsKit isOptedIn]) {
	//User has opted-in to tracking

} else {
	//User has opted-out of tracking


if PaddleAnalyticsKit.isOptedIn() {
    //User has opted-in to tracking
} else {
    //User has opted-out of tracking

Changing Opt-In Status

You can optionally ask your users at any point for their opt-in preference. Common uses for this are

  • Display the opt-in status in your app preferences and allow users to change this status.
  • Ask users once every x months if their opt-in preference is still the same.

Re-confirming a users preference is as simple as the following example:

[PaddleAnalyticsKit presentOptinDialog];


Questions about Paddle?

If you need any help regarding your Paddle integration, please get in touch with our Customer Success team using the form below.