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]