Skip to content

Instantly share code, notes, and snippets.

View russorat's full-sized avatar
👋

Russ Savage russorat

👋
View GitHub Profile
@russorat
russorat / install_ngrok.md
Last active April 19, 2024 19:58 — forked from SalahHamza/install_ngrok.md
How to install ngrok on linux subsystem for windows

Keybase proof

I hereby claim:

  • I am russorat on github.
  • I am russorat (https://keybase.io/russorat) on keybase.
  • I have a public key ASDlGi0lknfBwpLdXCnUKHsvTwNllw3bWLMubz9vfwcVvwo

To claim this, I am signing this object:

@russorat
russorat / mcc-ad-disaproval-reasons.js
Created May 30, 2014 08:27
This script will run through all your AdWords accounts and look for Ads that have been disapproved
/********************************************************************************
* This script will run through all your AdWords accounts and look for Ads that
* have been disapproved
*
* @author Russell Savage <russellsavage@gmail.com>
* @version 1.0
* FreeAdWordsScripts.com
*
* THIS SOFTWARE IS PROVIDED BY Russell Savage ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
/************************************
* Store Account, Campaign, and AdGroup Level Quality Score
* Version 2.3
* ChangeLog v2.3
* - Solved #NUM! issue by filtering out -- values
* ChangeLog v2.2
* - Updated KeywordText to Criteria
* ChangeLog v2.1
* - Ignore negatives
* ChangeLog v2.0
@russorat
russorat / arris-scraper.py
Created February 20, 2020 17:18
modified version of arris-scraper.py that writes data into InfluxDB 2.0.
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
'''arris-scraper.py (c) 2019 Matthew J Ernisse <matt@going-flying.com>
All Rights Reserved.
Load the status page from an Arris/Motorola SB8200 modem, parses the
status page and loads the values into an InfluxDB database.
Redistribution and use in source and binary forms,
with or without modification, are permitted provided
@russorat
russorat / keyword_cleanup_full.js
Last active July 27, 2019 20:23
The full Keyword Cleanup Script from my SearchEngineLand.com post. Be sure to change the email on line 30. See the blog post for more details.
function main() {
var config_options = {
'default' : {
metric : 'Conversions', // This metric will be used for determining duds
threshold : 0, // Duds are less than or equal to this threshold
days_ago : 90, // The timeframe of the data to consider, days ago to yesterday
days_in_limbo : 5 // The script will warn you for this many days before deleting something
}
// If you want, you can add account specific configurations too. If an account specific config
// is not found, the default one from above is used.
@russorat
russorat / find_anomalies_script.js
Last active April 24, 2019 08:18
This is a version of the Find Anomalies in You Account script found here: http://goo.gl/IT1UcV
function Anomalies() {
/**************************************
* Find the Anomalies
* Created By: Russ Savage
* Version: 1.2
* Changelog v1.2
* - Fixed divide by 0 errors
* - Changed SIG_FIGS to DECIMAL_PLACES
* Changelog v1.1
* - Added ability to tag ad anomalies as well
/**************************************
* 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
@russorat
russorat / Manage_Ads_Using_Excel.js
Last active April 24, 2019 06:57
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/
/******************************************
* 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
@russorat
russorat / generic_script_runner.js
Last active April 24, 2019 06:56
A generic AdWords script running framework.
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);