July 27, 2015

Apply Filters
Apply Filters
Episode 45 - Updates on our Projects, and Campaign Tracking in Google Analytics

In this episode Pippin and I are catching up on our projects, and diving in to the topic of campaign tracking with Google Analytics.  I have been working on some updates to WP Offload S3, including a lot of work around testing and how we’re approaching it specifically.  I’ve also been doing screencasts for WP Offload S3.  Pippin has brought on some help to bring in an update for Affiliate WP, working on an update to Paypal Pro Payouts, and working on a fraud monitor for EDD.

This episode was sponsored by WP Ninjas, the creators of Ninja Demo and the highly popular Ninja Forms plugin.



This episode is sponsored by SearchWP from Jonathan Christopher.  Search WP allows you to easily search all types of content on WordPress sites, including:  ecommerce, custom fields, short code content, and even content within PDFs and other documents.  Pippin and I both use SearchWP in our documentation on both of our sites.


  • Brad
    • Working on WP Offload S3 plugin
      • Doing testing, fixing bugs
        • Added improvements for background processing
      • Decided to change testing process
        • Instead of having everyone test for bugs at once, now we will implement a more phased approach.
        • It will be a slower process but will less backtracking or retracing of steps
    • Doing some work on screencasts for
  • Pippin
    • Working on AffiliateWP 1.7 release
      • Brought in an outside contractor, which freed up some time to work on an update to AffliateWP add-on.
    • Updated PayPal Pro Payouts
      • This lets you process PayPal payouts from your WP dashboard for your affiliates.
      • First release depended on Mass Pay API for bulk payments, but PayPal quietly discontinued this feature.
        • They replaced the API with PayPal Pro, and now every business account can do mass payouts
      • Our update allows users to use the new API while still simultaneously supporting the old API
    • Building a new fraud monitor extension for EDD
      • Helps us proactively monitor and flag fraud purchases
      • We have been using it internally for over a year, but now releasing it and adding new features
        • For example, blacklisting certain IPs or countries so that they are flagged as potentially fraudulent
      • We’re testing and preparing for release in the next week or two
  • Campaign tracking with Google Analytics
    • The URL paramaters like ‘utm_’ are tracking parameters
      • They help track the source of your sales.
      • UTM stands for Urchin Traffic Monitor
    • You must tag your URLs effectively in order to measure performance with more accuracy.
    • Tag with consistency so that you can analyze the data and track progress over time
    • Avoid common mistakes
      • Tagging internal links will overwrite any previous link
      • Tags are case sensitive, so don’t change between upper and lower case
      • See Annielytics for “The Definitive Guide to Campaign Tagging in Google Analytics”

If you’re enjoying the show we sure would appreciate a Review in iTunes.  Thanks!

INTRO: Welcome to Apply Filters, the podcast all about WordPress development. Now here’s your hosts, Pippin Williamson and Brad Touesnard.

BRAD: Welcome to Episode 45. Today, Pippin and I discuss what we’ve been up to, and we try to explain Google Analytics campaign tagging. But first–

PIPPIN: This episode is sponsored by SearchWP, a turnkey search solution that turns your WordPress search into something actually valuable. This is a plugin built by Jonathan Christopher, who we had on the last episode. If you want to hear about some of his history and his business, and his work with SearchWP, give that episode a listen.

SearchWP makes it easy to instantly improve the WordPress search, as well as allow you to search e-commerce data, custom fields, short code content, even content within PDF or other documents. It also allows you to search within taxonomy terms.

We have both used it. Brad and I have both used Search WP, and we’d had fantastic results with it. Brad, how do you use it?

BRAD: We use it on the Delicious Brains site, DeliciousBrains.com, for our documentation search. One of the cool things about it is that you can limit or focus your search on just certain post types, and you can configure how things are weighted and stuff like that. For example, you could say that if there’s a match in the title, that’s worth more than if there’s a match in, say, customer fields or in the content or something like that. It’s really cool. We’ve had great success with it in our documentation.

PIPPIN: We were also using it for our documentation on the Easy Digital Downloads website. We don’t use it now only because we moved our docs offsite to integrate with our helpdesk system. But, one of the things that we found super valuable was the ability to set up multiple search engines.

For example, you can have one search engine that searches your blog posts and a different search engine — a search engine is really just a search form on the site — that searches just your documentation. Then you could have another one that searches your products, another one that searches your support forum. That was all very, very valuable to us.

BRAD: Yeah.

PIPPIN: It’s a really, really cool system.

BRAD: Yeah. That’s kind of what I meant, what I was trying to explain. We don’t have a search on our blog, but that’s definitely something that we’re going to hook up soon.

