How To Dynamically Insert Affiliate Links or Track Referrals With Aweber

If you are looking to build an email list, and want to be able to use custom variables in the emails that you send out, then this guide is for you. Here are some example use cases:

  • Tag subscribers to affiliates, so that you can add their Clickbank hop ID to all your links, in all your future email broadcasts/autoresponders
  • Track total revenue based on where you acquired a subscriber. E.g. track Google Analytics variables by appending them to all future links that you email out

I chose Aweber because it is a great email marketing service that is very popular because of the advanced features that it allows.

One great feature is the fact that Aweber allows you to use custom variables, but many people don’t know or don’t use this feature. You should though, because this allows you to a lot of cool things. In this post, I’ll show you how you can automatically track who referred a subscriber to you, and insert their affiliate link in your emails. This is good to have for merchants, because you can run an email list on your sales page, and still get affiliates to wholeheartedly refer visitors to you still.


  1. PHP
  2. Aweber

To do this, you’ll need to setup a custom variable in Aweber. Let’s call it “ref”. Here’s a screenshot of where to do this in Aweber.

aweber creating a custom variable

Now that you have a custom variable, we need to use it in our opt-in forms. The problem here though, is that the form builder in Aweber doesn’t allow you to insert PHP code (which is what we require for this to work).

So just create your opt-in form as per normal, but without the ref field (you’ll see it in the form builder). Now this is where things differ: when it asks you to publish as Javascript or HTML, choose HTML. Grab that code, stick it on your website where you want it, and paste this line of code right before the </form> tag. Remember to change the words YourDefaultRefGoesHere. This will set a default ref to use, just in case the visitor got to your form without a referrer (Thanks Mike!).

Note: A cookie-version of the code has been added (Thanks to Chris’s suggestion!). What it does is to cookie visitors, and then read the cookie when they visit your page again. Instructions within the text file.

  1. See the code here (txt file)
  2. Cookie-version of code here (txt file)

Alert: The only drawback for this method is unlike the Javascript method, you won’t be able to track impressions on your form. The benefit is that EVERYONE can view a HTML form, whereas some people may turn off Javascript support in their browsers, or have a browser that does not support Javascript, so they won’t be able to see your Javascript form.

Now that the form and variable is complete, we’ll need to actually use it. The following screenshot shows you how to do so. Simply create a broadcast or followup message as per normal, but click on the “Personalize” link, and choose your custom variable, as shown.

You’ll notice 2 variants of your variable listed, and here’s what they mean. For our case, we can just use the first version, which is {!custom ref}. These are basically the only two variants that you’ll be faced with:

  • {!custom variable_name}: Whatever information is stored in the variable_name custom field
  • {!custom_fix variable_name}: Whatever information is stored in the variable_name custom field, with the first letter of each word capitalized

After this, anyone who gets referred to your page like so: YourPage.php?ref=jack will automatically have “jack” stored into the custom variable of “ref”. In future, anytime you want to dynamically insert the referring affiliate, just use {!custom ref} in your emails.

An example link will be:{!custom ref}

Viola. Now you can dynamically insert affiliate links in your emails or track referrals with Aweber! If you don’t already have Aweber, I highly recommend it because of the features and performance that it offers. The above technique is just one small feature that Aweber offers – think about Geo-targeting, or split-testing…just some more of the advanced features that Aweber offers.

Update: This works if you’re a Clickbank affiliate as well. Just change “ref” to “hop”, and you can use the following URL structure:

http://{!custom hop}

Now your affiliates who refer visitors to your email list can continue earning their rightful commissions!

Similar Posts:

Alvin Poh lives in Singapore, and is interested in marketing, techy stuff, and likes to just figure out how the two can work with each other. He can also be found on Google+.

