Value-Based Lookalikes

Value-based lookalikes are an enhancement of Lookalike Audiences. With it you can include an arbitrary, numeric value for each user set when you create a seed custom audience from CRM data. Facebook uses this to determine which users in an audience are worth the most to you, in a quantifiable way.

To use this product, you must agree with the value-based lookalike terms of services for every ad account using this feature. See Terms of Service.

Create

Step 1: Create a Value-Based Custom Audience

This is a specialized multi-key custom audience, you create with the parameter is_value_based.

curl -X POST \ -F 'name="Value-Based Custom Audience"' \ -F 'subtype="CUSTOM"' \ -F 'is_value_based=1' \ -F 'customer_file_source="PARTNER_PROVIDED_ONLY"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.3/act_<AD_ACCOUNT_ID>/customaudiences
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const CustomAudience = bizSdk.CustomAudience; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'Value-Based Custom Audience', 'subtype' : 'CUSTOM', 'is_value_based' : '1', 'customer_file_source' : 'PARTNER_PROVIDED_ONLY', }; const customaudiences = (new AdAccount(id)).createCustomAudience( fields, params ); logApiCallResult('customaudiences api call complete.', customaudiences);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\CustomAudience; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Value-Based Custom Audience', 'subtype' => 'CUSTOM', 'is_value_based' => '1', 'customer_file_source' => 'PARTNER_PROVIDED_ONLY', ); echo json_encode((new AdAccount($id))->createCustomAudience( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Value-Based Custom Audience', 'subtype': 'CUSTOM', 'is_value_based': '1', 'customer_file_source': 'PARTNER_PROVIDED_ONLY', } print AdAccount(id).create_custom_audience( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createCustomAudience() .setName(\"Value-Based Custom Audience\") .setSubtype(CustomAudience.EnumSubtype.VALUE_CUSTOM) .setIsValueBased(true) .setCustomerFileSource(CustomAudience.EnumCustomerFileSource.VALUE_PARTNER_PROVIDED_ONLY) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) customaudiences = ad_account.customaudiences.create({ name: 'Value-Based Custom Audience', subtype: 'CUSTOM', is_value_based: '1', customer_file_source: 'PARTNER_PROVIDED_ONLY', })

Step 2: Populate a Seed Audience

You need to populate the new audience with supported identifiers and with the schema key LOOKALIKE_VALUE.
You can represent lookalike values by either an integer or float-point arbitrary non-negative number.

curl -X POST \ -F 'payload={ "schema": [ "EMAIL", "LOOKALIKE_VALUE" ], "data": [ [ "9b431636bd164765d63c573c346708846af4f68fe3701a77a3bdd7e7e5166254", 44.5 ], [ "8cc62c145cd0c6dc444168eaeb1b61b351f9b1809a579cc9b4c9e9d7213a39ee", 140 ], [ "4eaf70b1f7a797962b9d2a533f122c8039012b31e0a52b34a426729319cb792a", 0 ], [ "98df8d46f118f8bef552b0ec0a3d729466a912577830212a844b73960777ac56", 0.9 ] ] }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.3/<CUSTOM_AUDIENCE_ID>/users
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const CustomAudience = bizSdk.CustomAudience; const User = bizSdk.User; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'payload' : {'schema':['EMAIL','LOOKALIKE_VALUE'],'data':[['9b431636bd164765d63c573c346708846af4f68fe3701a77a3bdd7e7e5166254',44.5],['8cc62c145cd0c6dc444168eaeb1b61b351f9b1809a579cc9b4c9e9d7213a39ee',140],['4eaf70b1f7a797962b9d2a533f122c8039012b31e0a52b34a426729319cb792a',0],['98df8d46f118f8bef552b0ec0a3d729466a912577830212a844b73960777ac56',0.9]]}, }; const users = (new CustomAudience(id)).createUser( fields, params ); logApiCallResult('users api call complete.', users);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\CustomAudience; use FacebookAds\Object\User; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'payload' => array('schema' => array('EMAIL','LOOKALIKE_VALUE'),'data' => array(array('9b431636bd164765d63c573c346708846af4f68fe3701a77a3bdd7e7e5166254',44.5),array('8cc62c145cd0c6dc444168eaeb1b61b351f9b1809a579cc9b4c9e9d7213a39ee',140),array('4eaf70b1f7a797962b9d2a533f122c8039012b31e0a52b34a426729319cb792a',0),array('98df8d46f118f8bef552b0ec0a3d729466a912577830212a844b73960777ac56',0.9))), ); echo json_encode((new CustomAudience($id))->createUser( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.adobjects.user import User from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'payload': {'schema':['EMAIL','LOOKALIKE_VALUE'],'data':[['9b431636bd164765d63c573c346708846af4f68fe3701a77a3bdd7e7e5166254',44.5],['8cc62c145cd0c6dc444168eaeb1b61b351f9b1809a579cc9b4c9e9d7213a39ee',140],['4eaf70b1f7a797962b9d2a533f122c8039012b31e0a52b34a426729319cb792a',0],['98df8d46f118f8bef552b0ec0a3d729466a912577830212a844b73960777ac56',0.9]]}, } print CustomAudience(id).create_user( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new CustomAudience(id, context).createUser() .setPayload(\"{\\"schema\\":[\\"EMAIL\\",\\"LOOKALIKE_VALUE\\"],\\"data\\":[[\\"9b431636bd164765d63c573c346708846af4f68fe3701a77a3bdd7e7e5166254\\",44.5],[\\"8cc62c145cd0c6dc444168eaeb1b61b351f9b1809a579cc9b4c9e9d7213a39ee\\",140],[\\"4eaf70b1f7a797962b9d2a533f122c8039012b31e0a52b34a426729319cb792a\\",0],[\\"98df8d46f118f8bef552b0ec0a3d729466a912577830212a844b73960777ac56\\",0.9]]}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end custom_audience = FacebookAds::CustomAudience.get(id) users = custom_audience.users.create({ payload: {'schema':['EMAIL','LOOKALIKE_VALUE'],'data':[['9b431636bd164765d63c573c346708846af4f68fe3701a77a3bdd7e7e5166254',44.5],['8cc62c145cd0c6dc444168eaeb1b61b351f9b1809a579cc9b4c9e9d7213a39ee',140],['4eaf70b1f7a797962b9d2a533f122c8039012b31e0a52b34a426729319cb792a',0],['98df8d46f118f8bef552b0ec0a3d729466a912577830212a844b73960777ac56',0.9]]}, })

Step 3: Create a Value-Based Lookalike

After the custom audience contains at least 100 people, you can use it as a seed audience for a new lookalike of type custom_ratio.

curl -X POST \ -F 'name="Value-Based lookalike"' \ -F 'subtype="LOOKALIKE"' \ -F 'origin_audience_id="<CUSTOM_AUDIENCE_ID>"' \ -F 'lookalike_spec={ "type": "custom_ratio", "ratio": 0.01, "country": "US" }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.3/act_<AD_ACCOUNT_ID>/customaudiences
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const CustomAudience = bizSdk.CustomAudience; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'Value-Based lookalike', 'subtype' : 'LOOKALIKE', 'origin_audience_id' : '<valueBasedCustomAudienceID>', 'lookalike_spec' : {'type':'custom_ratio','ratio':0.01,'country':'US'}, }; const customaudiences = (new AdAccount(id)).createCustomAudience( fields, params ); logApiCallResult('customaudiences api call complete.', customaudiences);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\CustomAudience; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Value-Based lookalike', 'subtype' => 'LOOKALIKE', 'origin_audience_id' => '<valueBasedCustomAudienceID>', 'lookalike_spec' => array('type' => 'custom_ratio','ratio' => 0.01,'country' => 'US'), ); echo json_encode((new AdAccount($id))->createCustomAudience( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Value-Based lookalike', 'subtype': 'LOOKALIKE', 'origin_audience_id': '<valueBasedCustomAudienceID>', 'lookalike_spec': {'type':'custom_ratio','ratio':0.01,'country':'US'}, } print AdAccount(id).create_custom_audience( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createCustomAudience() .setName(\"Value-Based lookalike\") .setSubtype(CustomAudience.EnumSubtype.VALUE_LOOKALIKE) .setOriginAudienceId(\"<valueBasedCustomAudienceID>\") .setLookalikeSpec(\"{\\"type\\":\\"custom_ratio\\",\\"ratio\\":0.01,\\"country\\":\\"US\\"}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) customaudiences = ad_account.customaudiences.create({ name: 'Value-Based lookalike', subtype: 'LOOKALIKE', origin_audience_id: '<valueBasedCustomAudienceID>', lookalike_spec: {'type':'custom_ratio','ratio':0.01,'country':'US'}, })

You can read, update and delete a value-based lookalike as you do normal Lookalike Audiences. See also Custom Audiences, Reference and Custom Audience Users, Reference.

Value-Based Lookalikes from Pixel, SDK, Product Catalog, and Offline Event Sets

As an alternative to creating seeds from CRM data, you can create a Value-Based Lookalikes using values from Purchase events from your website, mobile app, offline conversion data sets, and product catalogs. Your Lookalike audience will be based on frequency, recency, and a full-range of values from the events.

Step 1: Track Purchases

From a Website

Create a Facebook Pixel and install the Javascript code to track purchases on your website. See also Pixel Events - Facebook Tag API.

<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,'script','https://connect.facebook.net/en_US/fbevents.js');

fbq('init', '<FB_PIXEL_ID>');
fbq('track', "Purchase", { value: 30.00, currency: 'USD' });
</script>

From a Mobile App

Install the Facebook Android SDK or the Facebook iOS SDK and track purchases within your app. See also App Events for Android or App Events for iOS.

Bundle parameters = new Bundle();
parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
logger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_CART, 30.00, parameters);
FBSDKAppEvents logPurchase:30.00 currency:@"USD"];

