Set Up Your Environment
- Ensure you have Node.js and npm installed on your machine. You will need these to run your scripts and manage dependencies.
- Install necessary packages such as 'axios' for API calls and 'dotenv' for managing environment variables. Use the command below:
npm install axios dotenv
Configure Environment Variables
- Create a `.env` file in the root directory of your project to keep sensitive data like your Facebook Access Token, App ID, App Secret, and Ad Account ID secure. Below is a sample format:
FACEBOOK_ACCESS_TOKEN=your_facebook_access_token
APP_ID=your_app_id
APP_SECRET=your_app_secret
AD_ACCOUNT_ID=your_ad_account_id
Set Up Facebook Marketing API
- Install the Facebook SDK for Node.js, which will help you easily interact with the Facebook Marketing API.
npm install facebook-nodejs-business-sdk
- Initialize the SDK in your project:
const bizSdk = require('facebook-nodejs-business-sdk');
const { Ad, AdCreative, LeadgenForm, Campaign } = bizSdk;
const api = bizSdk.FacebookAdsApi.init(process.env.FACEBOOK_ACCESS_TOKEN);
Create a Campaign
- Begin by creating a campaign for your Lead Ads. Note that you need to specify the 'objective' as 'LEAD\_GENERATION'.
const campaign = new Campaign({
name: 'Lead Campaign',
objective: 'LEAD_GENERATION',
status: 'PAUSED',
});
campaign.create(process.env.AD_ACCOUNT_ID).then((result) => {
console.log('Campaign created with ID:', result.id);
});
Create a LeadgenForm
- Create a lead generation form which will be associated with the ad
const leadgenForm = new LeadgenForm({
name: 'Sample Lead Form',
questions: [
{ type: 'EMAIL' },
{ type: 'FULL_NAME' }
],
privacy_policy: {
url: 'https://www.example.com/privacy'
}
});
leadgenForm.create(process.env.PAGE_ID).then((result) => {
console.log('Leadgen form created with ID:', result.id);
});
Create an Ad Creative
- Generate an ad creative using the Facebook Marketing API to specify how the ad looks.
const adCreative = new AdCreative({
name: 'Creative for Lead Ad',
object_story_spec: {
page_id: process.env.PAGE_ID,
link_data: {
image_hash: '<IMAGE_HASH>',
link: 'https://www.example.com',
message: 'Check out our new product!',
call_to_action: {
type: 'SIGN_UP',
value: { lead_gen_form_id: leadgenFormId }
}
}
}
});
adCreative.create(process.env.AD_ACCOUNT_ID).then((result) => {
console.log('Ad creative created with ID:', result.id);
});
Create an Ad
- Use the campaign ID and ad creative to set up your ad. Make sure to target your audience appropriately.
const ad = new Ad({
name: 'My Lead Ad',
adset_id: '<ADSET_ID>',
creative: { creative_id: adCreativeId },
status: 'PAUSED'
});
ad.create(process.env.AD_ACCOUNT_ID).then((result) => {
console.log('Ad created with ID:', result.id);
});
Testing and Verifying
- Enable logging to troubleshoot and verify that the requests are successfully hitting Facebook's API endpoints.
- Use Facebook's Graph API Explorer or API testing tools like Postman to validate that your configurations are correctly set up.
Deploy and Monitor
- After thoroughly testing, deploy your application to a live server environment.
- Consistently monitor the performance of your lead ads and adjust parameters as needed based on analytical insights.