Benefit of adding Google AdSense Matched Content to your site or blog Google AdSense Matched Content has been available on my domain for quite some time but I was hesitant to start using it. My main reason was that recommended article links tend to be spammy and annoying. However, after quite a bit of deliberation I decided to give it a go and was quite surprised with results. The main outcome was more page views on my blog and as a flow on effect, more potential advertising revenue.
Using Google DFP with AdSense on responsive pages I've been using Google DFP instead of AdSense on a number of sites that I run because it relaxes some of the AdSense rules and more importantly gives you fuller control of your ad placement. For example you can easily place AdSense ads on infinite scroll pages using DFP, which can't be done with standard AdSense code. One place that DFP falls short however is the ability to use responsive ads. This example shows how with a bit of extra code it is possible to make DFP ads somewhat more responsive friendly.
How to change the email subject line in Gmail If you use Gmail (or G Suite) and have ever received one of those emails that lets you unsubscribe by replying with a specific subject line, you were probably at a loss when looking for the spot where Gmail lets you edit the email subject. I went looking for it recently and it wasn't as straight forward to find as I thought. Here's how you do it though.
Migrating domain email from GoDaddy to Google G Suite This article will show how to move your GoDaddy hosted websites's email over to and existing Google's G Suite setup. The assumption is that there is an existing GoDaddy hosting account with the standard email services set up and that a G Suite account has been previously set up with a primary domain other than the one being moved. As an example I will be showing how I moved all email services for the rawsparts.com.au domain.
How to remove Google's logo from your G Suite applications I've had Google's G Suite set up for my domains for quite some time and think it's fantastic. However, I have been a bit annoyed with the Google logo being plastered all over the G Suite apps. Further when I tried to change this logo to something of my own, it never sized properly, so I thought that the best solution was simply to remove Google's logo.
Make the new Gmail App delete messages instead of archiving The new Gmail App has been released on iOS a couple of days ago and while going through the settings I noticed that deleted messages were set to Archive instead of being Moved to bin i.e. deleted. I think this is a bit undesirable, pressing delete should delete the message, so here's how to make sure it does!
Gmail filters ignoring the Skip Inbox option and how to fix it Recently I noticed that my Gmail (actually in my case G Suite ) has been ignoring the 'Skip Inbox' option on all of my filters. Even though I had several filters set up to move emails out of the Inbox and archive them, they kept on staying in the Inbox. Turns out there is a setting that controls this!
How to get free unlimited email addresses with your basic G Suite account In the past I've written about how to migrate from Gmail to G Suite and shared 20% discount coupons for G Suite. Now I want to show a way to create free unlimited email addresses across multiple domains and only pay for a single G Suite user. So for $5/month you can set up unlimited email addresses.
G Suite coupon for 20% discount in the first year I've been writing about G Suite for some time now and thought that I should share these discount coupons now too. By using these you'll get 20% off in your first year which means you'll only be paying $48 for your first year of using G Suite (if you have one user).
The right way to migrate from Gmail to G Suite email Now that I finally finished migrating my email to Google G Suite and learned the right and wrong ways of doing it I decided to write up the what I think is the best way that one should go about migrating from a Gmail email address to an email address hosted by G Suite. So here it is.
Removing temporary email addresses from Google G Suite user admin console As I keep moving my email over to Google G Suite I keep finding quirks in its setup and administration. One of these are the temporary emails that Google sets up on a test domain for initial testing purposes. These are all well and good but eventually you do want to get rid of them, here's how.
Fix G Suite SMTP error when adding another owned email address I've recently started moving all my email (personal and all my sites) to Google G Suite, formerly knows as Google Apps for Business. I was quite impressed with the service and was setting up all of my owned email addresses in Gmail when I hit the following error...
Resolving GAE deployment error - 'An error occured while deploying to AppEngine' I was doing some updates to my Guru JSON-RPC Tester recently and when it came to deploying my changes to AppEngine, I was presented with this very uninformative error message - "An error occured while deploying to AppEngine. See the error log for more details". That didn't give me any clue as to what the actual problem was, not to mention the obvious spelling mistake in the error message.
Why "Browser API keys cannot have referer restrictions when used with this API" error happens After Google started to force developers to use API keys I changed my code accordingly and for a while everything was working fine. It wasn't until I tested my application on a real server that I started to get the 'Browser API keys cannot have referer restrictions when used with this API.' error. It didn't take too long to figure out why this happens and how to fix it so read on to find out.
How to use Google AdSense on infinite scroll web pages If you want to use Google's AdSense on your page that has an infinite scroll set up (like I do on travelblog.ws) you could be out of luck both because AdSense T&Cs forbid more than 3 of the same ad unit being shown on the same page and secondly because the AdSense code is simply not set up for that. However this article is about getting AdSense working on infinite scroll pages so there is a way to do it, read on to find out how.
A good way of passing around latitude/longitude when using Google Places Autocomplete API Google Places Autocomplete is an excellent addition to a web application that needs to have its users enter a location. I've been using this API quite a bit on my travelblog.ws project and have written about ways of implementing it with jQuery. This article shows how I am passing around the latitude/longitude coordinates that Autocomplete returns so that I can make use of them in other parts of my code.
How to simplify a temporal data set for graphing in Google Drive Sheets When I added a bunch of fans to my TV unit I ended up collecting lots of temporal temperature change data that was quite 'noisy'. Statistics is not my strong point so I was looking at a quick and easy way of cleaning this up for plotting and settled on something that can be done in a few steps in Google Drive Sheets.
Get user's location with HTML 5 Geolocation and Google Maps Reverse Geocoding API Facebook does it, so you can do it too. I'm talking about getting the user's location when they are interacting with your website. Whereas previously you had to rely on IP address based solutions, now the modern web browsers that support HTML 5 allow you to get this information easily. Combine that with the Google Maps API and you can get some very detailed location data. Here's how.
Use Google Maps Places auto complete API without displaying a map Here's a bit of code that I'm using on a personal project of mine. This code uses the Google Maps Places API auto complete feature without having to display a map. This means you get a text input box where you can start typing in Google Maps locations and fit it into your standard HTML forms.
RevenueHits for Blog Monetisation - skip it if you have any sense of credibility I recently missed my Google AdSense payment threshold by $0.02 and that got me thinking if I really have the right ad network for my Blog, so I started to do a bit of research on what other advertising networks I can replace AdSense with. The number one name that kept on coming up was RevenueHits. There was no approval process (first warning sign perhaps?), their website was very simplistic and straight forward and setting up your ads was quite easy. It was not until after I did some trial runs with it that I discovered the true extent of how discredited this advertising network was.
Chrome and Safari keep saying ad.doubleclick.net requires a client certificate I've noticed today that ad.doubleclick.net started asking for client certificates when browsing in Safari and Chrome on OS X. For some reason mutual authentication is being performed by the doubleclick (Google) servers. I'm guessing this is a configuration issue on the Google side as there is generally no need to have the client prove their identity, especially when serving ads. That or this is some new ad tracking technology gone wrong.
Is Apple's iOS News app a Google Play Newsstand killer? Apple updated iOS to version 9.1 recently and with that brought out its new News app. I had a bit of a play around with it and must say that I do really like it. It is a built-in app so there is no additional download, it also means you can't remove it and every iOS 9.1 device will have it. This isn't necessarily a bad thing because as you will see below it boasts all the features you would want in a free news reader app and it is a serious competitor to Google's Play Newsstand. But is it a Newsstand killer?
Building a trip map with markers and paths using Google Maps Static API I've started thinking about how I will go about making a travel diary blog type web application that will be used on an upcoming round-the-world-trip and decided that I will definitely need maps on it. I wanted to do things like display the trip itinerary as a path with markers at each stop, I also wanted to show a zoomed in map of the current travel location. So I needed a way to generate these maps, the most obvious answer was Google Maps, and after a quick search I found exactly what I needed, the Google Maps Static Maps API. This makes static images of the map data, so it won't let you scroll around, etc, but with regard to my project, this is a perfect fit.
What to do when the Google Plus Moments API is no longer supported I've noticed a couple of weeks ago that my Google+ auto-posting on my blog stopped working and was giving me a 500 server error. At first I ignored this thinking it's just a temporary outage, but when it persisted for days I decided to investigate it. Turns out Google stopped supporting the Moments API and all of a sudden it stopped working too!
Share a link to a web page using a Google Plus app activity I wanted to have a way of automatically sharing my blog posts directly to my Google+ stream for a while. After starting work on this feature I quickly hit multiple road blocks. However, I was able to come to some sort of compromise with the Google+ API and can now share links for my blog articles to my Google App's feed, here's how I did it.
Example of using the Google Plus OAuth refresh token If you want to avoid prompting the user to give permission to your app every time it tries to use their Google+ account for authentication/authorisation, you probably want to use the refresh token to gain the same access.
How to configure the Google Plus API to use with your web application If you want to use the Google Plus API in your project, you have to create an app first. This is a relatively easy process and is described in the quick-start sample apps that Google provides, however here's another version with screenshots, because pictures are easier to follow than blocks of text.
Get a free 2Gb bump up to your Google Drive storage If you use Google Drive you already get a fair amount of free storage, well now Google is offering to bump up your storage by an extra 2Gb for free. The catch? You just have to check your security settings and the free storage will be awarded to you by the 28th of February 2015. This offer seems to be valid only up to the 17th of February so if you want the free extra storage, don't wait, do the security check now!
Google's sense of humour is...mathematical I was looking at the settings for the Gmail app on iOS and something caught my attention. The version number is set to 3.1415926, which is the number Pi to the first 7 digits. I've checked both my iPhone and iPad and the version number is the same on both. Very mathematical!
Adding Google search to a FlatPress theme Although FlatPress includes a search feature, I found it to be quite limited, so I had a look at adding Google search to a theme in FlatPress and found that to be quite easy to do. There is some tinkering with the FlatPress code itself, however the end result is a fully working search for FlatPress that is backed by the power of Google.
Make Google Documents Spreadsheet recognise Australian dates I use Google Documents a fair amount and recently have been really bothered by the fact that it was not recognising the dates I put in (in the Australian format) or worse it was making dates appear completely different. This was an obvious locale problem, so I went for a look around and this is how you fix it.
Generating dynamic images using HTML5 canvas with Google App Engine Not so long ago I wrote a small JSP page for my GAE based game that displayed all of the players and their basic stats plus an image representing their game map. This worked great on the development server, but on the production server no maps were being generated. Why? Because Google does not permit ImageIO classes to run on their servers. I started looking for other libraries to implement the same functionality and sadly didn't find much. So my solution was to do it in HTML5 instead.
Parents, Children and Ancestor queries in Google App Engine with JDO Fetching a child object by the ID of the parent using JDO had me stuck for a while. According to this article "reads, writes, and ancestor queries will always reflect the results of the commit" in the Google App Engine data store (HRD). After trying various things and reading lots of documentation and forum posts it all came down to how I modelled my objects. Now when I persist a parent object with an attached child, then immediately perform a query to fetch that child, the data returns as expected.
A simple JSON-RPC server with Google AppEngine I've started exploring the use of Google AppEngine for a project I'm working on. JSON was one of the technologies that was going to be used and JSON-RPC looked like an attractive way of exposing functionality without writing your own server network code.
Adding a Google compatible sitemap to FlatPress I could not find a FlatPress sitemap generator, the one that was available previously seems to be down now, so I've decided to write my own based on some of the SQL export code on the FlatPress wiki.