From a Product Set

If you use Dynamic Ads leveraging Product Sets to segment your catalog, you can create a Value-Based Lookalikes combining website and mobile app purchase events associated with these products. See also Dynamic Audiences - Building Audiences

Step 2: Create a Value-Based Lookalike

After you successfully started reporting purchases, you can reference your pixel ID, Facebook app ID or product set ID as origin_event_sources for a new lookalike of type custom_ratio.

Note: Only one source ID per lookalike is supported
curl -X POST \ -F 'name="Test Value-Based lookalike from Pixel"' \ -F 'subtype="LOOKALIKE"' \ -F 'lookalike_spec={ "origin_event_sources": [ { "id": "<PIXEL_ID>" } ], "type": "custom_ratio", "ratio": 0.01, "country": "US" }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.3/act_<AD_ACCOUNT_ID>/customaudiences
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const CustomAudience = bizSdk.CustomAudience; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'Test Value-Based lookalike from Pixel', 'subtype' : 'LOOKALIKE', 'lookalike_spec' : {'origin_event_sources':[{'id':'<sourceID>'}],'type':'custom_ratio','ratio':0.01,'country':'US'}, }; const customaudiences = (new AdAccount(id)).createCustomAudience( fields, params ); logApiCallResult('customaudiences api call complete.', customaudiences);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\CustomAudience; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Test Value-Based lookalike from Pixel', 'subtype' => 'LOOKALIKE', 'lookalike_spec' => array('origin_event_sources' => array(array('id' => '<sourceID>')),'type' => 'custom_ratio','ratio' => 0.01,'country' => 'US'), ); echo json_encode((new AdAccount($id))->createCustomAudience( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Test Value-Based lookalike from Pixel', 'subtype': 'LOOKALIKE', 'lookalike_spec': {'origin_event_sources':[{'id':'<sourceID>'}],'type':'custom_ratio','ratio':0.01,'country':'US'}, } print AdAccount(id).create_custom_audience( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createCustomAudience() .setName(\"Test Value-Based lookalike from Pixel\") .setSubtype(CustomAudience.EnumSubtype.VALUE_LOOKALIKE) .setLookalikeSpec(\"{\\"origin_event_sources\\":[{\\"id\\":\\"<sourceID>\\"}],\\"type\\":\\"custom_ratio\\",\\"ratio\\":0.01,\\"country\\":\\"US\\"}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) customaudiences = ad_account.customaudiences.create({ name: 'Test Value-Based lookalike from Pixel', subtype: 'LOOKALIKE', lookalike_spec: {'origin_event_sources':[{'id':'<sourceID>'}],'type':'custom_ratio','ratio':0.01,'country':'US'}, })

While Purchase is the recommended event for Value-Based Lookalikes, it's possible to select any other event reported with the parameters value and currency.

To create a Value-Based Lookalikes of people adding items to your cart:

curl -X POST \ -F 'name="Test Value-Based lookalike from Pixel"' \ -F 'subtype="LOOKALIKE"' \ -F 'lookalike_spec={ "origin_event_sources": [ { "id": "<PIXEL_ID>", "event_names": [ "AddToCart" ] } ], "type": "custom_ratio", "ratio": 0.01, "country": "US" }' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v3.3/act_<AD_ACCOUNT_ID>/customaudiences
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const CustomAudience = bizSdk.CustomAudience; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'Test Value-Based lookalike from Pixel', 'subtype' : 'LOOKALIKE', 'lookalike_spec' : {'origin_event_sources':[{'id':'<sourceID>','event_names':['AddToCart']}],'type':'custom_ratio','ratio':0.01,'country':'US'}, }; const customaudiences = (new AdAccount(id)).createCustomAudience( fields, params ); logApiCallResult('customaudiences api call complete.', customaudiences);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\CustomAudience; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'Test Value-Based lookalike from Pixel', 'subtype' => 'LOOKALIKE', 'lookalike_spec' => array('origin_event_sources' => array(array('id' => '<sourceID>','event_names' => array('AddToCart'))),'type' => 'custom_ratio','ratio' => 0.01,'country' => 'US'), ); echo json_encode((new AdAccount($id))->createCustomAudience( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'Test Value-Based lookalike from Pixel', 'subtype': 'LOOKALIKE', 'lookalike_spec': {'origin_event_sources':[{'id':'<sourceID>','event_names':['AddToCart']}],'type':'custom_ratio','ratio':0.01,'country':'US'}, } print AdAccount(id).create_custom_audience( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createCustomAudience() .setName(\"Test Value-Based lookalike from Pixel\") .setSubtype(CustomAudience.EnumSubtype.VALUE_LOOKALIKE) .setLookalikeSpec(\"{\\"origin_event_sources\\":[{\\"id\\":\\"<sourceID>\\",\\"event_names\\":[\\"AddToCart\\"]}],\\"type\\":\\"custom_ratio\\",\\"ratio\\":0.01,\\"country\\":\\"US\\"}\") .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) customaudiences = ad_account.customaudiences.create({ name: 'Test Value-Based lookalike from Pixel', subtype: 'LOOKALIKE', lookalike_spec: {'origin_event_sources':[{'id':'<sourceID>','event_names':['AddToCart']}],'type':'custom_ratio','ratio':0.01,'country':'US'}, })

See also Lookalike Audiences.

Targeting

You can target ads with a value-based lookalikes as you do for any other custom audience. See Ad Set, Reference.