Programming Tools

Remember how strftime works in Ruby? Neither do I.

For a Good Strftime

Fancy little website to help you create the stftime syntax for Ruby.


Google Analytics Part 2 (#31)

Today I’ll explore three core parts of Google Analytics: Audience, Acquisition, Behavior.

If you are setting up GA on your website, start with yesterday’s post: Google Analytics Part 1.

Remember, this broad overview will cover GA only in large brush strokes. I hope to introduce you to the basic concepts in web traffic analytics. After understanding these four areas, you will want to move on to learn more about building Customized Reports, Conversions for e-commerce websites, different views for different stakeholders, and the newer beta features like Attribution as well.

Always Remember the Date Picker (Filter)

The first thing to keep in mind in these three areas of GA is the date selector. Remember that the date selector will always default to showing you the last 7 days through yesterday (that is, eight days ago through yesterday) whenever you open GA.

However, if you make a change to the selector, then switch tabs, you will be taken to the new tab but your date selection will persist. That is, the date you selected will be used to show you the data in the tab you switched into.

This date picker applies to all of these areas we’ll cover today: Audience, Acquisition, Behavior, and more of what you will see in GA too, so always keep the date picker in mind when switching between parts of GA.

The date picker gets a little used to. When you first disclose it, keep in mind you are picking both a starting date and ending date. What is confusing is that there’s two little boxes to the right (see below). Be sure to make sure either starting date or ending date is selected (blue), like so:

What’s confusing about this date picker is that it’s easy to confuse yourself between whether you are picking the starting date or the ending date, especially if want to change only the ending date.

You then choose a date on the calendar on the left. (After you pick the starting date, the date picker will switch to let you pick ending date.) Click Apply to apply the new date range to whatever you are currently looking at. The date selector is global to (almost) all of the views in GA (with the Home and Realtime tab as exceptions).

Click apply to choose this date range.


In the Audience section, GA is concerned with showing you who the visitors are. Here we see users, pageviews, and sessions, as well as pages per session (“pages / session”), the bounce rate, and demographics. The demographics include geographic region (GA will geolocate people by their IP address), their browser & operating system, service provider if they are mobile or desktop users and the language that is set in their browser.

All of this information is gleaned “magically” from the user’s web browser and IP address. What happens under the hood is that GA collects all of this in the user’s browser and then sends it back anonymously to GA. The anonymously part is important because GA is a tool that has an opinionated take on tracking identifiable data: don’t do it. (At the very least, don’t do it in GA.)


The acquisition tab is concerned with where the people came from:

Let’s review the fundamental terminology in traffic analysis.

Organic Search — People searched on searchn engines and then found your site through an organic search result.

Direct — People typed your URL into their web browser.

Referral — People clicked a link from another website that was not a social network and then and came via that website to your website.

Social — People clicked links or were directed from a social network (Facebook, Twitter, Instagram, LinkedIn, etc)

At first, these are the only ones you will see. Over time, if you start advertising, you will also see Display and Paid Search. Display refers to people who came from a display ad on the internet— i.e., a banner, sidebar, or paid placement. And finally Paid Search refers to an ad that you paid to the search engine to display alongside a search. (These are marked in all search engines as “Advertisement.” Sometimes they appear on the side of the search results and sometimes they appear deceptively within the search results. Either way, the merchant— you— is paying the search engine for that placement. )

Here we see a fictitious view of web traffic for a site with thousands of visitors.

Take a closer look at the pie chart that breaks this down. Remember, the data is always displayed to you using the date selection you indicate.

Here we see that during the date selected, this site had 35.7% of its traffic from Paid search advertising, 225 from organic, and so on. As you can see, you can hover over any of these in the pie chart to reveal the details of its numbers.

The Acquisition section is also where you’re going to connect your Google AdWords account if you advertise on Google. The Acquision area also has views into Social traffic and Search traffic, both essential for understanding where you leads are coming from.


On the Behavior tab GA is concerned with behavioral things they can track about your visitors; sessions per user, session duration, and flow.

The powerful Behavior Flow view shows you a chart of people first, second, third, and so on, pages. That is, where do most people start? From there, where do they go next?

Take a look at this fancy multi-dimensional charge. We see that most people start at my blog on the home page (/). From there you can see where most people go next, broken out into the different pathways people traverse my site.

Take special note of this Behavior Flow screen, which is telling you where your users most commonly start, then go to next, and so on.

This page will make more sense to you if you have a lot of visitors and relatively few pages. For example, your landing pages will always show up first, and then the “where people visit next” question can be used to understand the psychology of what people are clicking on (specifically, the calls to action on your website).

Those red lines you see to the right of green page visits indicate where people don’t continue to another page. These are called drop-offs. If you see a page with a high amount of drop-offs, think about A) whether the content on that page is repelling people from the sales proposition and/or B) if that page has calls-to-action that lead your customer to the checkout.

