Skip to main content
Question

Meta Ads + RevenueCat + Conversion API: Which Setup Correctly Tracks Free Trial Activations?

  • November 21, 2025
  • 1 reply
  • 34 views

Forum|alt.badge.img+6

We are running Meta paid ads extensively.

Currently, we

  • Able to track number of install accurately.
  • NOT ABLE to track free trial activation accurately.

We would like to solve the above issue, by using RevenueCat + Meta Conversion API.

Can someone from RevenueCat, confirm which is the correct changes, so that we can track both install and free trial activation accurately?

Before using RevenueCat + Meta Conversion API.

    Info.plist
<key>FacebookAutoLogAppEventsEnabled</key>
<string>TRUE</string>

<!-- In-App Purchase Automatically Logged Events -->
<!-- https://developers.facebook.com/docs/app-events/getting-started-app-events-ios/ -->
<key>SKIncludeConsumableInAppPurchaseHistory</key>
<true/>

AppDelegate.swift
private func initFacebook(_ launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
// https://developers.facebook.com/docs/app-events/getting-started-app-events-ios
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
}

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

...
initFacebook(launchOptions)
}

After using RevenueCat + Meta Conversion API, should we use Version A or Version B?

Version A:

    Info.plist
        <key>FacebookAutoLogAppEventsEnabled</key>
        <string>FALSE</string>
        
        <!-- In-App Purchase Automatically Logged Events -->
        <!-- https://developers.facebook.com/docs/app-events/getting-started-app-events-ios/ -->
        <key>SKIncludeConsumableInAppPurchaseHistory</key>
        <false/>

    private func initFacebook(_ launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
        // disable automatic tracking
        FBSDKCoreKit.Settings.shared.isAutoLogAppEventsEnabled = false

        // optional: call activateApp
        FBSDKCoreKit.AppEvents.shared.activateApp()
        
        // https://developers.facebook.com/docs/app-events/getting-started-app-events-ios
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )
    }

Version B:

    Info.plist
        <key>FacebookAutoLogAppEventsEnabled</key>
        <string>FALSE</string>
        
        <!-- In-App Purchase Automatically Logged Events -->
        <!-- https://developers.facebook.com/docs/app-events/getting-started-app-events-ios/ -->
        <key>SKIncludeConsumableInAppPurchaseHistory</key>
        <false/>

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        ...
        initFacebook(launchOptions)
    }

    private func initFacebook(_ launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {        
        // https://developers.facebook.com/docs/app-events/getting-started-app-events-ios
        ApplicationDelegate.shared.application(
            application,
            didFinishLaunchingWithOptions: launchOptions
        )

        // disable automatic tracking
        FBSDKCoreKit.Settings.shared.isAutoLogAppEventsEnabled = false

        // optional: call activateApp
        FBSDKCoreKit.AppEvents.shared.activateApp()
    }

Thank you.

1 reply

jeffrey_bunn
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • December 1, 2025

Hi ​@yan-cheng-cheok-107847! I’d suggest using Version A, as it most closely follows our recommended setup. The key points here are to:

  • Set FacebookAutoLogAppEventsEnabled = FALSE and Settings.shared.isAutoLogAppEventsEnabled = false to stop Meta’s automatic IAP logging.

  • Keep AppEvents.shared.activateApp() so Meta still tracks installs/usage.

Then let our Meta integration + Conversions API handle all free trial / subscription events. Just be sure to send the required device attributes.