PIPPIN: Yeah. Yeah, I use it on Pippin’s Plugins as well and, at some point, I want to expand it a little bit more so that I could allow people to search just within my blog posts or search within tutorials, and so we could have separate search forms for those, as one example. A really excellent plugin from Jonathan, so definitely recommend checking it out at SearchWP.com.

All right, Brad. What have you been up to for the last two weeks?

BRAD: We’ve been working away at the WP Offload S3 plugin that has yet to be launched, so we’ve been doing some testing on it. We found some fairly significant bugs that took some time to fix.

PIPPIN: Care to elaborate on any of the bugs? I’m always curious. I’m not necessarily curious, but interested about the kinds of difficulties that people run into during development, like the bugs that you find during it that, after release, people never see. Do you have any examples that you can share? If not, that’s fine too.

BRAD: I don’t have any specific examples. It’s mostly background processing stuff, which we’ve talked about this on the show before. Background processing, you’ve done it with EDD. What was it for, again? Remind me.

PIPPIN: Our batch processing stuff?

BRAD: Yeah, the batch processing.

PIPPIN: It was something that happened in the actual background.

BRAD: Yeah, I guess your batch processing wasn’t necessarily background processing, was it?

PIPPIN: No, it was still initiated by a user.

BRAD: Right, right. No, so we have background processing. For example, let’s say you have 50,000 posts on your site. You start using WP Offload S3, and you start uploading all your media. Well, you can’t run a find and replace. Each time you upload a file to S3, you would have to go through all the content and update any links that still reference that file to your local server, update those links so that it now references the S3 URL, right?

PIPPIN: Right.

BRAD: You have to go through 50,000 posts. If you have to do that, it would take forever to upload your media because, to do a find and replace on 50,000 posts is a big operation.

PIPPIN: You trigger it in the background.

BRAD: After you’ve uploaded all your media, it batches all those in the background. Goes through all the 50,000 posts, and does a find and replace, all in the background. We just had some hang-ups with that. You can imagine how complicated that can get. We’re trying to get this to work with 50,000 posts, so that’s a complex thing because you also have to worry about timeouts and everything else.

PIPPIN: I know that’s actually an issue that Jonathan, with SearchWP, faced because, when you first install the plugin, it’s got to go index all of the content.

BRAD: Yes.

PIPPIN: It has to do that in the background.

BRAD: Yes, exactly. I really liked the way he did it. He’s got a nice, little progress bar that shows how much of the site has been indexed so far and that kind of thing.

PIPPIN: Yeah, super slick. Did you guys manage to get past that and resolve it?

BRAD: Yeah, yeah. We’re in a good spot now. We’ve also identified a problem with our testing process. Generally, what we’ve been doing is, when it’s time to do release testing, everybody gets on, like all hands on deck. Everybody starts testing at once. The problem with that is that if you end up with significant bugs, everyone is testing at once and, say, say everyone is three-quarters of the way through the testing, you find a significant bug that requires a big change to the code, and it touches a lot of people, well, then you’ve kind of got to go back and retest everything again, which is what happened recently.

What we decided is we need to do phased testing. The guys that are working on the product, like the main developers, they can do the testing, go through our spreadsheets of tests, perform those, and hopefully identify any major issues that we need to be reworked. Then we invite other guys to come onboard, one at a time, and kind of make it a more phased approach. It’ll be a little bit slower, but I think it’ll be a little bit more solid of a process going forward. You don’t have to backtrack so much, like, they guys won’t have to retest things so much, I think. That’ll be nice.

I’ve personally been working on screen casts lately, so doing the WP Offload S3 screen cast, which is quite time-consuming. I kind of forget how time-consuming it is.

PIPPIN: Yeah, nuts.

BRAD: Yeah. Especially, there were a few bugs that I kept running into, so I had to start over a few times after the bugs were fixed. Anyway, things are progressing, and we’re getting close to launch, so things are good.

PIPPIN: Well, good deal.

BRAD: How about you? What are you up to?

PIPPIN: We’ve had two main things going recently or, I guess, kind of three. Number one, we’re working on really getting Affiliate WP 1.7 finished out, which is a pretty massive release. It’s been — well, I don’t want to say it’s been in progress for a while. It’s been slated for a while, but mostly been sitting still and haven’t touched it for a while.

But, a couple of days ago, or last week, we decided to bring on an outside contractor to help do a little bit of work to move things along a little faster. Frankie Jarrett is doing a bunch of work for us right now to help push 1.7 out faster. That freed up some time for me to let me work on an update to one of our Affiliate WP add-ons.

