Designing Your Data

The key to maximizing the effectiveness of Facebook Analytics is by sending aggregated and anonymized data so that you can learn about the behaviors of your users. By starting with accurate data, you can develop a solid understanding of you users. This topic shows you a systematic approach to designing and implementing accurate data to send to Facebook Analytics.

Steps

Sending accurate data starts with a plan that includes the goals of your website or mobile app. Here is a list of steps to systematically design your data to meet your goals.

  1. Define Success - what does success means in your app or web page?
  2. Define the Route to Success - what are the steps that a user has to take in order to achieve success in your app.
  3. Define the Data to Measure the Route To Success - how to quantify each step of the route.
  4. Implement the Data - implement the data in your app or web page.

Define Success

In this step you will determine what success is for your website or mobile app. You want to define the goals of your website or mobile app. For example, the goal of the an e-commerce business that uses a website or mobile app to sell product is to ship a product that a customer selects.

If you have several goals, go through the steps for each goal. When you have the steps for all of the goals, you can then combine common steps to make implementation more efficient.

Define the Route to Success

In this step you will determine the steps your user will take to get to the goal of your website or mobile app. You need to define two routes:

  • Successful route - these are the steps the user takes to get to the goal.
  • Unsuccessful route - these are the steps the user can take that is not the successful route.

Successful Route

Here is an example of a successful route for an e-commerce website or mobile app:

  1. Open the web page or install and start the mobile app.
  2. Search for an item.
  3. Add an item from the search results to a wish list.
  4. Move an item from a wish list to a shopping cart.
  5. Start the checkout process.
  6. Complete the registration.
  7. Purchase the item.
  8. Review shipping information when the item has shipped.

Unsuccessful Route

The unsuccessful route is where the user does not go to the next step. You can use Facebook Analytics to determine the last step the user completed and what step was completed. Any uncompleted step before Purchase the item is considered an unsuccessful step.

Route Details

As you design the route, think about what details you want to capture about the route that your users take. Consider additional data that you want to learn about the behavior of your users. This exercise leads to the way you categorize and manage your data.

For example, you can determine how a user gets to an item from the search feature. You can capture the search terms entered, the results of the search term, the item selected, and then the items added to the cart.

Think about how you would capture the journey of the user through your website or mobile app. How would you capture each step in the journey?

Define the Data to Measure the Route to Success

In this step, you will create the data that you will send to Facebook Analytics that describes each step of a successful route. You can send two types of data:

  • Events and Parameters
  • User Properties

Events and Parameters

Events and parameters describe the action a user completes along with the data in the action. An event is the action that the user completes and the parameters for the event is the data associated with that event.

You have the following types of events and parameters you can send:

  • Pre-defined events and parameters - events and parameters that are defined in the Facebook SDK.

  • Custom events and parameters - events and parameters that you define.

When planning out your events and parameters, see if a pre-defined event will work for your application. The following are the pre-defined events

Event NameDescription

Achieved Level

Log this event when the user has achieved the level in the app. The level is specified in a parameter.

Add Payment Info

Log this event when the user has entered their payment info.

Add To Cart

Log this event when the user has added an item to their cart. The valueToSum parameter contains the price of the item.

Add To Wishlist

Log this event when the user add an item to their wish list. The valueToSum parameter contains the price of the item.

Complete Registration

Log this event when a user has completed registration with the app.

Complete Tutorial

Log this event when the user has completed a tutorial in the app.

Purchase

Log this event after the user completes a purchase using your own purchase method. If you use Facebook to manage your in-app purchases, the purchase events are automatically logged.

Rate

Log this event when the user gives a rating. The valueToSum parameter is the rating given by the user.

Search

Log this event when a user performs a search within the app.

Spent Credits

Log this event when the user has spent their app credits. The valueToSum parameter is the number of credits spent.

Unlock Achievement

Log this event when the user unlocks an achievement in the app.

View Content

Log this event when a user has viewed a form of content in the app.

If none of the pre-defined events will work for you, then you can use a custom event. Each custom event you create can have up to 25 parameters that you can also define. You can create up to 1,000 custom events.

Although you can create up to 1,000 custom events, you should create the minimum number of custom events to make data management easier. One way to create the minimum number of custom events is differentiate events by using parameters instead of create an event for each action.

For example, if your website or mobile app has several menu items, use a single event to log the action of choosing a menu item and then use a parameter to describe the menu item.

The parameter is the data that quantifies the event. The parameter is a collection of key value pairs. Each key in the parameter must have a unique name. You can use the pre-defined parameter names in the SDK or create a unique name. The value of the key value pair must be a string or a number. Whenever possible, define the appropriate value for each key value pair and ensure that the value that you will assign in the key value pair is the appropriate value. For example, assign strings to a key value pair expecting a string and assign a number to a key value pair that is expecting a number. Checking the data before assignment is especially critical if your app is written in a weakly typed language, such as JavaScript.

The example e-commerce website and mobile app has several steps to a successful route. The following is an example of how to use events to describe each step.

StepEvent NameEvent Type

Open the web page or install and start the mobile app.

App Install

Automatically logged

Search for an item.

Search

Custom

Add an item from the search results to a wish list.

Add to wish list

Pre-defined

Move an item from a wish list to a shopping cart.

Add to cart

Pre-defined

Start the checkout process.

Initiate Checkout

Pre-defined

Complete the registration.

Complete registration

Pre-defined

Purchase the item.

Purchase

Pre-defined

Review shipping information when the item has shipped.

Review shipping

Custom

Do not send personal identifiable information (PII) or any data that has a 1:1 relationship with a user in a parameter.

User Properties

You can create segments based on what you know about your users by using user properties. A user property is a value that you assign to a user who meets a specific criteria. For example, you can create a user property to track a user to a loyalty program. The values in the property can be Gold, Silver, or Bronze, depending on how much the user has bought using your app.

You can have up to 100 user properties.

Do not store personal identifiable information (PII) in a user property.

Managing Your Data

After you create your events and parameters and user properties, create a data dictionary that documents this data. The data dictionary can help you and your organize keep track of your data so that your organization sends the right data to Facebook Analytics.

For example, the Purchased pre-defined event has the following parameters: * purchasedAmount * currency * parameters

You use this pre-defined event to log each item in the shopping cart that was purchased.

The data dictionary would have the following entry:

ParameterDescriptionData typeSource

purchasedAmount

Price of the item

Double

The price of the item when added to the shopping cart.

currency

The currency of the price of the item.

String

Database table

parameters

The item name, description, color, and size.

Key-value pair as strings

Shopping cart

Implement the Data

In this step, you will implement the events and parameters and the user properties you defined in the previous step in your website or mobile app.

To implement an event and the parameters, use the code configurator to generate the code to add to the appropriate section of your code.

To Generate Code for a Pre-defined Event

  1. Choose the Pre-Defined Event tab.
  2. In Event Name, choose a pre-defined event.
  3. Choose Get Code.
  4. In the window, select a language to see the code to copy and paste into your app.

To Generate Code for a Custom Event

  1. Choose the Custom Event tab.
  2. In Event Name, enter the name of you custom event.
  3. In Use Value to Sum?, choose On if you will have this value.
  4. For each parameter in your custom event, choose Add Event Parameter, enter the name of the parameter, and then choose a data type.
  5. Choose Get Code.
  6. In the window, select a language to see the code to copy and paste into your app.

To implement a user property, see User Properties