Skip to content

Instantly share code, notes, and snippets.

Avatar
👋

Russ Savage russorat

👋
View GitHub Profile
View keyword_cleanup_reporting.js
/***********
* Collects the reporting results from all accounts
* and generates a nicely formatted email. If there
* are errors for an account, it includes those
* in the email as well since an error in one account
* won't stop the entire script.
***********/
function generateReport(results) {
var NOTIFY = ['your_email@example.com'];
var total_deleted = 0;
View keyword_cleanup_createLabelsIfNeeded.js
/***********
* Helper function to create the labels in the account
* that will be used to keep track of Keywords in limbo.
***********/
function createLabelsIfNeeded(days_in_limbo) {
for(var i = 1; i<=days_in_limbo; i++) {
var label_name = 'Deleting in '+i+' days';
if(!AdWordsApp.labels().withCondition("Name = '"+label_name+"'").get().hasNext()) {
AdWordsApp.createLabel(label_name,
'These entities will be deleted in '+i+
View update_ad_params_by_ad_groups.js
//-----------------------------------
// Update Ad Params by Ad Groups
// Version 1.0
// Created By: Russ Savage
// FreeAdWordsScripts.com
//-----------------------------------
function main() {
var SPREADSHEET_URL = "PUT SPREADSHEET URL HERE";
var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
@russorat
russorat / gist:7446125
Created Nov 13, 2013
AdWords Script to check sitelinks
View gist:7446125
function main() {
Logger.log('AdWordsApp.extensions().sitelinks() list.');
logSitelinks(AdWordsApp);
Logger.log('Campaign and AdGroup list.');
var campIter = AdWordsApp.campaigns().get();
while(campIter.hasNext()) {
var camp = campIter.next();
logSitelinks(camp);
var agIter = camp.adGroups().get();
@russorat
russorat / mcc-account-reporting.js
Created Apr 5, 2014
This script will run through all your AdWords accounts and store your data in a Google Spreadsheet.
View mcc-account-reporting.js
/********************************************************************************
* This script will run through all your AdWords accounts and store your data in
* a Google Spreadsheet.
*
* @author Russell Savage <russellsavage@gmail.com>
* @version 1.0
*
* THIS SOFTWARE IS PROVIDED BY Russell Savage ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
View AdWords_Scripts_Ad_Testing.js
/*********************************************
* Automated Creative Testing With Statistical Significance
* Version 2.1
* Changelog v2.1
*   - Fixed INVALID_PREDICATE_ENUM_VALUE
* Changelog v2.0
*   - Fixed bug in setting the correct date
*   - Script now uses a minimum visitors threshold
*        per Ad instead of AdGroup
*   - Added the ability to add the start date as a label to AdGroups
View updated_alpha_beta_kw_sync_script.js
/*******************************
* Automatically adds any new keywords in your
* Alpha campaigns as exact match negatives in
* the corresponding Beta campaign. Also handles
* pausing or removing keywords in your Alpha campaign
* and removing the corresponding negative in your Beta.
*******************************/
// Just as before, these strings will be
// used to identify your Alpha and Beta campaigns.
// This script assumes that your Alpha campaigns are
@russorat
russorat / generic_script_runner.js
Last active Apr 24, 2019
A generic AdWords script running framework.
View generic_script_runner.js
function main() {
//See http://goo.gl/KvINmD for an example spreadsheet.
var scriptConfigId = 'Your Spreadsheet Id Goes Here';
var sheet = SpreadsheetApp.openById(scriptConfigId).getActiveSheet();
var data = sheet.getRange('A:C').getValues();
for(var i in data) {
if(i == 0) { continue; }
var [description, location, classname] = data[i];
if(!location) { continue; }
Logger.log('Running "'+description+'" from location: '+location);
@russorat
russorat / Manage_Ads_Using_Excel.js
Last active Apr 24, 2019
This AdWords Script will allow you to manage your Ads or Creatives using GDrive and Excel. For more details, check out http://savageautomation.com/manage-your-creatives-using-excel/
View Manage_Ads_Using_Excel.js
/******************************************
* Manage AdWords Ads Using Excel
* Version 1.0
* 2013-09-29
* Author: Russ Savage
* SavageAutomation.com
* http://savageautomation.com/?p=121
****************************************/
var FOLDER_PATH = 'AdWordsData'; //The path where the file will be stored on GDrive
var FILE_NAME = 'creatives.csv'; //The name of the file on GDrive
View track_entity_creation_date.js
/**************************************
* Track Entity Creation Date
* Version 1.3
* Changelog v1.3
* - Updated script to handle all entities
* Changelog v1.2
*  - Fixed an issue with comparing dates
* ChangeLog v1.1
*  - Updated logic to work with larger accounts
* Created By: Russ Savage