We have an add-on called PayPal Pro Payouts that lets you process payouts from your WordPress dashboard for your affiliates through PayPal. You can go in and click on any referral commission and just say, “Pay now. Send a payment,” and it’ll go to your PayPal account and send a payment to the affiliate. Or, you can do it in bulk, and so you can say, “I want to pay all referrals from July 1 to July 15 for anybody that has more than $50 minimum amount.” You can do things like that.

Well, when this was first released, it depended upon PayPal’s mass pay API. Mass pay API is a nice and pretty simple API that PayPal has offered for a long time that allows you to generate bulk payments. It’s actually a two-part system. First, it allows you to actually do it from the API, so from another website or through a service you can generate a bulk payment. Or, from your actual PayPal account, you could upload a CSV file to send out a bulk payment as well.

Well, unfortunately, this is a feature that PayPal has discontinued, but not very publicly. It was actually kind of — they kind of did it quietly. The way that we found out that they discontinued it is people would come to us and say, “PayPal won’t enable this to my account because they say it’s not available anymore.”

We’d go in and say, “Well, yeah, it’s available. We have it on our accounts.”

Well, it turns out it’s just a feature that they’ve decided to deprecate and only give to certain people, basically. If you had an account that’s been open for a long time, you can have it. Or, if you do something like $50,000 a month in sales, you can have it. But, no one else can.

And so we kept having these customers come to us and say, “Well, I can’t use it because they won’t let me,” which was really annoying. Well, they deprecated it because they’ve replaced it with their new API, which is called PayPal Pro, not to be confused with PayPal Website Payments Pro.

Yeah. Oh, the PayPal products – so many of them. But so, the PayPal Pro API is their new rest API. It’s a natural rest API. It turns out that it includes the ability to do payouts via the API, as well as mass payouts. And, it’s available to every single business account, so you don’t have to get it approved to your account or anything like that. You just have it if you have a business account.

I did an update to our PayPal Payouts add-on that allowed just to use in the new API as well, while still simultaneously supporting the old API. It’s kind of funny because the new API actually still uses their exact and existing mass pay system. If you make a payout through the new PayPal API, in your PayPal account it shows up as a mass pay payment, just like the old system, even though it’s supposedly not using the old system, which is kind of funny.

That was a nice update that we got. The biggest thing that’s great about it is it now means that instead of maybe one in 100 people being able to send affiliate payouts through PayPal, anyone can, which is a big deal for us.

BRAD: Do you know that I cannot do mass payouts to my affiliates through PayPal because I’m in Canada?

PIPPIN: Yeah, I believe it’s a U.S. only thing.

BRAD: Yeah, it’s super annoying.

PIPPIN: Actually, no. Mass pay was U.S. only, I believe.

BRAD: Yes.

PIPPIN: But the new PayPal Payouts is not U.S. only.

BRAD: Oh! Nice!

PIPPIN: Sorry. The new PayPal Pro API. Actually, I found their documentation page that lists which countries are supported, and it’s basically every country that PayPal usually supports can also use it.

BRAD: That’s cool.

PIPPIN: Unless I read something wrong, but I’m pretty sure that’s the case.

BRAD: I couldn’t even use their CSV upload tool. I wasn’t even allowed to use that. I even contacted them about it, and they said it’s not available in Canada. But that’s cool. I’m going to have to look into that because, right now–

PIPPIN: Yeah, I’m pretty sure. I can find the doc if you want it.

BRAD: Right now, my bookkeeper is going through and manually paying our affiliates one at a time.

PIPPIN: That’s obnoxious. If you have two or three affiliates, it’s not a big deal, but if you have more than that, it starts to get annoying.

BRAD: Yeah, it’s not too bad right now. I think it’s probably a dozen a month, so it’s not a big deal.

PIPPIN: That’s not too bad.

BRAD: Yeah.

PIPPIN: The other thing that we’ve been doing, and this is much more of now it’s the team testing it. It was my main developer, Chris, working on it. We’ve been building out a new fraud monitor extension for EDD that helps us proactively monitor and flag fraud purchases that come through the system. This is both for us and for any EDD user.

We’ve actually been using it internally for about a year and a half now. It’s been awesome, but we’ve decided to build it out now and release it as an actual extension, so we’ve been building out a bunch of new features for it. Just some quick examples: Number one: It has IP white lists or IP blacklists. Kind of obvious, but if you have a known IP that’s fraudulent, you can blacklist it. The same thing if you want to blacklist certain countries, you can do that. When we say blacklist, in this case we usually mean that any purchase that comes from there is going to get automatically flagged for review. The site admin gets notified that a purchase is potentially fraudulent, so we go review it.

