// should begin with "act_" (eg: $account_id = 'act_1234567890';)
$account_id = null;
// Configurations - End
if (is_null($access_token) || is_null($app_id) || is_null($app_secret)) {
    throw new \Exception('You must set your access token, app id and app secret before executing');
}
if (is_null($account_id)) {
    throw new \Exception('You must set your account id before executing');
}
define('SDK_DIR', __DIR__ . '/..');
// Path to the SDK directory
$loader = (include SDK_DIR . '/vendor/autoload.php');
use FacebookAds\Api;
Api::init($app_id, $app_secret, $access_token);
// use the namespace for Custom Audiences and Fields
use FacebookAds\Object\CustomAudience;
use FacebookAds\Object\Fields\CustomAudienceFields;
use FacebookAds\Object\Values\CustomAudienceTypes;
// Create a custom audience object, setting the parent to be the account id
$audience = new CustomAudience(null, $account_id);
$audience->setData(array(CustomAudienceFields::NAME => 'My Custom Audiece', CustomAudienceFields::DESCRIPTION => 'Lots of people'));
// Create the audience
$audience->create();
echo "Audience ID: " . $audience->id . "\n";
// Assuming you have an array of emails:
// NOTE: The SDK will hash (SHA-2) your data before submitting
// it to Facebook servers
$emails = array('*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**');
$audience->addUsers($emails, CustomAudienceTypes::EMAIL);
$audience->read(array(CustomAudienceFields::APPROXIMATE_COUNT));
echo "Estimated Size:" . $audience->{CustomAudienceFields::APPROXIMATE_COUNT} . "\n";
$custom_audience->create();
// _DOC close [CUSTOM_AUDIENCE_CREATE_WCA]
$custom_audience_id = $custom_audience->{CustomAudienceFields::ID};
// _DOC open [CUSTOM_AUDIENCE_READ]
// _DOC vars [custom_audience_id]
// use FacebookAds\Object\CustomAudience;
// use FacebookAds\Object\Fields\CustomAudienceFields;
$custom_audience = new CustomAudience($custom_audience_id);
$custom_audience->read();
// _DOC close [CUSTOM_AUDIENCE_READ]
// _DOC open [CUSTOM_AUDIENCE_READ_RULE]
// _DOC vars [custom_audience_id]
// use FacebookAds\Object\CustomAudience;
// use FacebookAds\Object\Fields\CustomAudienceFields;
$custom_audience = new CustomAudience($custom_audience_id);
$custom_audience->read(array(CustomAudienceFields::NAME, CustomAudienceFields::RULE));
// _DOC close [CUSTOM_AUDIENCE_READ_RULE]
// _DOC open [CUSTOM_AUDIENCE_DELETE]
// _DOC vars [custom_audience_id]
// use FacebookAds\Object\CustomAudience;
$custom_audience = new CustomAudience($custom_audience_id);
$custom_audience->delete();
// _DOC close [CUSTOM_AUDIENCE_DELETE]
$api = Api::instance();
$response = $api->call('/me/accounts');
$data = $response->getContent();
$page_token = '';
foreach ($data['data'] as $page) {
    if ($page['id'] == $page_id) {
        $page_token = $page['access_token'];
        break;