GOOGLE ADS SCRIPTS​

NEGATIVE KEYWORD CONFLICTS

The Negative Keyword Conflicts script has been behaving strangely since the switch to the "new scripting experience". The single account version has been updated by the Google Ads Scripts team. But the admin account version has not been updated (and only exists as legacy scripts). I have therefore updated the single account version to the admin account / MCC version. How it works For a detailed explanation of how this script works, see this Google Ads Scripts page. There is only one difference: the selection of accounts is done based on customer ID, not using an account tag. It then outputs all negative conflicts (of the selected accounts) to a Google Sheet.

const CONFIG = { // URL of the spreadsheet template. // This should be a copy of https://goo.gl/M4HjaH. SPREADSHEET_URL: 'YOUR_SPREADSHEET_URL',

// Whether to output results to a copy of the above spreadsheet (true) or to // the spreadsheet directly, overwriting previous results (false). COPY_SPREADSHEET: false,

// Array of addresses to be alerted via email if conflicts are found. RECIPIENT_EMAILS: [ 'YOUR_EMAIL_HERE' ], // Client ID's of the accounts to be processed. Eg.: '123-456-7890','987-654-3210' // Leave blank to include all accounts. CLIENT_ID: [ //'YOUR_CLIENT_ID_HERE' ],

// Label on the campaigns to be processed. // Leave blank to include all campaigns. CAMPAIGN_LABEL: '',

// Limits on the number of keywords in an account the script can process. MAX_POSITIVES: 250000, MAX_NEGATIVES: 50000 };

FIND AUTO APPLIED RECOMMENDATIONS

Its task is to find changes made by Auto Applied suggestions. If it finds any changes, it sends detailed information about these changes to the specified email address. In other words, this solution provides security and certainty that Auto Applied recommendations will be under our control. This will be especially useful for agencies and freelancers who manage multiple Google Ads accounts.

// --------------------------------------- Configuration:

const EMAIL_SETTINGS = { RECIPIENT: 'YOUR EMAIL HERE', SUBJECT: 'Auto-apply Recommendations have been found.' };

const LOOKBACK_DAYS = 5; // Specify the number of days to look back (Max 30)

// --------------------------------------- End of the configuration

function main() { const dateRange = computeDateRange(LOOKBACK_DAYS); const managerAccount = AdsApp.currentAccount(); const allAccounts = AdsManagerApp.accounts();

let formattedEmailContent = ' ';

for (const account of allAccounts) { Logger.log('Checking account: ' + account.getName()); AdsManagerApp.select(account);

const reportData = fetchReportData(dateRange); const accountContent = formatReportData(reportData); if (accountContent) { Logger.log('Auto-apply Recommendations have been found in account: ' + account.getName()); } formattedEmailContent += accountContent; }

EXPORT PRODUCT DATA

You can use this script to export all product data from Google Shopping campaigns to a Google Sheet. This report can then be used as input for your product feed, for example. With the help of this product data you can view the performance per product ID. In addition, the script offers the possibility to calculate the ROI of each product on the sheet based on the costs and turnover from Google Ads.

var config = {

LOG : true, DATE_RANGE : last_n_days(30), // Edit the URL of an empty Google Sheet in here, with '/edit' at the end SPREADSHEET_URL : "", CONVERT_MICROS: true

} ////////////////////////////////////////////////////////////////////

function main() { var spreadsheet = SpreadsheetApp.openByUrl(config.SPREADSHEET_URL); var sheet = spreadsheet.getActiveSheet(); var from = config.DATE_RANGE[0]; var to = config.DATE_RANGE[1];

var report = AdsApp.report( "SELECT segments.product_item_id, metrics.clicks, metrics.impressions, metrics.ctr, metrics.conversions, metrics.conversions_from_interactions_rate, metrics.conversions_value, metrics.cost_micros " + "FROM shopping_performance_view " + "WHERE metrics.impressions > 0 " + "AND segments.date BETWEEN '" + config.DATE_RANGE.split(',')[0] + "' AND '" + config.DATE_RANGE.split(',')[1] + "'"); report.exportToSheet(sheet); if(config.LOG === true){

Contact Us

We are always at your side to develop your projects, do not hesitate to contact us.