42 comments On How To Dynamically Insert Affiliate Links or Track Referrals With Aweber

  • you are the shit..thanks alot for the awesome info….

  • Bro! whats up man? Long time. I'm so glad I found your blog while looking for a solution to my desired dynamic aweber setup 😉 Let's catch up, get me on FB

  • Hi, this is an awesome post! I was trying to figure out how to do this for Clickbank hop codes and Aweber for ages.

    I’ve stumbled upon a problem with your code that I’m just not knowledgeable enough to fix right now though. If there is no hoplink, then the value recorded by Aweber is null, so when you email out your hoplinks via Aweber some of then will be which is an invalid URL.

    Is there a way to set a default hoplink (like NONE) in the PHP instead of null?

    Thanks, Mike.

  • ah, good catch. there is a way actually, and i’ve updated the code with the changes (the form code that you have to put on your page). this will allow you to default to a certain hoplink when the referrer is null. Just look for the part that says YourDefaultRefGoesHere and change that to the default ref that you want 🙂

  • Hi Alvin,

    Thanks for the quick response!

    Unfortunately, I can’t get your new code to work. At first I thought it was because of the quote symbols in the php code, but even after changing the “s to ‘s, my server just shows a blank page. 🙁

    Any ideas?

    Thanks, Mike.

  • Thank you! I’ve been searching for a solution for this for AGES.

  • Hi alvin I used the code exactly as you said but when i put in the {!custom ref} into my emails the value that it uses is a load of php code!

    This leads me to believe that the code is wrong somewhere.

    Do you have any ideas?

    Many Thanks


    • From what you described, I’d say you’re using the code on a HTML page. Use a PHP file instead to contain your form and you should be all set.

  • Great advice alvin i will try this. But how do I point to the php file from my html page?

    Ie what do I put into my html page to activate the php file.

    Many Thanks for your response alvin!


  • Hi Alvin,
    Thanks for the code. Before I use it, does this violate aweber’s terms of service. Here’s what they said: “Submitting subscribers to AWeber via a server-side script (PHP, ASP, ColdFusion, etc.) is not permitted. ”

    Since this is using a php code, is this in violation?


    • Plenty of people use server scripts. Even the wordpress blog here is on PHP. The key is submitting subscribers. They don’t want you to submit subscribers without their explicit consent (which you can do with scripts). Tracking referrals is perfectly fine.

  • im struggling from last few days to achieve the same with Aweber and my capture pages but now working, it’s taking the default value only
    plz guide , thanks in advance

  • @Devendra What’s the default value?

  • in Aweber custom field always stored value i replace on “YourDefaultRefGoesHere” but it’s not capturing the actual Affilaite id from the link

  • Hi, ive applied perfect as per your instruction in Aweber and on my page [ i have replace only single value in script code i.e.=> else { echo ‘admin’; }

    Here Affiliate Link is

    Aweber not inserting Affiliate id i.e. “psminc” but it always capture “admin”

    Please Guide to resolve

  • Alvin,
    Can you give us an example of using this code on an actual php page? One where we can view the source code so I can learn how to integrate aweber’s html form into php?


    • I don’t have one handy now, but a PHP page is just like a HTML page. In fact you can save a HTML page as a PHP page directly and see no difference. E.g. index.html -> index.php

      The only difference is that PHP pages allow you to run PHP code. Just put in the aweber HTML form into your page, save the page as a PHP file, and put the code (in the textfile in my post) just before the tag and you’re all set.

  • Dear Alvin

    Thanks, Thanks a Lot again… it’s done.
    i created “ap_id” in Aweber Variable and it’s working well and capturing the Affiliate code in aweber.


  • Does the php code work for dynamic affiliate links that re-direct. For example, if some one clicks this link they get automatically redirected, say to this link: where is displayed in the address bar and the actual affiliate link is masked. Will that code still pull the “4274744” into the web form?


    • Depends on how you do the redirection, because you can have the variables posted to the new page I think (I’m not that sure about redirections). Best way is to come up with a simple PHP script that just echoes out the code in place of the actual script, and see if that works in your scenario.

  • Hi Alvin,

    When i’ve sent the “{!custom ref}” to my affiliates, they don’t see anything appearing on the custom ref portion of the url.

    Is it because i’ll have to manually add each one of their affiliate id into the aweber database one by one before it appears properly?

    Is there any way it can be done in an easier manner? generation of ids automatically when someone registers on the form.

    hope i’m making sense

  • For those affiliate marketers using Aweber, how have you satisfied the postal address requirement? Do you have a PO Box?

    • Definitely a PO box or some other form of mail forwarding address, or your office. Your residential address should never be listed IMHO.

  • Hi Alvin,
    I have just found this post and wow, it’s just what I have been looking for, (I see it was posted a while ago but I hope you can still answer this)

    I have tried all the suggestions offered but I cannot seem to get it to work. I am using it on a wordpress site which I thought was PHP based but all I get in the ref field in aweber is the code

    any ideas why that might be?


    • Sounds like this is because of WordPress. Use a plugin that allows you to run PHP and see if that helps. I think ExecPHP is one such plugin.

  • Brilliant.
    Thankyou Thankyou Thankyou.

    Works perfectly and solves a big problem for me.
    Thanks for sharing and keep up the great work.

    You are a star and I am a very hppy bunny.

    Will def refer others 🙂


  • depends very much on how you do the redirection, because you can have the variables posted to the new page i suppose (I’m not that sure about redirections). Best way is to come up with a simple PHP wording note that just echoes out the code in place of the actual script, and see if that works in your scenario.

  • Alvin,
    This code works fine as long as the visitor completes the form on the landing page. Once they leave and revisit, the ref code does not capture the id or if a default is set, it only captures the default id.

    Is there a way to add a cookie to this code?


  • This is exactly what I was looking for!

    Thanks Alvin

    Btw, and if I want to store more than one var in that cookie?and make the Get action also for that new var

    Basically how to insert more vars in that code and get them to the gaps we want..

    I know the link will be something like this:

    ?ref={!custom ref}&var2={!custom var2}&var3={!custom var3}

    but don’t know the logical tags to insert in the php code…

    Thanks in advance

    • Yup the link that you came up with is correct. Just duplicate the PHP code that I’ve provided (and remember to create the variable in aweber as well)

  • Thanks man, that cookie info was just what I was looking for!

  • Hi Alvin,

    Thanks for this post and this useful information.
    I took your code, but I’m trying to use a different way. Instead of taking an information from the URL, I want to take an information from a cookie. (Sometimes, people just short manually the URL before signup, and i’d like to avoid that)

    The affiliate ID is stored in a cookie, and can be return with a code like : or . Both of them are working, because when I put that code on a simple page, it displays the affiliate ID.

    But when it comes to put it in the “value” field, when someone signup, the custom field sent to aweber is the source code : , not the actual affiliate ID.

    Any idea of why this is happening and how to solve it ? Maybe some problem with PHP and Awebr … ?

    Thanks in advance for your help !

    • : and . are pretty new to me – i haven’t seen any PHP codes using them before. If it’s PHP though, you can access cookie variables by $_COOKIE[“varnamehere”]. So you can add it to your HTML like so:

      value=”< ?PHP echo $_COOKIE["varnamehere"]; ?>“

  • Hi, great article and tip.

    In your instructions, where you say: “So just create your opt-in form as per normal, but without the ref field (you’ll see it in the form builder).”

    Does this mean I have to remove the ref field? Can you explain this a little more?

    Thanks in advance.

  • Hey Alvin,

    Thanks for this extensive tutorial – I’m not a coder and have been trying to figure this out with my WordPress site. I add the plugin your suggested but am still getting: in the “hop” field (I’m doing this for a Clickbank product).

    Do you think this is because the php isn’t executing?

    I was confused too by the directions — if you don’t need the “cookie” solution do you just add this line:

    <input name="custom ref" value="” type=”hidden” />

    to the aweber form and nothing else on the page, i.e. no php code on the page? Thanks for any insight.

Leave a reply:

Your email address will not be published.


Sliding Sidebar