App Events FAQ

Limits

How many event types can an app log?

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

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 Level Achieved with a parameter of level for the level number.

How many parameters can I add to an event?

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.

Are there limits on the number of characters used in event names or parameters?

Event names and parameter names must be between 2 and 40 characters, and must consist of alphanumeric characters, _, -, or spaces.

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

Implementation

What platforms does App Events support?

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

Do I need to have Facebook Login implemented in my app to collect App Events?

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

Can App Events capture my specific events?

You can define any event that you would like to capture and you will be able to see that event in your Facebook Analytics for Apps dashboard. We support logging up to 300 distinct event names and no limit on event volume. However, in Ads Reporting, we will only show the fourteen pre-defined App Events and any additional App Events will be logged as Other Mobile App Actions. For this reason, we recommend using one of the fourteen pre-defined App Events.

The fourteen pre-defined events are: App Launch, Complete Registration, Content View, Search, Rating, Tutorial Completed, Add to Cart, Add to Wishlist, Initiated Checkout, Add Payment Info, Purchase, Level Achieved, Achievement Unlocked, Spent Credits.

If I call my purchase event a “Sale” instead of “Purchase” can I still track that event in Facebook Analytics and Ads Reporting?

All events will show up in Facebook Analytics for Apps. However, custom events which are not one of the fourteen pre-defined events will show up as “Other Mobile App Actions” in Ads Reporting. In order to see your event broken out in Ads Reporting, you need to use one of the predefined events.

How can I track App Events for hybrid apps (dual implementation on iOS and Android)?

For Unity games, you can use the Unity SDK to log App Events. For other platforms that utilize 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.

Should I use the Facebook SDK or API (server to server) to pass App Events?

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.

Can I implement App Events if I use an MMP (Mobile Measurement Partner)?

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.

Can I have both an MMP and the Facebook SDK in my app?

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.

Can I send just the installs via the MMP's SDK and the other events by the Facebook SDK?

Yes, you can do this if you would like.

How can I verify my App Events integration?

Prior to launching to the App Store, we recommend loading a test version of your app with updated code on a test device. Go through the most common flows in your app to trigger specific events that you want to test. Those events will now show up in Facebook Analytics. You can filter on the “most recently logged events” filter. To see more details on how to do this: go to the App Events documentation for your specific platform.

What's the best way to verify my app if it is live in the App Store or Google Play?

You can filter by App Version and event name within the Most Recent view within Facebook Analytics for Apps.

How does Facebook use the data that I provide through the SDK or API?

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 News Feed and Search content ranking capabilities. Facebook enhanced interest targeting may use this data along with other signals to improve targeting on Facebook.

Can I opt my app out of Enhanced Interest Targeting?

You can disable Enhanced Interest Targeting by going to your app dashboard setting tab, clicking to the advanced section, and disabling the “Enable Enhanced Interest Targeting” switch. However this will prevent you from having access to Enhanced Interest Targeting.

What are the most common issues developers have when integrating App Events?

  • 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

Why can't I see my App Events broken out in Ads Reporting?

Ads Reporting supports fourteen pre-defined App Events. If you are logging an event that does not fall into one of the pre-defined events, it will show up in Ads Reporting under Other Mobile App Actions.

Can App Events be used to generate audiences for ads targeting?

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

Can I optimize my ads with App Events? (i.e. can I bid for specific App Events)

Currently, we only support bidding for App Installs and not other App Events. However, we recommend looking at your App Event performance in Ads Reporting to optimize your budget and bids based on which ads are performing best.

Automatic In-App Purchase Logging for iOS

How do I enable automatic in-app purchase event logging for iOS?

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. Finally, enable automatic purchase logging within the iOS Settings section of the App Dashboard.

Where is the setting to enable automatic in-app purchase logging?

  1. Go to developers.facebook.com/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"

What events get logged with automatic in-app purchase event logging?

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

Why does it make sense to use automatic logging versus explicitly logging the events?

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.

What if I am already logging in-app purchases for my iOS app?

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.

Does this work for purchases that are not considered in-app purchases?

No, this is only applicable to in-app purchases.

If I have enabled automatic in-app purchase logging, can I still log additional events?

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.