Tracking your affiliate links without buying a $50 spreadsheet template
I built my Diy Affiliate Marketing Journal from scratch about three years ago because every template I found was either over-engineered or so basic it was useless. The real problem isn't setting it up. It's keeping it updated when you're promoting across multiple platforms and your clicks are scattered between WordPress, YouTube descriptions, and an occasional newsletter. The core concept is simple: a single place where you log every affiliate link you promote, the traffic source, the campaign date, and the resulting earnings. Most people skip the hard part, which is making it actually useful instead of just a graveyard of dead links. Here is what my spreadsheet looks like. I use Google Sheets because it syncs across devices and I can add conditional formatting without paying for software. The columns I actually use are: Date Promoted, Platform (blog/post/video/email), Affiliate Link, Network, Commission Rate, Clicks, Conversions, Earnings, and Notes. That's it. Seven columns doing all the work.
The first thing you need to do is decide how granular you want to get with your tracking. I track at the post level, not the link level, because most of my affiliate links appear within longer content and trying to isolate individual link clicks in a blog post creates more noise than data. If you're doing product reviews or comparison pages where one link dominates the page, then tracking at the link level makes sense. For clicks, I use Google Analytics 4 with UTM parameters on every single affiliate link. I don't rely on what the affiliate network reports because their click counts are often inflated by bot traffic and self-clicks. GA4 at least gives me a baseline that I trust. The actual earnings column comes from exporting my network reports weekly and plugging them in. Yes, this means manual work. No, there is no fully automated solution that works reliably across multiple networks without some serious coding knowledge. I hit a wall around month six when I realized I had no idea which platforms were actually profitable. My blog posts were getting the most clicks but generating fewer conversions than my YouTube video descriptions. I had been tracking this incorrectly because I labeled everything as "blog content" even when it was a short-form social post. The fix was adding a sub-platform column with entries like "organic blog," "paid newsletter," "YouTube description," and "Instagram link in bio." That single change revealed that my Instagram bio link was performing three times better per click than my blog posts. I shifted resources accordingly.
One thing nobody talks about is the problem of attributing recurring commissions. If you promote a SaaS tool on a monthly subscription basis through an affiliate program, you might earn $15 in the first month and then another $5 each subsequent month as long as the customer stays. Your journal needs a column for recurring versus one-time commissions. Without this distinction, you will dramatically overestimate your earnings in months where you signed up new customers and then see a false drop-off the next month when no new signups occurred. I started flagging recurring revenue separately and now I know exactly what my true monthly income should be by summing active recurring commissions. Another common mistake is mixing up your gross earnings with your net earnings. Affiliate networks often withhold taxes depending on your location, and some programs have payout thresholds. I learned this the hard way when I thought I had earned $2,400 in a quarter and then my PayPal account only received $1,870. The spreadsheet column should reflect net earnings, not gross. If you can't get the net amount until payout day, estimate it by subtracting the typical withholding percentage and note the estimate clearly so it doesn't look like actual data. For the download piece, I don't host a premade file because everyone's affiliate setup is different. What I do offer is a CSV template structure you can import directly into Google Sheets. It has the columns I described already formatted with the right data types, conditional formatting rules set up for low-performing entries, and a few example rows filled in so you understand the rhythm of entering data. You can find it by searching for my public Google Sheets folder.
Get the Full Details

The workflow I follow takes about twelve minutes per week. Every Sunday, I export click data from GA4 for the past seven days, cross-reference it with the affiliate network reports, and fill in the Earnings column. That's the entire process. If you spend more than twenty minutes a week on this, you're doing something wrong. Usually it's because you've added columns you don't actually use or you're trying to manually count clicks instead of pulling them from analytics. A word of caution: this system only works if you are consistent. I missed three weeks one month because I was traveling, and then I couldn't figure out why my numbers looked flat even though I had published two posts during that period. Missing data creates blind spots that compound. Set a recurring calendar reminder. Even a thirty-second entry noting "no promotions this week" is better than a blank row that you later forget whether you skipped or just forgot to log. Finally, if you're running more than ten active affiliate links across four or more platforms, this spreadsheet approach starts to show its limits. At that point, you should look into tools like Volume or affiliate dashboards that aggregate network data automatically. A manual journal is fine for beginners and intermediate marketers. Once you hit serious volume, the manual entry becomes a bottleneck rather than a control mechanism.