It also does a lot more than that now. We’ve added in options to say, okay, if you ever have a purchase that’s over this amount, flag it as fraud. If you ever have a purchase that contains more than this number of items, flag it as fraud. If you ever have a purchase using an email address that matches these particular parameters such as a large number of digits or particular domain names, flag it as potentially fraud.

We also set it up so you could do specific products. Depending on your store, you may have products that will never be purchased together. If they are ever purchased together, flag it as potentially fraud.

We sell bundles on the EDD site, and there are two bundles that people would just never purchase together. There’s no reason whatsoever because they share almost the exact same plugins, but we see them purchased from people using fraudulent credit card or stolen credit cards. And so, if we ever see those combinations, flag it as fraud.

That’s been a big project over the last three weeks or so, and we’re now kind of at the phase where we’re all testing it. We’re getting it ready for release. I expect, within the next week or two, that that’ll get pushed out.

BRAD: That’s a plugin that came out of your own need, wasn’t it?

PIPPIN: Yes, because last year we just about had our merchant accounts closed down because our fraud rates were too high.

BRAD: Right.

PIPPIN: We just decided, you know what? It’s time. Let’s go ahead and combat this and see what we can do. We built it over the course of a weekend. I’m not exaggerating if I tell you it’s probably saved us $10,000 to $20,000 since we built it, just in fraudulent charges.

BRAD: Right, right. I imagine you built it over a weekend and then iterated on it kind of over the year, made it stronger.

PIPPIN: Yeah, made a few little changes to it, and then it’s just been over the last three to four weeks that we decided to take what we had built internally and turn it into something that can be reused on any website.

BRAD: Gotcha. That’s pretty cool.

PIPPIN: Yeah, it should be. We’re pretty excited to get it pushed out. All right, well, enough of that.

Brad, let’s jump into campaign tracking with Google Analytics. Maybe start by giving us a rundown of what exactly this is for somebody who is not already familiar with it.

BRAD: Yeah. Campaign tagging, what is that, right? What we’re talking about here is we’re talking about the little URL parameters that you see in URLs sometimes. They usually start with “UTM_”. Those are tracking parameters that Google Analytics reads when that page loads.

A couple years ago, I was at MicroConf, and Annie Cushing gave an excellent talk about Google Analytics. She covered some stuff in campaign tagging. Then I went to her site and took a look at the article: The Definitive Guide to Campaign Tagging in Google Analytics. Man, my head almost exploded because I had been doing it so wrong.

Most of what we’re going to talk about here is derived from that article, so we’ll link that up in the show notes, and people can take a look for themselves. But, we’ll give kind of an overview of that article.

First of all, what you do you use it for, Pippin? What do you use campaign tagging for?

PIPPIN: Well, first, a bit of a disclaimer: I was pretty terrible with campaign tracking. I knew what it was, but I wasn’t good at actually doing it. It wasn’t until Chris Klowsowski came on board with me that we started really getting serious about it because he’s much of a data nerd than I am.

We use it for primarily tracking sales and for tracking the source of sales, where they came from. For example, we have links to some of the main products, as well as our extensions archive in the readme.txt file that’s on WordPress.org for Easy Digital Downloads. We also have a page inside of EDD, like inside the plugin on every WordPress dashboard, that shows a list of extensions. Then we also tweet about extensions. We put it on Facebook. We send out newsletters, etc. And so we use campaign tagging for tracking how each of those performs.

Just to give you a quick rundown, over the last month, so for the month of July:
· 0.16%, so not even a quarter of a percent, of sales came from our readme.txt file on WordPress.org.
· About 0.5% of our sales came through automated tweets sent whenever we published blog posts.
· 3.42% of our sales came from a notice that we display inside of people’s dashboards when they install the plugin asking if they would like to opt into anonymous data tracking. With that, we give a discount code.
· 12.7% of our sales came from the actual extensions page that’s inside of the plugin. That extensions page that’s in the dashboard of every single EDD user’s site is one of our most valuable sources of revenue, we discovered.
· Then this one, to me, is wild. In plugins.php, like the list table of plugins, you always have, like, deactivate, off their website, etc., under each plugin. Well, we also added one called “Extensions.” It turns out that that link generates 1% of our sales for this month, which to me is mind-boggling. That does better than our social stuff does, which is kind of nuts to me.

That’s what we use it for. We’re using it; we use campaign tagging to try and better analyze and understand where sales come from. Then we can also use it for tracking changes over time. Those numbers that I gave are just for July.

BRAD: How does that campaign tracker extension work? Does it use the Google Analytics API and pull in data?