As you can see GA is an incredibly powerful tool. I hope you’ve enjoyed this brief introduction and that GA helps you get oriented to your site traffic.


Google Analytics Part 1 (#30)

I’m ending this month-long series with a two-part special about Google Analytics.

Today I present part one. Everyone who owns a domain name needs to know about Google Analytics (or “GA” for short). GA is a free tool that is available to pretty much every website. (The one caveat to this is large websites experience slower processing times of some data, which sometimes delays your data for about 24-48 hours. You can still see data in realtime on the Realtime tab, but other data come through after the fact. If that’s you, getting real-time in your reports can be achieved by upgrading to a paid product called “GA 360”).

When I say everyone who owns a domain I mean you: If you have a domain (or set up a new one) always remember to set up your Google Analytics right away. Google collects information about your site traffic as soon as it is installed. However, it does not know anything about the site traffic from before it was installed.

Always install Google Analytics right away on new websites and domains.

— Jason Fleetwood-Boldt

Today I’m going to cover a basic set of what might seem like boring operational stuff that you should start with up-front.

We’ll mostly be in the Settings area, but you must know these settings are available to understand what you will be looking at when you get to the analytics.

Accounts, Properties, and Views

An Account is a Google account, always associated with an email, like or any other domain name that is using G-Suite For Business (Google’s paid business tools.)

A Property is your website or app. You should create a unique property for each project, however, if you have subdomains, you have a choice of whether or not to have multiple subdomains in the same property or to create a new property for each subdomain.

A View is a “reporting view” — it says so specifically when you create one. For the purpose of this series, I will cover reporting views only lightly at the end of tomorrow’s post. A view is a special way to look at the data collected— you can set unique filters, e-commerce funnels, attribution models, and more. Views are best used by different stakeholders in your organization: i.e., the marketing team gets a separate view from the accounting team because they rely on different filters, funnels, or attribution models, or and they care about different data points. (Or, more accurately, they analyze the data differently.)

Add A Property

Your first choice is between:

• Web

• App

• App & Web

For the purpose of measuring websites, we’ll choose Website.

Next, you enter your fully qualified domain name. (That’s the domain where your web server primarily operates. If your website or server redirects users from, for example, to, then you operate at what is known as the apex of your domain. This simply means it has no subdomain and no “www.” in front of it.) If your website does operate at www., however, you ‘ll want to include it here.

What you don’t include is the http:// or https:// part. I highly recommend you use https, which requires correctly installing/configuring an SSL/TLS certificate (SSL and TLS are technologies from separate eras: the old SSL standard is being phased out because of two vulnerabilities known as Heartbleed and Poodle. Most of the time you see “SSL” on the internet, it refers to a technical concept that implements both of SSL, the old standard, and TLS, the newer standard.)

In the old days, an SSL certificate was optional if you didn’t have a checkout, collect a payment, or a login area (for example, a publish-only new site or blog.) However, in 2014, Google publicized a movement called “Always SSL” which effectively means that all websites should now have SSL/TLS certificates and that all web websites should redirect traffic from HTTP to HTTPS immediately if they visit the non-secure site. Not only should websites have SSL/TLS, but doing so actually gives you a small preferential treatment in Google’s search algorithm. (Although Google’s algorithm is proprietary and highly secretive — and changes — I’ve heard from experts the presence of https on your website counts approximately 1% of the total picture of all the things Google uses to rank your website. This number is not insignificant but also it is not monumental. That is, while everyone should put SSL/TLS on your domain the lack of it will marginally but not dramatically affect your search ranking.)

To do this, you need to configure an SSL certificate which is beyond the scope of this post.

Be sure to choose “http://” or “https://” below when creating your GA property.

Then you come to the screen where you can first get the GA tracking code & find the GA Tracking ID.

All GA tracking ids begin with UA-

They follow a format:


The Xs will always represent a number associated with the account where this property was created. The Y number will be sequential: the first will be 1, the second 2, the third 3, and so on.

You will want to copy & paste this code into your “site editor.” Look for a place where you can modify the header, also known as the content inside of the <head> </head> tag section.

If you are working with a content management system, you will want to find where you can modify the <head> tag. Look for this:


Usually, your <head> tag will already contain much content: Do not modify this. Instead, insert the GA code, copied & pasted directly out of the GA interface box above.

Verifying GA On Your Website

When you’ve made this change live on your website, you now need to install a Google Chrome extension called GA Debug.

Once you install and activate the extension, visit your website.

Look for this icon in your Chrome window:

First, hover over the GA Debug icon, but don’t click it.

If as you hover over it you see “GA Debug: OFF” (as shown above), then click on the icon once to turn it on.

When GA Debug is on, the icon changes to blue-ish, like so:

Now that it is on, open the Chrome debug console under View > Developer > Developer Tools. (Or Option-Command-I).

Once you are in the Console pane, you’re going to want to go back to your main browser window and go to your website. Then, you’ll want to quickly switch (as it loads) back into the debugging console window in the background to look for the giant “text-art” that spells out “google analytics.” It looks like this:

Look for a line that says “Initializing Google Analytics” followed by some code-like output that contains your GA property ID:

If you don’t see this, go back and confirm that the GA script has been correctly added to the <head> tag of your website and confirm that this code change has been published and is live on your website.

Before we leave the Properties settings, be sure to note some more features in the Properties area of the Admin settings:

Excluding URL Parameters

Important: If you are advertising on Facebook, you must do this

Go to Settings >View > View Settings

Under “Exclude URL Query Parameters” add fbclid (as shown below) and be sure to scroll all the way down to click Save.

When you are done with settings, click on a tab in the left column (note in the settings view it is probably collapsed like you see here.)

The Home Screen

The GA Home screen shows you a few things. It is primarily designed to show you the last 7 days of traffic, with a blue box on the right that is showing you real-time traffic. (That’s how many people are on your website right now.)

In tomorrow’s post, I’ll cover a visit, session, session duration, and other terms you’ll need to be familiar with to understand what you’re looking at. For now, scroll through this page and see some of the quick insights it gives you: traffic by day over the last 7 days, how you acquire and retain users That means, what site they come from and how well you retain them, shown by cohort. For example, a week-by-week cohort, shown here, show of the people who visited Jun 21-Jun 27, how many of them first came less than 1 week ago (that’s “Week 0”). For everyone who came 1-2 weeks ago, those people are in the “Week 1” cohort.

A month-by-month cohort is typically more useful and helps you measure the quality of your traffic over time. Specifically, it lets you see if a lot of the people who were introduced to your site in a given month keep coming back: If not, perhaps you brought bad qualities leads to the website that month. (Hopefully, you use this to correct the quality of your leads, focusing only on the highest-quality traffic that wants to re-visit your website.)

You get a quick view (and preview) of the time of day your visitors visit, the geographic breakdown by country, and a breakdown by desktop, mobile and tablet.

Conveniently, the Home screen has links which take you to other parts of GA to let you explore all of these more in-depth.

I’m going to skip over Customization because it is out of scope of this basic introduction.

Next, we’ll examine the Realtime tab.


Realtime lets you see in real-time: that is, what/where/how people are visiting right now. Remember, GA knows a lot of things: The device, the IP address, the traffic source (that is, if they came from an ad or clicked from another site), and if you hook it up, events & conversations (I will go over that in tomorrow’s post.)

So realtime is showing you a lot of the data that the rest of GA show you but only for traffic right now. This is critically important if you are on the news, or are affected by cyclical or media-related events that drive people to your site all at once.

I hope you’ve enjoyed this brief introduction to Google Analytics. Tomorrow I’ll cover some key concepts in traffic analytics and also the Audience, Acquisition, Behavior, and Conversion tabs in GA.


Down For Everyone Or Just Me (#29)

Ever try a website only to have it not load and wonder to yourself, “I wonder if this is down for everyone or if it is a problem with my network?”

Because sometimes connections drop, or your DNS is somehow holding onto a change, or you have some kind of cookie or session issue with a website, to the rescue is

The beauty of Down For Everyone Or Just Me is that it form a triangle: You are accessing DFEOJM, then DFEOJM pings the real website, and then DFEOJM responds to your request.

Most of the time, if you can actually access DFEOJM, your internet connection is working OK so, in theory, you should also be able to access the website you are trying to get to. But every now and then you run into a DNS resolution related bump (that means a problem getting your domain name or subdomain to be found on the internet DNS, which kind of like a global directory.)

This tool is like having “a friend on another network” who can test to see if the website down for them too.

Also, you might remember the attack on DynDNS on October 21, 2016, which had regional effects: people on providers in North America were unable to get DNS resolution on certain domains because of a DDOS (denial of service) attack on DynDNS, which in turn affected most websites across America. (In that example, it was an attack on the intermediary SSL certificates.) Nonetheless, if the domain is experiencing some kind of regional resolution failure as was seen on 10/21/2016, DFEOJM could be used to test DNS resolution remotely.

Tools (#28)

ViewDNS is the omnibus DNS tool for everything and everyone!

You can reverse IP (get the network name associated with the IP address)


MX Toolbox (#27)

Ahh, the art of correctly configuring you domain to send and receive email.

The MX records of your domain goven where incoming email gets delivered to — specifically, the actualy server addresses themselves. (Or possibly, fully-qualified domain names.)

MXToolbox is

Google’s MX and DMARC settings
Settings for a website with DMARC

You would use MX Toolbox to examine three things about a domain name: (1) the MX records, (2) outgoing SMTP servers configured as SPF records, (3) DKIM settings, and (4) DMARC settings.

Remember, #1 is essential for incoming mail, and #2 is where you configure your outgoing mail.

#3 is DKIM is an advanced authentication system designed for large companies and banks who would be the target of phishing attacks— like Chase, PayPal, Bank of America, etc. It prevents email spoofing. Although most domains aren’t the target of email spoofing, you should be concerned if your website or domain has some kind of login or access to financial gain (like a “send money to my bank account” feature). If it does, hackers will wan to spoof your customers into believing emails from them are actually from you. This is easy to do in the email “from” header of the message, and so it is up to the customer to recognize if an email looks fake. Using DKIM, you can proactively prevent email spoofing by configuring your DNS settings.

#4 is DMARC is a policy related to both DKIM and SPF and is also applicable to large institutions. The reason for this is that DMARC is a technology where the domain owner analysis who is trying to impersonate them and gain the trust of their customers with fake (spoof) content. This is because many of the larger corporations have multiple outgoing mail servers— like hundreds— and DMARC lets a large IT infrastructure migrate to only allowing trusted senders via a graduate process.

You would use this tool if you were a domain owner and you wanted to understand how you mail is working (or not working) at the DNS level.


What’s My Chain Cert (#26)

Ok and coming in for the home stretch we go into a Domain & DNS tools segment to close out the series

When you manually install an SSL certificate, you actually need to be concerned with probably 2 or 3 separate certificates: yours, the certificate of your issuing provider, and the certificate of their provider. It’s kind of like a pyramid scheme, but it ensures that only the trusted certificate providers are in control of what valid TLS/SSL certs are being used.

Note that if you correctly install your certificate but not the parent certs (also known as the “chain cert”), your visitors will see SSL warnings in their browsers. This happens also if one of the intermediary certificates (that is, the two above yours) has a problem (like they become expired).

As well, as this website handily explains:

To complicate matters, browsers cache chain certificates, meaning that an improperly-configured chain could work in some browsers but not others, making this an annoying problem to debug.

This site tests if your server is serving the correct certificate chain, tells you what chain you should be serving, and helps you configure your server to serve it.

Use the tool to debug and examine these.


BuiltWith (#25)

BuiltWith is a quick and dirty tool that does one thing and it does it very well: It tells you what specific technologies any given website was created with: down to the Analytics/Tracking they are using, Widgets they have installed, their back-end technologies (also known as “the stack”), the technology they are using for mobile, payment processing, and JavaScript Libraries. You also see information about Advertising, email sending providers, SSL certificates, CDNs, the document encoding, and more.

It’s kind of like peaking behind the curtain.


Google Trends (#24)

Let’s take a road trip! Google Trends lets us see what people are searching for by region, over time, and comparative searches.

Let’s see how people are searching for the term “road trip” across America.

When viewed over time, people stopped search for “road trip” right aroudn the end of March when the quarnatine for the COVID pandemic came across America.

We can also see “road trip” searches by state, and interestingly, based on this data can conclude that people from the Northwestern part of America (Washington state, Oregon, Montana) take more road trips (or at least search on Google more times than people from the Southeast.)

The top state for searches for “Road trip” is Oregon, followed by Colorado, Wyoming, Washington state, and Utah.

Google trends suggests related search terms to “road trip” helpfully giving us insights into other things we can explore.


Google Trends also has powerful comparative analytics. Take a look at these two search terms; “beach trip” (shown in red) vs. “bike trip” (shown in blue)


Facebook Audience Insights (#23)

Today I want to explore New York State, so I enter “New York” in this region selector.

This chart tells me that of all the New Yorkers Facebook can advertise to, the largest cohort is 25-34-year-olds. It also tells me that advertises to 54% women and 46% men in New York state, which is off by just 1 percentage point as compared to the whole nation.

This powerfull tool is uniquely valuable when buying Facebook ads, but has even more implications for market research and understanding target markets.

Take a look at this chart of the top categories of interest for New Yorkers:

Finally, look at this side-by-side chart of New Yorker’s relationship status and education level, and notice that Facebook has also included the change in these things.

According to this chart, people are currently getting divorced relatively a lot (the number of individuals who marked themselves as married changed by negative 13% and the number of people who are single is up by 19%). Education level also appears to be rapily changing, with a 29% uptick in people who are going to grad school.