Set Up Recurring Report for Automated Mapping and Cost Data Import
30/11/2019
- Go to Google Ads.
- From the navigation menu at the top right, click Tools.
- Under Bulk Actions, click Scripts.
- Click + to create a new script. Enter a name for the script.
- In the field that opens, paste the Facebook-provided script.
- Google Ads Manager Account (MCC)
// Comma-separated list of recipients. Comment out to not send any emails. var RECIPIENT_EMAIL = 'mapping+
+ @atlas.facebook.com, cost+ + @atlas.facebook.com'; function main() { var accountSelector = MccApp.accounts(); accountSelector.executeInParallel("processIndividualAccount"); } function processIndividualAccount() { Logger.log('Starting report generation for account - ' + AdWordsApp.currentAccount().getName()); var MILLIS_PER_DAY = 1000 * 60 * 60 * 24; //Get headers var csv = 'Date, Campaign ID, Campaign, Impressions, Clicks, Cost, Timezone'; // Generate report var report = AdWordsApp.report( 'SELECT CampaignId, CampaignName, CampaignStatus, Impressions, Clicks, AverageCpc ' + 'FROM CAMPAIGN_PERFORMANCE_REPORT ' + 'WHERE CampaignStatus=ENABLED ' + 'DURING YESTERDAY'); var display_campaigns = AdWordsApp.campaigns().withCondition("AdvertisingChannelType = DISPLAY").get(); var display_campaign_ids = {}; while (display_campaigns.hasNext()) { var display_campaign = display_campaigns.next(); display_campaign_ids[display_campaign.getName()] = display_campaign.getId(); } var rows = report.rows(); var now = new Date(); var timeZone = AdWordsApp.currentAccount().getTimeZone(); var yesterday = Utilities.formatDate(new Date(now.getTime() - MILLIS_PER_DAY), timeZone, 'MM/dd/yyyy'); var hasValidRows = false; while (rows.hasNext()) { var row = rows.next(); var campaignName = row['CampaignName']; campaignName = campaignName.replace(/,/g,''); var campaignId = row['CampaignId']; if (display_campaign_ids[campaignName] == undefined) { continue; } var clicks = row['Clicks']; var impressions = row['Impressions']; var cpc = row['AverageCpc']; cpc = cpc.replace(/,/g,''); var cost = cpc * clicks; var result = [yesterday, campaignId, campaignName, impressions, clicks, cost, timeZone]; hasValidRows = true; csv += '
' + result.join(','); } if(RECIPIENT_EMAIL && hasValidRows == true) { var reportName = 'adwords_report_' + AdWordsApp.currentAccount().getCustomerId(); var compressedCSV = Utilities.zip([Utilities.newBlob(csv,'application/octet-stream').setName(reportName + '.csv')], reportName +'.zip'); MailApp.sendEmail( RECIPIENT_EMAIL, 'Adwords display campaign performance report', '', {attachments:compressedCSV} ); } } - Google Ads Account
// Comma-separated list of recipients. Comment out to not send any emails. var RECIPIENT_EMAIL = 'mapping+
+ @atlas.facebook.com, cost+ + @atlas.facebook.com'; function main() { Logger.log('Starting report generation'); //Get headers var csv = 'Date, Campaign ID, Campaign, Impressions, Clicks, Cost, Timezone'; // Generate report var report = AdWordsApp.report( 'SELECT CampaignId, CampaignName, CampaignStatus, Impressions, Clicks, Cost ' + 'FROM CAMPAIGN_PERFORMANCE_REPORT ' + 'WHERE CampaignStatus=ENABLED ' + 'DURING YESTERDAY'); var display_campaigns = AdWordsApp.campaigns().withCondition("AdvertisingChannelType = DISPLAY").get(); var display_campaign_ids = {}; while (display_campaigns.hasNext()) { var display_campaign = display_campaigns.next(); display_campaign_ids[display_campaign.getName()] = display_campaign.getId(); } var rows = report.rows(); var MILLIS_PER_DAY = 1000 * 60 * 60 * 24; var now = new Date(); var timeZone = AdWordsApp.currentAccount().getTimeZone(); var yesterday = Utilities.formatDate(new Date(now.getTime() - MILLIS_PER_DAY), timeZone, 'MM/dd/yyyy'); var hasValidRows = false; while (rows.hasNext()) { var row = rows.next(); var campaignName = row['CampaignName']; campaignName = campaignName.replace(/,/g,''); var campaignId = row['CampaignId']; if (display_campaign_ids[campaignName] == undefined) { continue; } var clicks = row['Clicks']; var impressions = row['Impressions']; var cost = row['Cost']; cost = cost.replace(/,/g,''); var result = [yesterday, campaignId, campaignName, impressions, clicks, cost, timeZone]; hasValidRows = true; csv += '
' + result.join(','); } if(RECIPIENT_EMAIL && hasValidRows == true) { var reportName = 'adwords_report_' + AdWordsApp.currentAccount().getCustomerId(); var compressedCSV = Utilities.zip([Utilities.newBlob(csv,'application/octet-stream').setName(reportName + '.csv')], reportName +'.zip'); MailApp.sendEmail( RECIPIENT_EMAIL, 'Adwords display campaign performance report', '', {attachments:compressedCSV} ); } } - Click Preview to verify that the script is valid. If you're prompted for permission to run the script, click Authorize Now.
- Click Save, then click Close.
- Hover over the Frequency column to the right of the script you created to edit the frequency.
- Select Daily and 6:00 AM local time. Click Save.
* Nguồn: Facebook