PIPPIN: Right. We have an extension for EDD that, any time you generate a sale, will store the campaign data for it if that sale comes from somebody that used a URL with a campaign tag on it. It looks at the URL when they land on the page, and it stores it immediately into a session. Then, if they complete a purchase, then it will store that data. Then it allows you to go in and view reports, so you can say, “Okay. Show me the earnings for this campaign, for this time period.”

BRAD: Okay. Why do you need that then over if you have Google Analytics set up with e-commerce?

PIPPIN: You don’t need it. It’s a nice little add-on, basically.

BRAD: Right.

PIPPIN: Especially because one other thing it allows us to do is you can go in, and you can filter purchase records by campaign. We can say, “I want to see all payments that came from this campaign.” Maybe I want to export those email addresses, or I just want to look at them for whatever reason. That’s something that we can’t usually see as much in Google Analytics because we don’t have that kind of data.

BRAD: Right. Okay. I guess the next question is: What if you’re lazy, and you just don’t tag anything? What happens?

PIPPIN: Shit out of luck.

BRAD: Well, I mean, lots of people don’t tag, don’t tag their URLs, but they don’t realize why that’s bad, right? Some people don’t even look at their Google Analytics ever, right? Then it’s not a problem. But if you do want your data to be right in Google Analytics, you really should be tagging.

PIPPIN: Right. I think it’s one of those things that if campaign tagging is something you want to do, and it’s something that you’re going to use as a way to help measure success of different avenues, you need to make sure that you’re always doing it.

BRAD: Yeah. For example, if you don’t tag the links in your emails that you send out. Say you post a new blog post, and then you email your email list about that blog post and link to it. Any traffic that comes to your site from that email will be categorized or reported in Google Analytics as direct traffic, as if someone typed the URL into their address bar, which means if you keep doing that, your direct traffic is going to go up and up and up, and it’s going to be misreported. It’s going to be misrepresenting what is actually happening.

PIPPIN: Now, that being said, if you want a break down of direct traffic versus, say, traffic from Facebook, from Twitter, or from your email newsletters, that will require that you track or you tag everything. But, if you do just want to see, okay, what percentage of my sales come from this page, so I’m going to track this page, that will still give you an accurate number.

BRAD: What page are you talking about though?

PIPPIN: It doesn’t matter. My example is that we have a page inside of the EDD plugin that is installed on every single WordPress site that allows somebody to view their extensions. If we want to see what percent of our sales come from that, simply tagging the URLs in that page will still give us accurate numbers for that.

BRAD: Yes. Yes, it will. The reason you really do want to tag those links is because each one of those links is inside the dashboard. If you click on that link and there’s no tagging, let’s say, Google Analytics is going to think that that link is just coming from a site, just somebody’s site, and so it’s going to record it as a referral. Even if it’s local host, if it’s someone dev copy, it’s still going to track in Google Analytics as being referred from local host, and it’ll show up in Google Analytics as local host.

You really want to tag those because you want to group them so that you can see all the clicks coming from inside the dashboard instead of having to sort through. Okay, here’s one from local host, and here’s a referral from some guy’s site. They’ll all be tracked as referrals, which is not accurate. Those aren’t really public websites that are referring traffic to you.

PIPPIN: Right. In those cases, you don’t want those to be referrals. Even if you’re interested in the URLs that they came from, you’re right in that it’s not a referral.

BRAD: Yeah, exactly. You could do — hmm. If you were interested in the URL that it came from, you could probably store that in the content. There’s a tag called “Content,” which you can put really whatever you want in there. You could put the URL or the domain name of that site. You could put that in the content one so that you could actually see, okay, where are these things. Although, I don’t know why that information would be very valuable. How many came from a local host? Why would that be valuable, but I guess you could do it.

PIPPIN: Yep. I suspect this is something you guys have been doing a lot with your recent blogging push over the last couple of months.

BRAD: Yes. Yes, and I’ll get to that in a minute, but let’s just finish up. If you don’t tag things, what happens? Say you’re running a paid search campaign on Bing. I don’t know why you’d do that, but say you are.

If you don’t tag those ads on Bing, those get reported as organic traffic because it looks like they’re coming from Bing. It looks like it’s coming from a search engine, like a search result from Bing. That’s what it looks like to Google Analytics. Those really should be tagged as an ad campaign because you’re going to want to know if that Bing campaign is performing, which it’s probably not.

Another reason, well, I guess we already touched on this: Things that are going to get reported as a referral that you don’t want reported as a referral. You really want to tag those. For example, say you’re running a banner campaign through BuySellAds. It’s a pretty typical one.

If you don’t tag those with Google Analytics tracking URLs, those are going to get reported as referrals also. Say an ad shows up on Microsoft.com through BuySellAds. Well, Google Analytics will show that hit as coming from Microsoft.com, as if Microsoft is linking to you, not that it came from an ad. Those are just some reasons why you really do want to tag certain things.

