Traffic Type Performance for Amazon Affiliate

Joined
Apr 7, 2016
Messages
337
Likes
225
Degree
1
Is there a way to gauge traffic type performance in Amazon Affiliate aside from tracking how many visitors you sent to Amazon? I want to be able to compare how well organic is converting vs, social, ppc, email, etc.

I want to run PPC but, want to be able to justify the spend.
 
I've seen some pretty sophisticated (non-reverse-engineerable) setups by some big affiliates when I was working in the advertiser end (as in ppc affiliates covering their bases by hiding the source etc from us) so I'm kinda super curious how the smarter here would set up this and if there's an obvious/way solution here I've never heard of.

It's more of a work around but prolly you could use optimizely/frosmo/similar to set up different trackers for different source/medium?

That wouldn't be as cool as it gets, I remember "a dude" that had separate random tracker/ids for each user...which obviously opens a lot of doors. If it's simple, I'd love to hear but we had some smart guys trying to figure out if it's fraud traffic and couldn't pinpoint it.
 
The problem is, even with UTM tagging and click events in Analytics, you won't know which traffic source is actually converting. You can only measure cookie drops. And it could be like the classic PPC situation in which someone optimizes for clicks and loses their ass while someone else optimizes for conversions and gets rich.

Off the top of my head I'm thinking you'd need to create specific content for each traffic source. You could then also create custom amazon tags for each so they exist in isolation as best as possible. Then you could track conversions and profit.

But at the same time there are so many variables, such as traffic bleeding around to other pages and converting, the amount of cash each source may be willing to spend based on their psychology at the moment... It'd be hard to run a true one variable test. And even then it would change on every post and campaign.

It seems like it'd be hard to pull off and really know how to optimize the campaign unless the site is getting very little traffic from other sources.

@miketpowell might be able to offer insight into the best way to manage this.
 
I've got event tracking going, so I can see which channels send the most clicks. I ran a small holiday themed Adwords test yesterday and saw a nice amount of conversions related to what I was advertising. My problem is I had similar traffic from organic that actually drove more Amazon clicks. So my hunch is that while driving less clicks, ppc may have drove more conversions.

The separate tag idea is interesting. That would work if they stayed on the landing page but, I think you're right the bleed off of traffic would mess with that.

I'm also thinking I could establish some kind of baseline for conversions. That's a challenge because the site traffic and commission continues to grow month over month.
 
Sorry just skimming so maybe I misunderstood the last 2 posts, but what I was thinking is:

Driving traffic to your site for source/medium (etc) you use parameters whatever/something_else

Then use frosmo/optimizely (prob other options out there too) or somethings else to use different amazon-id/sub-id for each source/medium across all pages for each session. Note: I haven't used either tool for something like this, but off the top of my head should be doable and would cover a lot of grund for tracking amazon conversions for last click at least.
 
I tried out an FB ad on a really popular story a few weeks ago. I was having a really hard time knowing if the paid traffic was converting or not for this same reason. Luckily, all of the traffic to this page was viral and had no incent to buy and all conversions were essentially luck based on a cookie dropping. The page was getting good CTR though and 99% of the page's hits never navigated anywhere else. In my case, I could 'guestimate' based on click events I set up in analytics, but it became super annoying.

I started thinking about it and figured the only way to track it would be if I could replace all of the amz aff-ids / links on the site based on the referrer / UTM.
 
This grabs the source from google analytics utm code in the url.
Code:
$(document).ready(function() {

var getUrlParameter = function getUrlParameter(sParam) {
    var sPageURL = decodeURIComponent(window.location.search.substring(1)),
        sURLVariables = sPageURL.split('&'),
        sParameterName,
        i;

    for (i = 0; i < sURLVariables.length; i++) {
        sParameterName = sURLVariables[i].split('=');

        if (sParameterName[0] === sParam) {
            return sParameterName[1] === undefined ? true : sParameterName[1];
        }
    }
};

var source = getUrlParameter('utm_source');
}
}
You could then swap out which link showed with the following:
Code:
    showDiv(source);
});
function showDiv(source) {
    $('.boxes').hide();
    $('#' + source).show();
}
The HTML (will replace this with the appropriately tagged amazon links):
Code:
<div class="boxes" id="Adwords">Adwords</div>
<div class="boxes" id="Email">Email</div>
<div class="boxes" id="Facebook">Facebook</div>
So a utm link that had the source Adwords (example.com?utm_source=Adwords&utm_medium=cpc&utm_campaign=Test%20Campaign) would hide the other divs with class boxes and show the one with the id Adwords.

Not perfect but it's a start. I'm not sure how to get the source to carry over to other pages, I'm guessing cookies. I have no experience with using them though.
 
