After you integrate Facebook SDK, certain App Events are automatically logged and collected for Events Manager, unless you disable Automatic App Event Logging. You may change this in your app code or through a toggle under App Events in the App Dashboard or Events Manager. Please note in the event of conflicting values between the AutoLogAppEventsEnabled flag and the toggle, we will honor the value in the ‘Automatic event logging for the Facebook SDK’ toggle. For details about what information is collected and how to disable Automatic App Event Logging, see Automatic App Event Logging.


An app can create up to 1,000 unique event names. If you exceed this limit you may see an 100 Invalid parameter error when logging.

If you need to remove obsolete events - you can deactivate events by following the instructions in our help center.

One typical reason we see developers go over event limits is because they don't take advantage of parameters and instead log individual events when they should be utilizing parameters. For instance, instead of logging a separate event for each time someone completes a level (e.g. Level Achieved 1, Level Achieved 2, etc), a developer should log a single event Achieved Level with a parameter of level for the level number.

An event can have up to 25 parameters. This doesn't just mean for each call, but for all invocations that use that event name.

If you need to remove obsolete parameters - you can deactivate parameters by following the instructions in our help center.

Event and parameter names must must consist of 2 to 40 alphanumeric characters.

The length of each parameter value can be no more than 100 characters.


App Events provides SDKs for the following channels: iOS, Android, Games on Facebook, and Unity. Additionally, App Events supports passing events server to server through the Graph API.

App Events does not require Facebook Login, or any other Channel features, to be implemented.

You can define Custom Events that you would like to capture and you will be able to see that event in your Facebook Analytics dashboard. We support logging up to 1,000 custom event names and no limit on event volume. However, in Ads Reporting, we will only show the Standard App Events. Any Custom App Events that you have created will be logged as “Other Mobile App Actions“.

For Unity games, you can use the Unity SDK to log App Events. For other channels utilizing web-view within a native app, one option would be to utilize the App Events API to pass events from your server to the Facebook servers.

Typically, developers find it easier to use the Facebook SDK to integrate App Events. The Facebook SDK helps reduce the amount of coding that is required and provides helpful metadata about your app such as the app version and app name. Using the SDK automatically provides, with minimal development effort, metrics such as time spent, number of sessions, and interruptions. The SDK also is able to collect the Android Advertiser ID or IDFA (if you are using App Events in connection with ad attribution) and handles Limit Ad Tracking for you. However, the limitation of the SDK is that you need to ship a new version of your app if you decide to add additional events. For most developers, the SDK option works best.

The API solution may be a better fit for developers who do not want to have to ship an updated version of their app to integrate App Events or add additional App Events. For developers who have hybrid web apps, integrating with the API may be easier as well. However, the API solution requires you to handle Limit Ad Tracking as well as IDFA and Android Advertiser ID collection on your own. Also, it does not provide the app usage metrics that are collected by the SDK automatically. For developers who wish to track additional metrics such as app version, app name, time spent, number of sessions, and interruptions, they will need to determine those metrics on their own and pass those metrics back as custom parameters through the API.

If you are currently using an MMP to track installs or other actions in your app, you can request that your MMP passes those events server to server to Facebook.

You can use both an MMP SDK and Facebook SDK in your app but you need to make sure that you don't pass the same event twice for both because this could result in double counting.

The App Ads Helper allows you to test the app events in your app to ensure that your app is sending events to Facebook.

a. Open the App Ads Helper.

b. In Select an App, choose your app and choose Submit.

c. Go to the bottom and choose Test App Events.

d. Start your app and send an event. The event appears on the web page.

Facebook handles your data in accordance with our Data Policy. This information can be used to improve our ads targeting and delivery capabilities, as well as improve other experiences on Facebook, including Feed and Search content ranking capabilities.

  • Forget to pass currency or value for a purchase or purchase related event
  • Place the decimal in the wrong place
  • Use a comma instead of a decimal for a numeric value
  • Hardcoding conversion values by guessing the “average” order value as opposed to passing the actual value

Ads Questions

If you are logging a custom event instead of a standard event, it will show up in Ads Reporting under “Other Mobile App Actions“ and will not be broken down.

Yes, you can build Custom Audiences using App Events. You can find the instructions for how to do so here.

Yes, we deliver your ads to people who are most likely to take specific action at least once at the lowest cost. Create a mobile app install ad set that optimizes for a specific app event via the API. This is similar to a regular mobile app install or mobile app engagement ad set except:

  • optimization_goal: Set to OFFSITE_CONVERSIONS
  • billing_event: Set to IMPRESSIONS
  • promoted_object: Set custom_event_type to the app event you want to optimize.
  • For mobile app engagement ads, optimize for standard App Events, except App Launch. These options available in Ads Manager and the API. See Ads Help Center, Optimizing for App Events and Marketing API, Ad Set.

    Automatic In-App Purchase Logging

    First, ensure you have Facebook Core SDK for Android v4.36 or higher installed within your app. Second, go to Settings > Basic in your app's dashboard. In the Android settings, toggle the Log In-App Purchase Events Automatically switch to Yes.

    For versions 4.27 to 4.35, ensure you call callbackManager.onActivityResult() during app activation and enable the Automatic In-App Purchase witch in the Android settings section of the app's dashboard.

    First, ensure that you have v3.22 (or higher) of the Facebook iOS SDK installed within your app. Second, ensure that you are calling the ActivateApp method.

    1. Go to My Apps.
    2. Select your app.
    3. Click on the settings tab on the left nav.
    4. Find the section labeled Android.
    5. Set Automatically Log In-App Purchase Events on Android to Yes.
    1. Go to My Apps.
    2. Select your app.
    3. Click on the settings tab on the left nav.
    4. Find the section labeled iOS.
    5. Enable the switch called "Automatically Log In-App Purchase Events on iOS".

    By enabling the switch for in-app purchase logging, the following App Events will be tracked: Initiate Checkout, Purchase, and Purchase Cancellation.

    Automatic logging reduces the amount of time needed to accurately log App Events. Instead of having to manually collect the events and determine what parameters to pass, all of that work is handled for you. For instance the following parameters are automatically logged: Product ID, quantity, total amount, currency, product title and product description. Also, if you are using version 3.22 or higher, you can automatically enable this without having to submit an updated client to the App Store.

    If you are currently logging in-app purchases there is no need to enable this feature. However, you would like to adopt this functionality, you will want to stop explicitly logging in-app purchases events otherwise you may see duplicate counts in your reporting.

    We recommend logging all events that are relevant to your app. You can use this best practices guide as a starting point to determine what events would be relevant for your business.