For the Delicious Brains blog, we’ve got a campaign called Weekly Article, so weekly-article (all lower case). Every week, we publish an article. That allows us, in Google Analytics, to just see how much traffic we’re getting from that campaign, from all sources and all mediums. For example, all traffic from the email that we send out, from Twitter, from Google+, from Facebook, from ManageWP.org or wherever it’s coming from. Actually, for ManageWP.org, we probably wouldn’t tag that.

This brings me to a funny thing. You were talking about tagging the readme.txt file. We’re doing that too. We tag our readme.txt as well, but I don’t think we should be, after reading Annie’s article. I was just going through it for the purpose of this podcast, and it sounds like it’s a bad idea because that’s just a website, right?

The readme.txt is displayed on WordPress.org as a Web page, right? Any click-throughs from that link would be counted as referrals, which would be showing up as referrals. You could go into your referrals and see how many hits are coming from WordPress.org.

PIPPIN: By putting a campaign on it, suddenly we’re breaking that because now it’s not a referral.

BRAD: Exactly. It’s a campaign.

PIPPIN: Interesting. The big kicker is that apparently when you tag things manually with campaign tagging, you kind of erase some data, like some data doesn’t get through. I can’t remember what she said exactly. Oh, the URL. The URL that it comes from is no longer reported. It’s no longer sent or stored in Google Analytics.

With a referral, you can see exactly, “Oh, okay. We’re getting so many hits from this WordPress.org page, and so many from this one.” But, if you’re tagging those links, you won’t see those URLs. You’ll just see the campaign tags that you’ve set, which is interesting.

PIPPIN: That is interesting.

BRAD: I’m probably going to remove all of our tags from our readme.txt, I think, after this, or at some point anyway. I’ll just go through our blog. When we post a post on our blog, we’ve got four main channels that we promote to after that. We send out an email. We post on Twitter. We post on Google+, and we post on Facebook.

For each one of those, each one of those are a different source. For the email one, we have email marketing software as our source because that’s what campaign monitor set it to ages ago, and I don’t want to screw up our stats, so I’m sticking with that. Then for Twitter, the source is just Twitter.com and the medium is social. Then the source for Google+ is plus.google.com, and the medium for that is social as well, so then Facebook.com and social. It’s all pretty simple.

People often get these confused. The medium and source are often swapped, so the source will be social, and the medium will be Twitter.com instead. If you’re confused about those things, I definitely recommend checking out Annie’s article and just referring back to it. She clears it up. You know, she makes it very clear how it’s supposed to be.

Then another example of a campaign that we have on our blog is when we do a new release. We’ll tag that campaign as release-article (all lower case), so that we can see. I can look at the year and see how much our release articles have impacted sales or traffic to our site or a variety of things. Then I can break that down into how much is our email responsible for that, or how much is Twitter responsible for that, and that kind of stuff? That’s kind of how we break it down.

PIPPIN: How long have you been actively doing this now?

BRAD: Not very long. Doing it right, you mean? Yeah, we’ve only had this structure with this proper tagging in place for four or five weeks, I’d say. In Annie’s article, she links to a spreadsheet that she created that allows you to do the tagging properly, so you just kind of fill it in, fill the spreadsheet in. She spits out your tracking URL at the end.

I was using that for a while, and then I just kind of got sick of the repetitiveness of it. And so, I wrote a little plugin that creates a panel in WordPress, like underneath, like when you’re editing a post. It’s just underneath there. It just has input fields with the links in them with the proper tagging.

PIPPIN: Smart.

BRAD: I’ll probably release that eventually. It’s really specific for us right now though. That’s the only thing. It would take quite a bit of work to get it–

PIPPIN: Sure. We do it. For our blog posts at least, we do it all automatically through Post Promoter Pro.

BRAD: Right.

PIPPIN: Just because it has the option to append the links automatically as well.

BRAD: Right. Yeah, yeah, yeah. You have to be careful with some tools. I can’t remember how Post Promoter Pro does it, but I know Buffer does some funny business, and so don’t necessarily trust the tool. Buffer will append the campaign. The campaign for any buffered tweets, Facebook, whatever, it’s all — the campaign is Buffer. No matter what you want it to be, it’s Buffer. If you just turn on automatic campaign tracking in Buffer, it just sets it all to Buffer.

PIPPIN: That’s no good.

BRAD: Which is not exactly all that helpful, right? You have one campaign, and it’s Buffer. Yeah, you might want to rethink using that tool. You could still use Buffer. Just turn that feature off and do your own tagging. Does any of this make sense to you? Do you think you guys are doing things the right way?

