public function testAdPreviews()
 {
     // Preview with actual creative
     $previews = $this->adCreative->getAdPreviews(array(), array(AdPreviewFields::AD_FORMAT => AdFormats::RIGHT_COLUMN_STANDARD));
     $this->assertNotEquals(0, $previews->count());
     $preview = $previews->offsetGet(0);
     $this->assertRegExp('/iframe/', $preview->{AdPreviewFields::BODY});
     // Preview with actual adgroup
     $previews = $this->adGroup->getAdPreviews(array(), array(AdPreviewFields::AD_FORMAT => AdFormats::RIGHT_COLUMN_STANDARD));
     $this->assertNotEquals(0, $previews->count());
     $preview = $previews->offsetGet(0);
     $this->assertRegExp('/iframe/', $preview->{AdPreviewFields::BODY});
     // Preview with creative specs
     $account = new AdAccount($this->getActId());
     $previews = $account->getAdPreviews(array(), array(AdPreviewFields::CREATIVE => array(AdCreativeFields::BODY => 'Testing the creative preview', AdCreativeFields::OBJECT_ID => $this->getPageId()), AdPreviewFields::AD_FORMAT => AdFormats::RIGHT_COLUMN_STANDARD));
     $this->assertNotEquals(0, $previews->count());
     $preview = $previews->offsetGet(0);
     $this->assertRegExp('/iframe/', $preview->{AdPreviewFields::BODY});
 }
// _DOC vars [ad_account_id:s, page_id, link:s, product_set_id_1]
// use FacebookAds\Object\AdCreative;
// use FacebookAds\Object\ObjectStorySpec;
// use FacebookAds\Object\ObjectStory\TemplateData;
// use FacebookAds\Object\Fields\AdCreativeFields;
// use FacebookAds\Object\Fields\ObjectStorySpecFields;
$object_story_spec = new ObjectStorySpec();
$object_story_spec->setData(array(ObjectStorySpecFields::PAGE_ID => $page_id, ObjectStorySpecFields::TEMPLATE_DATA => (new TemplateData())->setData(array('message' => 'Test {{product.name | titleize}}', 'link' => $link, 'name' => 'Headline {{product.price}}', 'description' => 'Description {{product.description}}', 'max_product_count' => 3))));
$creative = new AdCreative(null, $ad_account_id);
$creative->setData(array(AdCreativeFields::NAME => 'Dynamic Ad Template Creative Sample', AdCreativeFields::OBJECT_STORY_SPEC => $object_story_spec, AdCreativeFields::PRODUCT_SET_ID => $product_set_id_1));
$creative->create();
// _DOC close [ADCREATIVE_CREATE_DPA_RETARGETING]
$creative_id = $creative->{AdCreativeFields::ID};
$creative->delete();
$feed->delete();
$product_set->delete();
$product_catalog->delete();
// FIXME excluded from runtime
return;
$retailer_id = 'rid';
// _DOC open [ADCREATIVE_READ_DPA_PREVIEW]
// _DOC vars [creative_id, catalog_id, retailer_id:s]
// use FacebookAds\Object\AdCreative;
// use FacebookAds\Object\AdPreview;
// use FacebookAds\Object\Fields\AdCreativeFields;
// use FacebookAds\Object\Fields\AdPreviewFields;
// use FacebookAds\Object\Values\AdFormats;
// $creative = new AdCreative($creative_id);
$creative = new AdCreative($creative_id);
$preview = $creative->getAdPreviews(array(), array(AdPreviewFields::AD_FORMAT => AdFormats::DESKTOP_FEED_STANDARD, AdPreviewFields::PRODUCT_ITEM_IDS => array('catalog:' . $catalog_id . ':' . base64_encode($retailer_id))));
// _DOC close [ADCREATIVE_READ_DPA_PREVIEW]