510-101: Meta (Facebook) Certified Advanced Marketing Developer Answers

510-101 Meta (Facebook) Certified Advanced Marketing Developer Answers

This certification measures competency in the technical implementation of advanced marketing solutions. The certification consists of two required parts: a multiple choice exam (510-101) and a coding assessment (510-201). Facebook Certified Marketing Developer is a prerequisite for this certification.


90 min


Approximately 2 hours


Software developers, mobile web developers, full stack engineers, website developers

This certification is only available in English.

Questions and Answers with Explanation

Question 1:

An advertiser is trying to upload their Offline Conversion data using Limited Data Use flags to comply with the California Consumer Privacy Act (CCPA) law. The advertiser’s data set continues to fail due to invalid format.

ctMenlo Park

Which change must the advertiser make to the format to make sure the data uploads successfully to Facebook? 


  • The data_processing_options parameter should be set to[BLOCK].
  • data_processing_options_state must be set to 1000 and data_processing_options_country must be set to 1.
  • data_processing_options_state and data_processing_options_country parameters must be removed.
  • The user’s personally identifiable information (PII) must be encrypted.


We support [] or [LDU] as its value. PII must only be encrypted when uploading via API (Facebook will automatically hash PII in offline conversion file uploads). The parameters data_processing_options_state and data_processing_options_country are required when specifying [LDU], so they can’t be removed. We don’t support geolocation for Offline Conversions, so while 0 values work for other signal sources like Conversion API or pixel, it will not work for Offline Conversions. 

Question 2:

Refer to the following code:

NSDictionary *params = @{



               {\”id\”: \”IT4789-1\”, \”quantity\”: 2},

               {\”id\”: \”IT5267-2\”, \”quantity\”: 3}



[FBSDKAppEvents logPurchase: 225.00

currency: @”USD”

parameters: params ];

What line of code must be added to the purchase event for Dynamic Ads?


  • FBSDKAppEventParameterNameContentName: @”Blue Smart Watch Band”
  • FBSDKAppEventParameterNameContentID: @”[\”IT4789\”,\”IT5267\”]”
  • FBSDKAppEventParameterNameCurrency: @”USD”
  • FBSDKAppEventParameterNameContentType: @”product”

Question 3:

A client reviews the changes a developer made in their Android App to send events to Facebook. After a series of internal discussions, the client decides not to send the Advertiser ID to Facebook.

Which change must be made to comply with this request? 

  • Disable Advertiser ID collection in the AndroidManifest.xml file
  • Call setAdvertiserIDCollectionEnabled(false) after the SDK initiates
  • Go to Facebook App Dashboard and mark Advertiser ID collection to disable
  • Set the advertiserIDCollectionEnabled parameter to false in the SDK initialization code


The best solution here is to disable it via the AndroidManifest.xml file. While you can enable/disable Advertiser ID after the SDK initializes, its use case is more for when clients want to obtain consent from a user before collecting this information. However, since the client is intending to disable collection for all users, disabling Advertiser ID collection in the AndroidManifest.xml file is the best option here.

Question 4:

Refer to the following sample catalog feed excerpt:

1234 New York AveNew YorkNew YorkUSA10001

Which column’s value needs to be reformatted to successfully utilize dynamic ads? 


  • address.region
  • address.city
  • address.country
  • address.postal_code


All fields are correctly formatted, except for country. This field should not use abbreviations in order to match the pixel parameter. 

Question 5:

A developer needs to record activity on an Android app and wants to add the Facebook SDK.

Which two strings must be defined in the strings.xml file? (Choose 2) 


  • fb_login_protocol_scheme
  • facebook_app_name
  • facebook_app_id
  • fb_access_token


Both the fb_login_protocol and facebook_app_id elements are defined in the strings.xml file. The app name and access tokens are not defined in the strings.xml file.

Question 6:

A Facebook advertiser offers vacation rentals on their website and has a catalog for Real Estate ads in place. Some properties have different pricing options depending on the length of the stay and the demand for those particular dates. This advertiser wants to enable Facebook to deliver ads for people with interest in specific dates and show date-specific pricing.

Which two courses of action should this advertiser take to achieve this goal? (Choose 2) 


  • Add available_dates_price_config field to the catalog.
  • Add one more item input for each combination of date and pricing, and group these items with home_listing_group_id field in the catalog.
  • Send lease_start_date and lease_end_date parameters in pixel events.
  • Add additional price columns (example: price[0]; price[1]) for each date.


The parameters lease_start_date and lease_end_date are correct because this is the applicable standard parameter for this scenario. With available_dates_price_config, you can provide the availability and prices of each property for a given date range. To enable this feature, you must also send Facebook lease_start_date and lease_end_date in your pixel events.

Question 7:

An airline wants to retarget users who search for flights from San Francisco (SFO) to New York City (JFK). The advertiser can see that Search events are being received, but ads are not being delivered.

The parameters are firing as follows:

fbq(‘track’, ‘Search’, {

  content_type: ‘flights’,

  departing_departure_date: ‘20181212’,

  returning_departure_date: ‘20181219’,

  origin_airport: ‘SFO’,

  destination_airport: ‘JFK’,

  num_adults: 1,

  num_children: 0,

  travel_class : ‘economy’,

  price : 100,

  currency: ‘USD’


What is causing the Search event to be ineligible for ad delivery? 


  • Departure dates are incorrectly formatted.
  • travel_class is not a valid parameter.
  • Number of children are not null or greater than 0.
  • content_type is incorrect.


The formatting for departing_departure_date is correct, travel_class is a valid parameter, and num_children can be set to 0. However, content_type here should be flight. 

Question 8:

A client plans to launch a new game and needs to recover their initial investment quickly. The client wants to optimize toward people spending money in the app. The app has its own currency that users can buy with real money. This currency can be used to buy items in the game. Those transactions are processed via Google Play and Apple App Store. The client will look both at the real money spent as well as the items bought with their own currency.

The client has already installed the Facebook SDK with the default configuration.

Which event must be added for the client to track their business objective appropriately? 


  • Purchase
  • Initiate Checkout
  • Spend Credits
  • Donate

Question 9:

An ecommerce retailer has an Android app that customers can use to browse and purchase items. The advertising team notices that the number of AddToCart events recorded by the SDK is twice as high as the number of Add to Carts reported in their app analytics. 

What are two possible causes of this issue? (Choose 2) 


  • The SDK is recording the Pixel and SDK events every time an AddToCart button is clicked.
  • The SDK is recording AddToCart events when an add to cart button is clicked, while the app records the event when the cart page is reached.
  • An error in the SDK implementation is causing a duplicate firing of the AddToCart event.
  • A quantity of 2 is being passed with every AddToCart event.


Events fired on button clicks may be recorded even if the AddToCart event was unsuccessful. Many sites record AddToCart when the item reaches the cart. A mismatch in implementation could lead to differences in recorded events between systems. Additionally, a quantity of 2 being passed with every AddToCart event would only indicate a single event occurrence.

Question 10:

A travel site is setting up a pixel to target customers for Destination ads. 

An excerpt of pixel code from the travel site is as follows:

fbq(‘track’, ‘Search’, {

  content_type: ‘destination’, 

  content_ids: [‘123’], 

  city: ‘Auckland’,

  country: ‘New Zealand’,


What must be included in the code so the event can support Destination ads? 


  • checkin_date and checkout_date
  • region
  • currency
  • value and currency


Region is not listed as a standard parameter and will help with targeting. 

Question 11:

A client is adding the Purchase event into their Android App. During testing, the client’s code fails to work as expected. The client shares the following code with a developer:

AppEventsLogger logger = AppEventsLogger.newLogger(this);

Bundle params = new Bundle();

params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, “product_group”);

params.putString(AppEventsConstants.EVENT_PARAM_CONTENT, “[{\”id\”: \”1234\”, \”quantity\”: 2}, {\”id\”: \”5678\”, \”quantity\”: 1}]”);

logger.logEvent(AppEventsConstants.EVENT_PURCHASE, 54, params);

What are the two most likely explanations for this issue? (Choose 2)


  • The value parameter is not written as 54.00 (with decimal notation).
  • Currency parameter is missing.
  • Content type is product_group instead of product.
  • The AppEventsConstants for purchase is incorrect.


According to the Facebook for Developers Documentation, the Currency parameter is needed. Additionally, the AppEventsConstant here is incorrect. Conversely, both product and product_group work. 

Question 12:

A retailer has an app for Android and iOS devices. Only the iOS version of the app has a separate app version for mobile and tablet. The retailer wants to create app campaigns on Facebook to target all three apps, which requires the retailer to register a Facebook app.

How should the developer create and structure this Facebook app? 


  • Create 3 Facebook apps, 1 for each app version.
  • Create 2 Facebook apps, 1 each for iOS and Android OS.
  • Create 1 Facebook app and add all 3 apps to it.
  • Create 2 Facebook apps, 1 for mobile and 1 for tablet version.


You can add all apps under the same Facebook App. 

Question 13:

A developer builds a feed for an automotive catalog, but vehicles are rejected.

Refer to the following sample of the catalog feed:


Given this sample, which change should be made to the feed? 


  • The values should be nested in an array.
  • The images should use the .png format.
  • The column header should be image[0].url.
  • The column header should be images.


When using a JSON-flattened string for the images column, it should be formatted as an array of image objects (e.g., “[{url:’https://images.com/1.jpg’},{url:’https://images.com/2.jpg’}]”). The sample includes a list of image objects which has not been nested in an array (e.g., “{url:’https://images.com/1.jpg’},{url:’https://images.com/2.jpg’}”).

Question 14:

A retail advertiser wants to upload its offline transaction data to Facebook for ads measurement. It prepares an offline conversion file by separating a single transaction into multiple events. The following table is a sample of its offline conversion file:

john.doe@company.comJohnDoePurchase2020-01-24T11:04:42[{id: “A”, quantity: 1}]
john.doe@company.comJohnDoePurchase2020-01-24T11:04:42[{id: “B”, quantity: 2}]
jane.dae@company.comJaneDaePurchase2020-01-24T15:23:11[{id: “C”, quantity: 1}]

Rows 1 and 2 were purchased within the same transaction with the same event_time, so, they will be deduplicated after uploading the file, which the advertiser wants to avoid. 

Which two actions needed to be taken to avoid the deduplication? (Choose 2) 


  • Increase timestamp granularity for event_time.
  • Add order_id column to specify transaction ID and two rows within the same transaction can have the same order_id.
  • Separate rows with the same event_time into different files and upload separately.
  • Add item_number column to specify different numbers for each row within the same transaction.


According to the documentation, order_ID is required to avoid deduplication of transactions and item_number is required to avoid deduplication if items within a transaction.

Question 15:

A developer is troubleshooting an issue with a client who is unable to see their app installs in their Facebook analytics tools. The client has made changes in the app since the original version that worked as expected.

What should the developer check to diagnose this issue? 


  • Whether automatic app events have been disabled
  • Whether the app install event is being sent
  • Whether the correct parameters are being sent when setting up the SDK
  • Whether the client made changes in the Facebook App Dashboard

Question 16:

A game developer needs to implement Limited Data Use (LDU) for their iOS mobile app users as part of their California Consumer Privacy Act (CCPA) compliance efforts. Currently the app cannot determine user location.

A user declines consent to data sharing. 

The developer needs to make sure that data is restricted for California users only. The developer uses Swift.

How should the developer implement LDU using the setDataProcessingOptions method to meet these requirements? 


  • Settings.setDataProcessingOptions(modes: [])
  • Settings.setDataProcessingOptions(modes: [“LDU”], country: 0, state: 0)
  • Settings.setDataProcessingOptions(modes: [“LDU”], country: ‘DETECT’, state: ‘DETECT’)
  • Settings.setDataProcessingOptions(modes: [“LDU”], country: ‘USA’, state: ‘CA’)


Specifying 0 as country and 0 as state is the only way to enable Facebook geolocation detection for your app events.  

Question 17:

A retailer notices a drop in match rate for the ViewContent event. The event is implemented into the app using the following code:

NSDictionary *params = @{

    FBSDKAppEventParameterNameContentType: @”product”



          {\”id\”: \”SNKJ2311-Aqua\”},

          {\”id\”: \”SNKJ2301-Chicago\”}



[FBSDKAppEvents logEvent: FBSDKAppEventNameViewedContent

parameters: params ];

What must be added to the content parameter to fix this drop rate? 


  • The content_name property
  • The currency property
  • The value property
  • The quantity property

Question 18:

A potential lead browses a car dealership’s website, and reaches a listing page that has the following pixel code implemented:

1  fbq(‘track’, ‘ViewContent’, {

2    content_type: ‘autos’, 

3    content_ids: [‘123’], 

4    postal_code: ‘94025’, 

5    country: ‘United States’,

6    make: ‘Lexus’, 

7    model: ‘ES’, 

8    year: ‘2017’, 

9    state_of_vehicle: ‘CPO’, 

10   exterior_color: ‘black’, 

11   transmission: ‘automatic’, 

12   body_style: ‘sedan’, 

13   fuel_type: ‘gasoline’, 

14   drivetrain: ‘awd’, 

15   price: ‘1234.9’, 

16   currency: ‘USD’, 

17   price_range: ‘[10000,20000]’ 

18 });

How should a developer edit lines 2, 15, and 17 so the potential lead can be retargeted using Automotive ads? 


  • 2: content_type: ‘vehicle’
  • 15: price: 1234.9
  • 17: preferred_price_range: ‘[10000,20000]’
  • 2: content_type: ‘vehicle’
  • 15: price: ‘1234.90’
  • 17: price_range: ‘[10000,20000]’
  • 2: content_type: ‘auto’
  • 15: price: ‘1234.9’
  • 17: preferred_price_range: ‘[10000,20000]’
  • 2: content_type: ‘auto’
  • 15: price: 1234.90
  • 17: price_range: ‘[10000,20000]’


The correct value to use for Automotive ads is vehicle. Additionally, price must be a float up to two decimals. The parameter name preferred_price_range is correct. 

Question 19:

The following pixel code is being used to track activity on a real estate company’s website:

fbq(‘track’, ‘ViewContent’, {

  content_type: ‘home_listing’,

  content_ids: [1234, 2345, 3456, 4567], 

  city: ‘New York City’, 

  country: ‘US’, 

} );

Which reason explains why the pixel code fails to fire as expected? 


  • ViewContent event does not have a city parameter
  • content_ids is missing strings
  • home_listing is not a valid parameter for content_type
  • region parameter is missing


The parameter content_ids should contain the home_listing_id from the catalog upload, a column which contains string values. 

Question 20:

An advertiser observes a 0% match rate on their AddToCart event for their iOS app, The following event is observed when an item is added to a customer’s cart:

– (void)logAddedToCartEvent :(int)contentId

contentType :(NSString*)contentType

currency :(NSString*)currency

valToSum :(double)price {

NSDictionary *params =

[[NSDictionary alloc] initWithObjectsAndKeys:

contentId, ‘12345’,

contentType, ‘product’,

currency, ‘USD’,


[FBSDKAppEvents logEvent: FBSDKAppEventNameAddedToCart

valueToSum: 9.99

parameters: params];


What is a plausible explanation for why the AddToCart event fails to match any items in the catalog?


  • The currency parameter is missing in the logEvent function.
  • The value defined for contentId is incorrect.
  • The contentType can only be products or product_group.
  • The value parameter needs to be defined prior to the logEvent function.


Without defining the contentId as a string, the contentId will not be communicated correctly when the event fires.

Facebook for Developers Documentation

Leave a Comment

Your email address will not be published. Required fields are marked *