If you'd rather work in php:
Code:
<?php

$campaign_source = $_GET['utm_source'];

switch ($campaign_source) {
    case "Adwords":
        echo "<a>Adwords campaign!</p>";
        break;
    case "Bing":
        echo "<p>Bing Ads campaign!</p>";
        break;
    case "Facebook":
        echo "<p>Facebook campaign!</p>";
        break;
    case "Twitter":
        echo "<p>Twitter campaign!</p>";
        break;
    case "Pinterest":
        echo "<p>Pinterest campaign!</p>";
        break;                   
    default:
        echo "<p>There is no set campaign!</p>";
}

?>

This seems much cleaner.
 
Making progress! I learned how to set cookies. This should overcome the issue Ryuzaki pointed out with users traveling to different pages. It also would work more like a 30 day first touch conversion, unless the user overwrites it with another campaign source.
Code:
<?php
//Set Campaign Source Cookie
$campaign_cookie_name = "campaignsource";
$campaign_cookie_value = $_GET['utm_source'];
setcookie($campaign_cookie_name, $campaign_cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>

Still not 100% sure how smoothly this will work, I need to test it more. The fallback is to show the original affiliate link so it shouldn't interrupt business.

I've updated what will eventually become the affiliate link code to reflect the cookie value instead of the parameter.
Code:
$campaign_source = $_COOKIE[$campaign_cookie_name];

switch ($campaign_source) {
    case "Adwords":
        echo "<p>Adwords campaign!</p>";
        break;
    case "Bing":
        echo "<p>Bing Ads campaign!</p>";
        break;
    case "Facebook":
        echo "<p>Facebook campaign!</p>";
        break;
    case "Twitter":
        echo "<p>Twitter campaign!</p>";
        break;
    case "Pinterest":
        echo "<p>Pinterest campaign!</p>";
        break;                
    default:
        echo "<p>There is no set campaign!</p>";
}
Thanks for moving this to the DevOps section. Didn't realize this was going to turn into a coding project.
 
  • Like
Reactions: Nat
Got rid of the cookie and changed it to a session variable. Runs much smoother because session variables work on the initial page load unlike the cookie. Changed the campaign_source variable to reflect this update.
Code:
// Set session variables
if(isset($_GET['utm_source']))
{
    $_SESSION["campaign_source"] = $_GET['utm_source'];
}

$campaign_source = $_SESSION["campaign_source"];

Time to create new amazon tracking IDs and start plugging it into my theme!

Thanks for the idea guys!
 
Last edited:
  • Like
Reactions: Nat
Your best bet here if you do not have access to subid's is to pre-create your Amazon tracking id's. Then use PHP to grab the referral data or utms and apply the tracking ID to all links (make sure to use long links).
 
Your best bet here if you do not have access to subid's is to pre-create your Amazon tracking id's. Then use PHP to grab the referral data or utms and apply the tracking ID to all links (make sure to use long links).

I've got it running on my staging site now. I don't have access to subids, so I did exactly that, I pre-made amazon tracking id's, set the utm source as a php session variable that passes on to the links through a switch case. I'm using the products API, otherwise, yes I would use the long links.

My links using the api look like: ?tag=XXXXXX-aw-XX. "aw" for adwords, I went with a simple two letter naming convention for all of my defined traffic types.
 
  • Like
Reactions: Nat
@ryandiscord yo, this is legit. Thanks for posting, having this a month ago would have been seriously helpful, and when I get the time to implement/try this, I think its going to open up a lot of doors.
 
No prob! if you do, let me know how it pans out. I'm excited I can really dial in my paid spend. I love playing the numbers game.
 
@ryandiscord your concept is right on but it would be way easier in pure JS and I might write it later on and put it on github. The big difference is I'd just make it one Javascript file, then have the user use a function to include the sources/tags as a hash table like AmazonTagger.addSources({ "facebook": "id-facebook", "adwords": "id-adwords" });

The big difference in what I'd do is have it handle displaying the right links by selecting all Amazon links, parse the URL, set the tag value in the query string, reassemble and set the href attribute of the link. It's really easy and could work just by dropping the same JS into old content too.
 
@dannyhw did you ever follow through with this? If so, I'd love you forever if you posted or messaged me the github link.

@ryandiscord are you still using the code you wrote? Hows it working out?
 
Works great. Only thing I'm planning on tweaking is the making the sources lowercase because the uppercase creates some weirdness in GA. Tracks perfectly in Amazon.

I'm might take a stab at a cleaner jquery version. A pure javascript version would be pretty cool though, I'm just not the best at writing at it.
 
  • Like
Reactions: Nat
Back