PIPPIN: I think we’re doing it mostly right, now. The big thing for us is just making sure that we get it consistent. Instead of doing it sometimes, we need to do it all the time, which I think is really important for campaign tagging. If you want to do it, you need to make sure that you do it right so that you don’t have inaccurate data.

BRAD: Yeah. Annie’s advice was to make sure that you get the medium right, that you don’t screw that up because, she said, that’s the one that most people screw up and it has the biggest impact on how the reports are generated in Google Analytics. If you screw up the medium, it kind of screws up a lot.

PIPPIN: One other thing about campaign tagging is that you don’t necessarily need to be actively analyzing it right away, but you need to make sure that you have your tags in there so that, in six months, when you want to go back and look at things and say, “Okay, what was our best post? Where did the most revenue come from?” you need to have that data there. But the data is only going to be there if you start tagging.

You can start tagging everything, but not worry about really digging into reports until six months or however long you want to wait. It could be a week. It could be six months. It depends on what your traffic is like.

BRAD: Yeah. That’s a really good point. Annie tells a story of one of her clients was tagging things so poorly that they had to just scrap their Google Analytics account completely and just start from scratch because the data was so inconsistent and messed up that it was just worthless. It’s kind of important to get this stuff right.

Should we go over to the common tagging mistakes? I think they’re pretty interesting.

PIPPIN: Yeah, definitely. Now are these ones that are also from her article?

BRAD: They are in her article. I have some personal experience with some of them.

PIPPIN: Sure. Why don’t you walk us through?

BRAD: Yeah, sure. One of the ones that she says she sees a lot is tagging internal links. For example, you tag the navigation items on your own site.

PIPPIN: Guilty. I’ve done it.

BRAD: Right, right. Why not? No one has told me not to. But I’m telling you not to because Annie is telling you not to now. The reason is because, if you tag those internal links, it overwrites any previous tagging. If you came in, say, through a Twitter link that was tagged properly as Twitter, and then you click on one of the nav links that has tagging in it, that overwrites it, overwrites the Twitter stuff, so it gets reported as whatever you’ve tagged your internal link as. So, you lose. You know, bad news, anyway.

Most likely what people want when they’re tagging internal links is event tracking, Google Analytics event tracking. Look into that if you’re doing that.

The other thing that she said is medium and source get mixed up a lot. I think I mentioned this earlier. Medium should be a big bucket, for example, social, email, feed, banner, CPC. Those are all good examples of mediums, whereas source should be kind of more specific, like a location, like the location where the link is. For example, Twitter, email software, Facebook.com. Those are all good examples of sources, properly tagged sources.

Also, if you mix the case of your campaign tags, like say you use an upper case letter for the first letter–

PIPPIN: It makes them different, doesn’t it?

BRAD: Yeah. It tracks them as two separate campaigns, so you can’t do that. Well, you can, but it’s not going to be good. I’ve seen this a lot, actually, tagging links to external sites. I think I’ve done this myself in the past. If you have an external link on your site that’s going to someone else’s site, then you add your own tags to it–

PIPPIN: Which really just means that your tags are now showing in their analytics.

BRAD: Yeah, exactly! You’re basically screwing with them because any traffic you’re sending their way, you’re tagging it with some campaign that they don’t even know what’s going on with. If you want to screw with somebody, it’s probably a good way to do it. Yeah, it’s not going to help.

The other thing is missing tagging. I did this recently. In the footer of my email that was getting sent out, I had a hard coded link in my template to DeliciousBrains.com, and people were clicking on that to get to our site, and it wasn’t tracking it, so it was just tracking it as direct traffic.

PIPPIN: Right, so any sales that that email generates are totally skewed.

BRAD: Yeah. It just gets reported as sales from direct traffic as if someone typed it in.

PIPPIN: Right. Let’s just say that the email campaign generated $200 in sales.

BRAD: Yeah.

PIPPIN: Only $50 might have been actually attributed to the campaign when really all of it should have been.

BRAD: Yes, exactly. Exactly, and you will never know, right? You’ll never know that it was the email that did it. I don’t even know how I figured out that I noticed that link.

You know what was happening? That’s what it was. It was the dynamic string that was being inserted into the email. Yeah, I was inserting a custom field from the email software into it, and it was DeliciousBrains.com was the string. Then gmail and most email programs, when they detect a domain name, they’ll automatically turn it into a link. That’s what was happening. I wasn’t actually putting a link in there, but the email software was turning it into a link, and people were able to click on it and get through. How about that, right?

PIPPIN: I like the last point about campaign names being too cryptic.

