Trial Access (Mac)

Allow Paddle to manage a free trial of your app before asking users to purchase

A common way to let users try out your app before buying is offering a trial period.

Trial lengths for a Paddle SDK product can be set either in the product settings in the seller dashboard or in the product config in your SDK implementation. Note that remote settings will override a local config if both are set.

// Include a 7-day trial in the default config
PADProductConfiguration *defaultProductConfig = [[PADProductConfiguration alloc] init];
defaultProductConfig.productName = @"My Product With Trial";
defaultProductConfig.vendorName = @"My Company";
defaultProductConfig.trialLength = @7;
defaultProductConfig.trialType = PADProductTrialTimeLimited;

// Create the Product we want to work with
PADProduct *paddleProduct = [[PADProduct alloc] initWithProductID:@"12345"
                                                      productType:PADProductTypeSDKProduct
                                                    configuration:defaultProductConfig];

// Remote trial values will supersede local, i.e if it has been updated to 8
// then the trial will be 8 days, not the 7 mentioned above.
[paddleProduct refresh:^(NSDictionary * _Nullable productDelta, NSError * _Nullable error) {
    [paddle showProductAccessDialogWithProduct:paddleProduct];
}];

Resetting and Expiring Trials

Active app trials can be reset programatically by calling the resetTrial method of PADProduct, or expired by calling expireTrial.

By enabling debug mode in your build, these options are also added to the Paddle Debug menu in your app for testing purposes.

You may wish to reset or expire trials on a product version update.