Email Alerts for new Referers in Google Analytics using Apps Script
It's useful to know when you have a new website referrer. Google Analytics is plagued with spam referral and you want to filter this out of reporting as quickly as possible to stop it from skewing your data. It's also helpful to be able to respond quickly to new referral traffic - maybe leave a comment or promote the new link on social media.
The script below will send you a daily email with links to any new referrers (this is GA3, there is a GA4 version later in this post).
Start a new apps script project in Google Drive and paste in the code. At the top enter the view ID that you want to monitor and the email address that should receive reports.
Choose Advanced Google Services from the Resources menu and switch on the Google Analytics API. Then click the Google API Console link and enable the Google Analytics API there as well.
Finally pick Current project's triggers from the Edit menu and trigger the main function daily at a convenient time.
This script saves known referrers in script properties. For a site with lots of traffic this may run out of space in which case you might need to switch this out and write known referrers to a sheet instead.
For Google Analytics 4 properties use the version of the script below. The setup process is the same, but you need the Google Analytics Data API instead of the Google Analytics API.
More Google Apps Script Projects
- Get an email when your security camera sees something new (Apps Script + Cloud Vision)
- Get an email if your site stops being mobile friendly (no longer available)
- Export Google Fit Daily Steps, Weight and Distance to a Google Sheet
- Animation of a year of Global Cloud Cover
- Control LIFX WiFi light bulbs from Google Apps Script
- How to backup Google Photos to Google Drive automatically after July 2019 with Apps Script
- Using the Todoist API to set a due date on the Alexa integration to-do list (with Apps Script)
- Automate Google PageSpeed Insights and Core Web Vitals Logging with Apps Script
- Using the Azure Monitor REST API from Google Apps Script
- Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
(Published to the Fediverse as: Email Alerts for new Referers in Google Analytics using Apps Script #code #googleanalytics #appsscript #gas #ga4 Apps script that will email you any new referral traffic from Google Analytics. Useful for responding to new links and referrer spam. GA3 and GA4 versions. )
Reading and Writing Office 365 Excel from a Console app using the Microsoft.Graph C# Client API
I needed a console app that reads some inputs from an online Excel workbook, does some processing and then writes back the results to a different worksheet. Because I enjoy pain I decided to use the thinly documented new Microsoft.Graph client library. The sample code below assumes that you have a work or education Office 365 subscription.
Paste the code into a new console project and then follow the instructions at the top to add the necessary NuGet packages. You'll also need to register an application at https://portal.azure.com/. You want a Native application and you'll need the Application ID and the redirect URL (just make up some non-routable URL for this). Under Required Permissions for the app you should add read and write files delegated permissions for the Microsoft Graph API.
Hope this saves you a few hours. Comment below if you need a more detailed explanation for any of the above.
Related Posts
- Download a Sharepoint File with GraphServiceClient (Microsoft Graph API)
- Using the Azure Monitor REST API from Google Apps Script
- Outlook/Office iCal feed 400 bad request error with C# WebClient
- Migrating a C# Integration from GA3 to GA4
- Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
(Published to the Fediverse as: Reading and Writing Office 365 Excel from a Console app using the Microsoft.Graph C# Client API #code #microsoft #excel #graph #office365 How to read and write data to an Office 365 Excel workbook using the Microsoft.Graph client library from a C# console application. )
Summer Solstice 2017
Summer starts now (or Winter for the Southern Hemisphere). Rendered in Catfood Earth.
(Previously, Previously, Previously, Previously)
Related Posts
- Summer Solstice 2019
- Summer Solstice 2021
- Summer Solstice 2018
- Winter Solstice 2017
- Winter Solstice 2018
(Published to the Fediverse as: Summer Solstice 2017 #code #solstice #summer #winter #earth #northern #estival The exact moment of Summer Solstice 2017 as rendered in Catfood Earth )
CodePlex Shutdown: Shapefile, Orb, StackHash and Blogger2BlogML Migration
Microsoft is finally pulling the plug on CodePlex. I've hosted various projects there over the years and have just finished migrating everything over to GitHub which looks like it just might have a future:
- blogger2blogml - Migrate blogger format blogs to BlogML.
- orb - Controller library for Ambient Orb devices.
- shapefile - parse the ESRI Shapefile format.
- stackhash - full client for downloading and debugging Windows Error Reporting (WER) crash dumps.
Related Posts
- Converting Blogger ATOM export to BlogML
- Migrating from Blogger to BlogEngine.NET
- ESRI Shapefile Reader in .NET
- Server Migration Complete
- ZoneInfo Update (tzdata for .NET)
(Published to the Fediverse as: CodePlex Shutdown: Shapefile, Orb, StackHash and Blogger2BlogML Migration #code #stackhash #codeplex #github CodePlex is gone. Shapefile, Orb, StackHash and Blogger2BlogML have been migrated to GitHib. )
Vernal Equinox 2017
Vernal Equinox 2017 happens right now, as rendered in Catfood Earth.
Related Posts
- Vernal (Spring) Equinox 2022
- Vernal (Spring) Equinox 2020
- Vernal (Spring) Equinox 2019
- Vernal (Spring) Equinox 2021
- Vernal (Spring) Equinox 2018
(Published to the Fediverse as: Vernal Equinox 2017 #code #earth #equinox #spring #autumn #vernal The exact moment of Vernal Equinox 2017 as rendered in Catfood Earth. )
Catfood Weather 2.30
Catfood Weather is a free taskbar based weather forecast app for Windows that includes a seven day forecast and severe weather alerts. It uses National Weather Service data and works for any US location (by ZIP code or latitude and longitude).
This update fixes a problem calling the National Weather Service API, so please install 2.30 if you're using a previous version of Catfood Weather. To get alerts for new releases follow the RSS Feed or sign up to the ITHCWY Newsletter.
Download Catfood Weather 2.30.
Related Posts
- Catfood Weather 2.20
- Catfood Earth
- Catfood WebCamSaver
- Catfood: WebCamSaver and PdfScan
- Improving the accuracy of the new Catfood Earth clouds layer
(Published to the Fediverse as: Catfood Weather 2.30 #code #weather Free taskbar based weather forecasts for Windows. Hover for current conditions, click for a seven day outlook and you get automatic severe weather alerts. US locations by ZIP or latitude/longitude only. )
Get an email if your site stops being mobile friendly (no longer available)
Google axed this tool today, so the script won't work any more. If you're looking for a replacement check out my Core Web Vitals script.
Google just released an API for the mobile friendly test and so I've whipped up a script to send an alert if a web page violates their guidelines. This will run the test as often as you like and send you an email if it detects a problem. Alternatively if you're not mobile friendly it will keep emailing you until you fix any problems which might be a good motivational tool.
First start a new apps script project in drive and paste in the code below:
There are three variables you need to set, urlToMonitor is the full URL of the page to test, alertEmail is your email address (or whoever needs to be pestered) and runTestKey is the API key for the service. To get this go to the Google API Console, click Enable API, search for 'Google Search Console URL Testing Tools API' and click enable. Then click the Credentials option and generate a browser key.
Once you've configured the script choose 'Current project's triggers' from the Resources menu in apps script and set up a schedule for the mobileFriendlyMonitor() function.
More Google Apps Script Projects
- Get an email when your security camera sees something new (Apps Script + Cloud Vision)
- Export Google Fit Daily Steps, Weight and Distance to a Google Sheet
- Email Alerts for new Referers in Google Analytics using Apps Script
- Animation of a year of Global Cloud Cover
- Control LIFX WiFi light bulbs from Google Apps Script
- How to backup Google Photos to Google Drive automatically after July 2019 with Apps Script
- Using the Todoist API to set a due date on the Alexa integration to-do list (with Apps Script)
- Automate Google PageSpeed Insights and Core Web Vitals Logging with Apps Script
- Using the Azure Monitor REST API from Google Apps Script
- Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
(Published to the Fediverse as: Get an email if your site stops being mobile friendly (no longer available) #code #mobile #appsscript #gas Use Google Apps Script and the Mobile Friendly Test API to constantly monitor your site for any violations. )
Winter Solstice 2016
This is the first time I've been late with a solstice or equinox post. On the 21st of December at 10:44 UTC it was the start of Winter for the Northern hemisphere, Summer down south. Rendered in Catfood Earth (back dated to the right date and time... Windows, Android).
(Previously, Previously, Previously)
Related Posts
- Winter Solstice 2017
- Winter Solstice 2018
- Winter Solstice 2019
- Winter Solstice 2014
- Winter Solstice 2015
(Published to the Fediverse as: Winter Solstice 2016 #code #earth #solstice #winter #summer #hibernal #southern The exact moment of Winter Solstice 2016 rendered in Catfood Earth. )
Enable GZIP compression for Amazon S3 hosted website in CloudFront
By default compression doesn't work in CloudFront for a website backed by an Amaxon S3 bucket.
The first step is pretty obvious - switch on compression in CloudFront:
To get to this setting open you distribution, go to the Behaviors tab and edit your behavior(s). Scroll down to the bottom and toggle Compress Objects Automatically to On. Save and drum your fingers while the distribution updates.
The less obvious piece is that CloudFront will only compress files between 1,000 and 10,000,000 bytes (as of writing this post) and it detects the filesize from the Content-Length header. What the documentation doesn't mention is that S3 does not send the Content-Length header by default and so no compression is applied.
Go to S3 and open the properties for your bucket (not for individual files). Expand Permissions and then click Edit CORS Configuration. You need to add Content-Length as an allowed header like this:
Related Posts
- Automate Google PageSpeed Insights and Core Web Vitals Logging with Apps Script
- Full Outlook Web Access on Chromebook
- Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
- Using the Azure Monitor REST API from Google Apps Script
- Scanning from the ADF using WIA in C#
(Published to the Fediverse as: Enable GZIP compression for Amazon S3 hosted website in CloudFront #code #software #s3 #cloudfront #aws How to configure Amazon CloudFront to apply gzip compression for websites hosted using Amazon S3 (Simple Storage Service) )
Autumnal Equinox 2016
It's Autumn in the Northern Hemisphere, Spring down south. Rendered in Catfood Earth (Windows, Android).
(Previously, Previously, Previously)
Related Posts
- Autumnal Equinox 2014
- Autumnal Equinox 2018
- Autumnal Equinox 2015
- Autumnal Equinox 2017
- Autumnal Equinox 2019
(Published to the Fediverse as: Autumnal Equinox 2016 #code #earth #equinox #autumnal The exact moment of Autumnal Equinox 2016 as rendered in Catfood Earth )