BRAD: Right.

PIPPIN: I was just looking through my campaigns just before we jumped on the episode. I have some in there that are just random numbers. I have no clue what they are.

BRAD: That’s right.

PIPPIN: They’re totally worthless.

BRAD: Right, right, right. It seemed like a good idea at the time.

PIPPIN: Yeah, yeah.

BRAD: Oh, man, that’s good.

PIPPIN: It was like, “Here. I’m going to generate a random number sequence whenever I send out this email so I can identify this email.” Well, that was dumb.

BRAD: Right, right. Yeah, another thing is creating unique campaign names for each medium and source. I’m guilty of this, I think. If you create your campaign name to have, like, Facebook ad, Facebook ad March 2015, or something like that.

Making that a campaign name is pointless because, well, first of all, your medium should be probably banner, which implies ad, and your source would be whatever the banner. Like, if you’re serving the ad through BuySellAds, then it would probably be BuySellAds for your source, or something like that. I guess I just said Facebook, so the source would be Facebook.com.

Just a quick note about the source: The reason you make it Facebook.com is that it will group those sources together with any referrals that come from Facebook.com as well, right?

PIPPIN: Ah, I did not know that.

BRAD: Yeah. If someone just posts a link to your site in some group or something on Facebook, and someone clicks it, Google Analytics will tag that as the source being Facebook.com. By doing that yourself manually, you’re putting those two things together.

PIPPIN: Sure. You could drill down and say, “Okay. Show me all traffic from Facebook.com as a source.” Then, within that, you could break it down. Okay, now show me the ones that came from this campaign versus other pages on Facebook.

BRAD: Yes, exactly. Yep. You could probably even break it out and see the URLs coming from Facebook as well. Although, I don’t know if that works because of the https thing. I don’t know everything about this stuff. That’s for sure. When I was preparing for this, I was going through our ads. We do remarketing through AdRoll, and I was just checking those, and they’re wrong.

PIPPIN: Awesome.

BRAD: All the tags in there are wrong. I’m using, like, for the medium, I think I have Web as the medium, which is pretty useless because it’s banner. It’s a banner ad.

PIPPIN: It’s all of the Web.

BRAD: Yeah, exactly. One our WordPress.org links, we have Web as the medium as well, so those are wrong, as well as being probably unnecessary. Yeah, I’m still learning this stuff, and it’s kind of a journey. It’s fun though.

PIPPIN: It’s definitely something that I think I’m learning more. I’m learning more and more about, but what I’m really learning is appreciating how valuable it is. This is one of those areas of data analytics that is really cool to me, but it’s usually not something that I think about day-to-day. But, when Chris came onboard and Chris started doing a lot of this for us and getting very serious about it, I started to very easily see the value in it.

Just being able to quickly drill down and say, like, “Okay. Well, this is where this revenue comes from. This is where this comes from. This one is really weak, so we either need to nix it or we need to improve it.” Just being able to suddenly make educated decisions like that was super important.

BRAD: Yeah. If your tagging is all messed up, trying to find answers out of there is just going to be fruitless.

PIPPIN: They’re just guesses.

BRAD: Yeah, because the numbers aren’t going to be accurate. They’re going to be all over the place. Yeah. Annie is a consultant too, so I’ve considered hiring her, and I still probably will, but I just haven’t gotten to it. It’s not one of those things that is super urgent, but I’m sure she could just rip apart our Google Analytics and stuff.

Her site has amazing articles on there about how to run custom reports because the reports in Google Analytics are all just kind of basically templates. The custom reporting stuff in Google Analytics is apparently where you can glean some really valuable information. Not that I have, because I just haven’t put the time into it to go in there and create custom reports to dig into the data.

PIPPIN: Well, it’s so easy to dive into Google Analytics reporting and just go over your head so quickly.

BRAD: It’s overwhelming, right?

PIPPIN: Super overwhelming.

BRAD: I mean that’s why some people make it their full-time job because there’s so much there.


BRAD: Yeah.

PIPPIN: Cool. If anybody has any feedback, stories, or questions about campaign tagging, we’d love to hear about it. Feel free to post a comment on the episode, get in touch with us on Twitter, either @ApplyFilters or either of our personal accounts. Anything else you want to add, Brad, before we sign off here?

BRAD: No. I think that’s it. I’m sure I was wrong about a few things here, so let us know in the comments if you disagree with anything that was said or if there are any improvements we could make.

PIPPIN: Yeah, or maybe if you have any resources, other articles or guides, for helping people learn campaign tagging. Feel free to list them.

BRAD: Yeah, for sure. Thanks, everybody.

PIPPIN: All right.

Apply Filters © 2024