Facebook App Events
Step-by-step guide to send your event data from RudderStack to Facebook App Events.
Last updated
Was this helpful?
Step-by-step guide to send your event data from RudderStack to Facebook App Events.
Last updated
Was this helpful?
is Facebook's event tracking functionality. It lets you track events via your app or web page, including user activities such as app installation, purchases, etc. This information is sent to Facebook for analytics and ad targeting, optimization, and measurement.
RudderStack supports Facebook App Events as a destination to which you can send your event data seamlessly.
Find the open-source transformer code for this destination in our .
To enable sending data to Facebook App Events, you will first need to add it as a destination in RudderStack. Once the destination is configured and enabled, events from RudderStack will start flowing to App Events.
Before configuring App Events as a destination, verify if Facebook supports the source platform by referring to the table below:
Connection Mode
Web
Mobile
Server
Device mode
-
Supported
-
Cloud mode
Supported
Supported
-
To know more about the difference between Cloud mode and Device mode in RudderStack, read the guide.
Once you have confirmed that the source supports sending events to Facebook App Events, follow these steps:
From your , add the source. From the list of destinations, select Facebook App Events.
Assign a name to the destination and click on Next. You should then see the following screen:
The connection settings required to configure App Events as a destination in RudderStack are listed below:
Enter the Facebook App ID.
The following options are applicable if you are using the Device mode to send your events to Facebook:
Limited Data Use: If this option is enabled, you can send the country and state of the end-user so that Facebook processes the user data according to the data regulations set for that region.
Click on Next to complete the configuration.
That's it! Facebook App Events should now be added and enabled as a destination in RudderStack.
Depending on your platform of integration, follow these steps below to add App Events to your project:
iOS Android To add Facebook to your iOS project:
Initialize the Facebook App Events iOS SDK just before intializing the RudderStack iOS SDK as shown:
Send the user's consent to App Events as shown below:
For Objective-C:
For Swift:
Configure your project by adding the following lines to (...)
in your Info.plist
:
After adding the dependency, register the RudderFacebookFactory
with your RudderClient
initialization as a factory
of RudderConfig
. To do this, run the following command to import the RudderFacebookFactory.h
file in your AppDelegate.m
file:
Then, add the RudderStack iOS SDK initialization as shown:
To add Facebook App Events to your Android project, follow these steps:
Add the repository, as shown:
Add the following lines to your app/build.gradle
file under the dependencies
section, as shown:
Open your /app/res/values/strings.xml
file and add the following lines. **Remember to replace [APP_ID]
with your actual app ID**.
In the app/manifests/AndroidManifest.xml
file, add a meta-data
element to the application
element as shown: {/*
*/}
Finally, change the initialization of your RudderClient
in your Application
class, as shown:
For App Events, RudderStack supports the identify
calls only in the mobile device mode.
The identify
call from RudderStack sets the userId
through the setUserID
method from AppEventsLogger
.
RudderStack sets the following properties (if available) using the setUserData
method.
email
firstName
lastName
phone
birthday
gender
city
state
zip
country
A sample identify
call for an iOS application is shown below:
The track
call from RudderStack is logged to Facebook using the logEvent
method of the AppEventsLogger
class. RudderStack uses the same eventName
as you have passed to the track
method. Along with that, it will pass all the properties
after converting them into an accepted format.
A sample track
call for an iOS application is as shown:.
When revenue
and currency
are present in the event properties of any track
call, RudderStack makes a Purchase
call to Facebook using its logPurchase
API along with the normal track
call using the logEvent
API.
If currency
is absent in the event properties RudderStack sets the default value to USD
.
The page
method lets you record your website's page views with any additional relevant information about the viewed page. You need not pass the event name as RudderStack automatically sets it to Viewed Page
.
A sample page
call using the RudderStack Android SDK is as shown:
The page
call is directly passed on to Facebook as a track
event via its logEvent
API, with the event name as Viewed Page
along with the the associated properties.
The screen
method lets you record your users' screen views on their devices, along with any associated properties. This call is similar to the page
call, but is exclusive to your mobile device.
A sample screen
call using the RudderStack Android SDK is as shown:
In the above snippet, RudderStack captures the information related to the viewed screen, such as screen name and category
.
The above screen
call is directly passed on to Facebook as a track
event via its logEvent
API, with the event name as Viewed {screen name} screen
along with the the associated properties. The above example will be sent as a track
event with name Viewed Home screen
along with its properties.
You can now send the Limited Data Use data processing parameters to Facebook for each event via RudderStack, so that Facebook can appropriately apply the user’s data choice.
To use this feature, simply enable the Limited Data Use setting on the RudderStack dashboard and control its behavior via the following data processing parameters:
Parameter
Default Value
Description
Data Processing Options State
0
Use Facebook’s geolocation to determine the end-user's state.
Data Processing Options Country
0
Use Facebook’s geolocation to determine the end-user's country.
This section highlights the different consent-based options for configuring the App Events SDK.
iOS Android
To disable automatic event logging, open the application's .plist
as code in Xcode and add the following XML to the property dictionary:
In some cases, you can delay the collection of automatically logged events to obtain user consent or fulfill legal obligations instead of disabling it entirely. To do so, call the setAutoLogAppEventsEnabled
method of the FBSDKSettings
class to re-enable auto-logging after the end-user provides the required consent.
In Objective-C:
In Swift:
To suspend event collection for any reason, set the setAutoLogAppEventsEnabled
method to NO
for iOS or false
for Swift, as shown:
In Objective-C:
In Swift:
To disable automatically logged events, add the following to your AndroidManifest.xml
file: {/*
*/}
In some cases, you can delay the collection of automatically logged events to obtain user consent or fulfill legal obligations instead of disabling it entirely. To do so, call the setAutoLogAppEventsEnabled()
method of the FacebookSDK
class and set it to true
. This re-enables event logging after the end-user has provided the required consent.
To suspend event logging again for any reason, set the setAutoLogAppEventsEnabled()
method to false
, as shown:
iOS Android
To disable the collection of advertiser ID, open the application's .plist
as code in Xcode and add the following XML to the property dictionary:
In some cases, you can delay the collection of advertiser_id
to obtain the user consent or fulfill any legal obligations instead of disabling it entirely. To do so, call the setAdvertiserIDCollectionEnabled
method of the FBSDKSettings
class and set it to YES
for iOS, or true
for Swift after the end-user provides consent, as shown:
In Objective-C:
In Swift:
To suspend collection for any reason, set the setAdvertiserIDCollectionEnabled
method to NO
for iOS or false
for Swift.
In Objective-C:
In Swift:
To disable collection of advertiser-id
, add the following code to your AndroidManifest.xml
file:
In some cases, you can delay the collection of advertiser_id
to obtain user consent or fulfill any legal obligations instead of disabling it entirely. To do so, call the setAdvertiserIDCollectionEnabled()
method of the FacebookSDK
class and set it to true
. This re-enables the collection of advertiser_id
after the end-user provides the required consent, as shown:
To suspend collection for any reason, set the setAdvertiserIDCollectionEnabled()
method to false
, as shown:
Android To disable automatic SDK initialization in case of the Android SDK, add the following to your AndroidManifest.xml
file:
In some cases, you can delay the SDK initialization to obtain user consent or fulfill any legal obligations instead of disabling it entirely. To do so, call the class method setAutoInitEnabled
and set it to true
to manually initialize the SDK after the end-user provides the required consent.
You can find the Facebook App ID by logging into your Facebook Developer account, and navigating to the Home page of your Application dashboard.
You can find the Facebook Client Token by logging into your Facebook Developer account. Then, navigate to Settings - Advanced - Client Token in your app dashboard.
For more information on this option, refer to the section below.
Add the following line to your Podfile
:
Make sure you replace fbAPP-ID
, APP-ID
, CLIENT-TOKEN
, APP-NAME
with the app-specific details from the .
In July 2020, Facebook released a feature to give businesses better control over how their data is used in their California Consumer Privacy Act (CCPA) compliance efforts.
Learn more about the different data processing options accepted by Facebook .
If you come across any issues while configuring Facebook App Events with RudderStack, feel free to or start a conversation in our community.