Skip to content

Instantly share code, notes, and snippets.

View siliconvallaeys's full-sized avatar

Frederick Vallaeys siliconvallaeys

View GitHub Profile
@siliconvallaeys
siliconvallaeys / PMax Search Terms and Categories in a Spreadsheet
Last active April 9, 2024 20:50
Add search terms and category labels from Performance Max campaigns on Google Ads to a Google spreadsheet automatically
function main() {
/******************************************
* PMax Search Terms Report
* @version: 1.0
* @authors: Frederick Vallaeys (Optmyzr)
* -------------------------------
* Install this script in your Google Ads account (not an MCC account)
* to generate a spreadsheet containing the search terms in your Performance Max campaigns.
* The spreadsheet also includes data about category labels (groupings of search terms).
* Metrics include conversion value, conversions, clicks, and impressions
@siliconvallaeys
siliconvallaeys / GPT Suggestions for RSAs with Google Ads Scripts
Last active March 28, 2024 10:04
Generate a spreadsheet of ad text assets for a Google Ads accounts and use GPT to suggest new ad variations.
/******************************************
* RSA Report
* @version: 3.0
* @authors: Naman Jindal (Optmyzr), Frederick Vallaeys (Optmyzr)
* -------------------------------
* Install this script in your Google Ads account (not an MCC account)
* to generate a Google Sheet with a list of all your responsive search ads
* and their headlines and descriptions.
* For RSAs that are not using the maximum number of allowed variations,
* this script will suggest new variations for headlines and descriptions
@siliconvallaeys
siliconvallaeys / Google Ads Placement Exclusion by Unicode Script
Last active December 12, 2023 14:42
Add placement exclusions if a Google Ads placement name contains a character in a disallowed Unicode script
/*************************************************
* Placement Exclusion
* @version: 1.0
* @author: Naman Jindal (Optmyzr)
* -------------------------------
* Visit Optmyzr.com for PPC management tools and scripts
* including Rule-based automations, Reports, Audits, Team workflows,
* and optimization suggestions.
* -------------------------------
* Note Google limits placement (content) exclusions that may
@siliconvallaeys
siliconvallaeys / Check account is serving ads.js
Last active June 29, 2023 06:58
Check Account Is Serving Ads
/*
OPTMYZR.COM - PPC AUTOMATION AND TOOLS
---------------------------------------
Script by Optmyzr Inc. 2016-2018
This script checks whether an AdWords account has gone offline, possibly due to a declined credit card.
It does this by checking if a selected metric (like impressions) has accrued some value over a chosen
number of hours. The user can choose the number of hours to look back so that they can account for
expected periods of non-activity (e.g. due to dayparting)
@siliconvallaeys
siliconvallaeys / Google Ads summarizer with GPT
Last active June 27, 2023 15:08
Get a written performance summary of a Google Ads account's campaigns using GPT
/******************************************
* RSA Report
* @version: 1.0
* @authors: Frederick Vallaeys (Optmyzr), GPT-4 (openAI)
* -------------------------------
* Install this script in your Google Ads account (not an MCC account)
* to generate a textual summary of campaign performance.
* The text is generated using GPT and uses data from the Google Ads
* account in which this script is installed
* --------------------------------
@siliconvallaeys
siliconvallaeys / GPT Connector for Google Ads scripts
Created May 30, 2023 21:28
Use the openAI API in Google Ads scripts
/******************************************
* GPT Connector for Google Ads
* @version: 1.0
* @authors: Naman Jindal (Optmyzr), Frederick Vallaeys (Optmyzr)
* -------------------------------
* This function can be used to make a call to openAI's GPT in a Google Ads script.
* Use it to send prompts to GPT that include context about a Google Ads account.
* For example, you can send campaign data from Google Ads as part of a prompt that
* generates a text string with a summary of the account changes and performance.
* --------------------------------
@siliconvallaeys
siliconvallaeys / Google RSA Report
Last active April 24, 2023 00:14
Generate a Google sheet with RSAs from your account and make it easier to find RSAs that don't use the maximum allowable number of headlines and descriptions.
/******************************************
* RSA Report
* @version: 1.0
* @author: Naman Jindal (Optmyzr)
* -------------------------------
* This script can be used to find responsive search ads
* that don't have the desired minimum number of headlines
* and descriptions.
*
* Optmyzr subscribers can use the Ad Text Optimization (RSA) tool
@siliconvallaeys
siliconvallaeys / ETA vs RSA Query Report
Last active April 14, 2023 09:42
Compare performance of RSAs vs ETAs at the query level in an ad group to help decide which ad format is driving the best results
/******************************************
* ETA vs RSA Test
* @version: 1.0
* @author: Naman Jindal (Optmyzr)
* March 2, 2020
*******************************************/
var LOOKBACK_DAYS = 30; // Number of Days to look back for stats
var EMAILS = ['example@example.com']; // Array of Emails separated by comma
var CAMPAIGN_NAME_CONTAINS = ''; // Case Insensitive
@siliconvallaeys
siliconvallaeys / Create RSAs from ETAs - Optmyzr Free Script
Created May 26, 2022 18:23
Create a Google Ads bulksheet to turn your ads into Responsive Search Ads (RSAs) more easily
/*************************************************
* RSA Suggestions
* @version: 1.2
* @author: Naman Jindal (Optmyzr)
*
* INSTRUCTIONS
* ------------
* Create a copy of the Google spreadsheet at https://docs.google.com/spreadsheets/d/1rLYAFkZDtoyB6bQPJ2eniF-Od-3YSoUXxTb4ZfglQ50/copy
* and enter the URL of your copy
* on the line immediately below that starts with
@siliconvallaeys
siliconvallaeys / set tROAS by Min Temp
Created February 15, 2022 00:11
Change a Google Ads tROAS for a campaign based on temperature
function main() {
var units = "metric"; // imperial or metric
var lat = "37.384998";
var lon = "-122.106689";
var openWeatherAPIKey = "7d5883a423a025b9bf565291147115b4"; // get your own key for the One Call API from https://openweathermap.org/api
var campaignName = 'Search: Executive Summary Report'; // put your campaign name here
var bidAdjustment = 1.5; // this is the scaling factor of the current tROAS