prism-ad-campaigns
Version:
Prism Ad Campaigns
65 lines (54 loc) • 1.36 kB
JavaScript
const FacebookApiModel = require('./facebook-api-model')
/**
* AdCreativeModel Class
*
* @public
* @class AdCreativeModel
*/
class AdCreativeModel extends FacebookApiModel {
/**
* AdCreativeModel constructor
*
* @public
* @constructor
* @param {Object} options - Options
*/
constructor(options = {}) {
super(Object.assign({}, {
table: 'ad_creatives',
relations: {
belongsTo: [
{
node: 'ad_campaigns',
link: {
foreignKey: 'adCampaignId',
localKey: 'adCreativeId',
},
joinTable: 'link_ad_campaigns_ad_creatives'
}
],
}
}, options))
this.adAccountId = options.adAccountId
}
/**
* Create ad creative
*
* @public
* @param {Object} pkg
*/
async create(pkg = {}, options = {}) {
const api = await this.getApi(this.adAccountId)
const facebookAdCreative = await api.createLinkAdCreative({
name: pkg.title,
headline: pkg.headline,
text: pkg.text,
imageHash: pkg.imageHash,
link: pkg.link,
urlTags: `utm_source=kyle_all_con&utm_campaign=${pkg.facebookAdSetId}`,
})
pkg.facebookAdCreativeId = facebookAdCreative.id
return FacebookApiModel.prototype.create.call(this, pkg, options)
}
}
module.exports = AdCreativeModel