So after investing a bunch of time and money into Adult marketing this year, especially over the last couple of months, and not being satisfied with my results so far, I decided to start a Follow Along Campaign in order to speed up my progress and increase accountability.
This will not be a typical Follow Along in terms of starting from scratch, but rather a journal of my way from being slightly profitable to, as the title says very eloquently, f*ck you money 
First of all, let me give you a quick overview of the campaigns that will be the subject of this Follow Along:
Traffic Source: TJ
Campaigns: 3 low-mid volume GEOs, 6 placements each (TopRight and either VideoA or B on Pornhub, Tube8 and YouPorn). I will refer to them as campaigns A - C.
Daily spend: $400 - $600
Spent total so far: ~$17,000
I've been running campaigns A and B since July and started campaign C last Friday. In the beginning, my record keeping was either a mess or non-existent, so here are my overall stats since I've kept track properly:



As you can see, I am running on a pretty tight margin with a couple of placements still in the red. The GEOs aren't THAT competitive, so I feel like I could do much better than that. Campaign C is still in the early testing stage, so don't get scared by all the red numbers 
My biggest problem is that my "system" still has a bunch of pretty random steps in it and I catch myself feeling like this way too many times throughout the day:

Main points that need improvement:
- so instead of "$X.XXX/day" I set the following goal:
Looking good!
Testing: at the volume you're running here, I'd strongly advise you to start experimenting with multivariate testing. The amount of additional data that you can get from it is ridiculous - and plus, it forces you to have some kind of structure to your tests.
There are a few gotchas with non-obvious interaction issues, but if you're careful about that, it's a pretty good way to shoot past the competition.
Depending on what tracking software you're using I can help you get that set up if needed.
I just wish there was a way to do it for banners...
Caurmen, what do you use for multivariate testing? I've been trying to find one that works well with either cpvlab or imobitrax... Some people seem to code it themeselves...
First congrats for creating a follow along!
So couple ideas for you.
1 - Are you changing banners often or using fresh ones? On adult on smaller geos you need to refresh banners pretty often , even every couple days.
Also using fresh images helps with the CTR since it's fresh and never seen before.
2 - Did you spy what offers your competition is running? Need to keep an eye on that because new offers that can pay more pop up very often.
3 - Play with impression caps , try to set to 1-2 views max per day to avoid a fast campaign burnout.
4 - Have you tried adding a popunder to your lander and send to cam / pua sites to maximize your revenue?
UPDATE:
Once again I managed to burn through my TJ account balance over the long weekend due to unexpectedly high ad spend, so for the better part of yesterday I didn't run any traffic.
For cases like this, I usually have my credit cards as a backup from which funds get added instantly without having to be approved. I didn't think it would take them so long though and also wanted to save currency exchange fees by sending in EUR (previously mentioned here), so I just waited it out.
That means that there is not much to report in terms of campaign performance, but that isn't the main purpose of this thread anyway.
As I mentioned in the OP, one of my main sticking points is the lack of a structured testing system, especially for banners. This is what I do on a daily basis:
Loving the follow along so far!
I would love to hear some recommendations on point 4. I've tried Crak Revenue for a Spanish traffic buy I made a while ago. Out of 4,400 clicks I sent to webcams hispanas I somehow got 0 signups. Maybe something wasn't set up right(although all clicks appeared in my dashboard), but I'd stay away from them if you can.
Also, I'm wondering how many ads you rotate to beat burnout in those smaller countries? I'm seeing some of my good ones start to drop CTR wise after a few days.
Did you outsource the dog to make the campaigns or is he your own?
Looks good

Multivariate testing: I invariably code my own. There's one well-regarded Taguichi tester out there that I might try some time - http://www.splittestaccelerator.com/sta_info.php - but I'm a little unconvinced by Taguichi as a Web method after reading a couple of articles about it, I'm also a little concerned by the speed implications, and it's hella expensive.
I would be very interested to hear from anyone using it!
My multivariate tests are usually simple ones assuming no interaction between variables (in other words, assuming that the headline, say, doesn't affect what CTA works best). I keep meaning to do some more reading on the math behind other limited-interaction calculations.
Hacking In A Multivariate Test
Multivariates are pretty simple to hack into most trackers: I've done it on Prosper and the STM Mobile Tracker, but the principle would be very similar on CPVLab.
(I'm going to get a little techie here: if you want to do this but don't have the coding skills, it's a very simple task for an outsourced coder, maybe a few hours.)
Basically, assuming that your tracker allows you to track arbitrary tokens (the C variables on Prosper), you use those variables to track your LP variations: one for headline, one for CTA, one for image, and so on.
You add some code at the top of the first tracker page (base.php in CPVLab, I think) that assigns a random value to each of those variables - overwriting the variable assignment in the GET request ($_GET['foo'] = 'a';. You need to customise each random variable to be equal to the number of variations you're testing: if you're running 4 headlines, say, you should assign a random integer between 1 and 4.
Then, in your actual landing page, you have an array of variables for the variables that you're testing, and in the body of the page, wherever one of these multivariate variables is needed, you call <?= $headline[$_GET['C1']];?>, for example.
And that's it! The tracker's already set up to track C variables or the CPVLab equivalent custom tokens, so provided you've set them before it tracks them for the first time, it'll neatly track all of your variables. And you can then go and look at the report for your custom token and see whether C1 = 1, 2, 3, 4 is converting best, then do the same for C2, and so on.
There are a couple of gotchas to this approach.
Most obviously, you've got to be careful about interactions: I pay a fair bit of attention to whether there's an obvious potential interaction (mentioning a hair color in the body text and having a model of that hair color, for example.). There's also the issue that by not considering interactions you might be losing out on a valuable combination, but the tradeoff is that you need a lot less data to test.
Less obviously, it's important not to use the same number for two different variations: when you're launching a second test, you need to use 5,6,7,8 as your variation numbers, and change your randomisation statement accordingly. And testing is very important, because if you screw up the connection between the tracker and the LP, you end up not displaying a headline at all!
Hope that's useful - let me know if you want me to explain more on any point!
Awesome explanation as always, thanks for that!
I am pretty confident with coding, so I will implement this myself, shouldn't be too hard. I will try to set it up in a way so I won't have to touch the base.php afterwards for individual tests. Once I am satisfied with it, I will of course share it here.
Really interesting points regarding the interaction issues, I'll take that into account when launching my tests.
I start rotating landers, banners, offers and in most cases kill this camp at all... Need a set of rules or "system" as well...
UPDATE:
Finally, after a pretty busy weekend, I took the time to write an update for this Follow Along.
First of all, some stats for you.
Overview:


Daily totals:
2013-10-16
Cost: $303.96
Revenue: $315.95
P/L: $11.99
ROI: 3.94%
2013-10-17
Cost: $306.69
Revenue: $422.25
P/L: $115.56
ROI: 37.68%
2013-10-18
Cost: $343.06
Revenue: $354.70
P/L: $11.64
ROI: 3.39%
2013-10-19
Cost: $286.60
Revenue: $452.85
P/L: $166.25
ROI: 58.01%
2013-10-20
Cost: $288.14
Revenue: $301.5
P/L: $13.36
ROI: 4.64%
I know, the daily totals don't add up to the overview values, but that's because of timezone differences. For the daily totals I just take my network's daily revenue minus the TJ daily spend.
While I was at least slightly profitable on all days, ROI varied drastically from day to day. I don't know if it's just variance due to the relatively small GEOs or faults in my campaigns. Most likely it's a combination of both.
What did I improve?
Looking good!
Bidding strategy: one thing that I've considered implementing in the past on platforms with rapidly varying bids is some kind of bid checker. You probably wouldn't want it to place bids for you unless you were very confident indeed in your coding, but just having something that sits there and updates you if something's happening that needs your attention shouldn't be a massive task.
keep it up mate, you'll get there 
nice stat! as far as the varying ROI, keep an eye on the different days of the week once you have a lot of data. Sometimes weekends outperform the rest of the week. Just something to keep in mind.
UPDATE:
So today I finally found some time to mess around with coding my own multivariate tester for CPV Lab.
Unfortunately, as CPV Lab is encoded with the IonCube loader, as soon as I make any changes to base.php or any other files it stops working and tells me that the file is corrupted. On the other hand, if I set the GET variables in my landing page, it won't show up in CPV Lab.
I haven't figured out a way around this and will probably just use Landing Page Genius instead.
The main problem that I have with LPG is that in order for it to work you have to set up your LP to track direct traffic (Step 2b) and use the LP URL instead of the campaign URL. That means that I would have to change all the target URLs from my ads which in turn would lead to them going under review again. Plus, one time it messed up the stats from a campaign, so I am a bit cautious about using it.
If anybody has a solution in order to make multivariate testing work for CPV Lab without having to change the overall campaign setup, I would be happy to hear about it!
Other than that, I refined my banner rotation process a bit by using naming conventions on TJ. I now use a prefix for the corresponding batch in the image name, which lets me switch between different batches pretty quickly.
Today I also received some good news from my AM, the advertiser from one of the offers is very satisfied with my quality and would like me to scale further which might also include another pay bump. Easier said than done though as mentioned in this thread, I am really looking forward to your suggestions!
To conclude, here are the stats from the last 2 days:
2013-10-21
Cost: $284.18
Revenue: $367.10
P/L: $82.92
ROI: 29.18%
2013-10-22
Cost: $251.00
Revenue: $249.55
P/L: -$1.45
ROI: -0.58%
Once again pretty up and down, but I think I found the reason for the decrease on 2013-10-22. I noticed that my volume dropped on quite a few placements, so I took a look at the bids and saw that I wasn't in top position anymore.
I increased my bids to get back into top position and today is already looking better, both volume and ROI wise.
What's up next?
Maybe you can rename base.php to baseWhatever.php and then create your own?
base.php
<?php
//My Code Here
include("baseWhatever.php");
?>
^^ Damn good idea. I think that'll work.
If IonCube's too paranoid to allow THAT, you could add a second redirect step before base.php. It'll add a little bit of load time, but hopefully not too much.

UPDATE:
First of all, here's the long overdue stats update from 2013-10-23 till 2013-10-28:


2013-10-23
Cost: $323.25
Revenue: $432.55
P/L: $109.30
ROI: 33.81%
2013-10-24
Cost: $270.84
Revenue: $288.75
P/L: $17.91
ROI: 6.61%
2013-10-25
Cost: $301.79
Revenue: $298.00
P/L: -$3.79
ROI: -1.26%
2013-10-26
Cost: $285.72
Revenue: $351.50
P/L: $65.78
ROI: 23.02%
2013-10-27
Cost: $320.90
Revenue: $268.75
P/L: -$52.15
ROI: -16.25%
2013-10-28
Cost: $315.37
Revenue: $317.00
P/L: $1.63
ROI: 0.52%
I'm still far from consistent profits, but this is partly due to me having been lazy over the last couple days when it came to working on my campaigns. I let some banners run longer than necessary, didn't rotate often enough etc.
After making a big step forward in terms of the bookkeeping mess I mentioned in my previous post, my motivation is back and I can already see way better numbers today.
What did I improve since last time?
Finally uploaded a bunch of new banners yesterday evening, looking good so far! 

I will post a full update later today.
Personally I'd always advise being ruthless about campaigns, placements, and angles. If they aren't working after a couple of rounds of optimisation, pause 'em and move on!
It does depend on how much stuff you've still got to test, how much your gut is telling you you can make it profitable, and what the potential profit is if you do manage to make it work, though.
UPDATE:


2013-10-29
Cost: $357.96
Revenue: $322.75
P/L: -$35.21
ROI: -9.84%
2013-10-30
Cost: $193.77
Revenue: $142.25
P/L: -$51.52
ROI: -26.59%
Two negative days, but as mentioned in my short previous post things are looking better with my fresh set of banners.
I also decided to stop the 2 worst placements of campaign B for now because they were continuously losing by a pretty big margin over the last couple of days.
Instead I will put more focus into the Exo campaign and maybe try out a couple more placements / traffic sources. The problem is that it's a relatively small GEO, so to make it worthwhile I am pretty much limited to high volume placements.
With the increasing amount of banners my campaigns began to turn into a big mess, so I reorganized things a bit by creating separate TJ campaigns for each batch (3 per placement). Not only does this reduce the number of banners per campaign, but it also allows me to switch between batches more easily. It was quite a hassle to set up, but I think it should improve my workflow from now on.
UPDATE:


2013-10-31:
Cost: $350.62
Revenue: $415.00
P/L: $64.38
ROI: 18.36%
2013-11-01:
Cost: $305.77
Revenue: $369.25
P/L: $63.48
ROI: 20.76%
2013-11-02:
Cost: $273.80
Revenue: $235.75
P/L: -$38.05
ROI: -13.90%
Bringing in a couple of fresh banners and rotating them on a regular basis definitely helped in terms of ROI.
Yesterday I started split testing 4 different images on my LPs which as expected caused a short term drop in conversions. Once I am able to decide on a statistically significant winner, things should look better.
Regarding these split tests: Should I decide on the winner over all placements at once or look at them separately? While in theory, looking at them separately might be the best solution, this obviously takes way more data.
I am also a bit hesitant about judging banner performance while running these tests. Should I disregard them until I've settled on a winner or just keep cutting them as usual?
Yes I agree with fjk87.
The bigger the site the better is to test banners specifically for it.
For me what worked on PH / YP never worked on Xhamster and vice - versa.
It just takes more data and more money but it's worth it.
UPDATE:
Today I learned that even if you call yourself a "professional" programmer you shouldn't make changes to your code without testing it... 
Just came home from BJJ training and after noticing that my LP CTR dropped to a whopping 9 % for the day I realized that I sent $100 worth of traffic to a LP that wouldn't load due to a syntax error... Well, everybody makes mistakes and it's still better to get them out of the way now than after adding a couple zeroes to my spend, right? 
On another note, based on my LP slit tests I was able to pick out some winning variations and kill some poor performers, so now that my LPs are working again ROI should increase. I took your advice and looked at the data separately for each placement.
To conclude, here are yesterday's stats:
2013-11-03
Cost: $303.70
Revenue: $336.75
P/L: $33.06
ROI: 10.88%
Ouch. I've been there. It's oh so easy to assume that you couldn't have made any errors, then later on to discover you skipped The Most Expensive Semicolon Ever...
Still, stats are looking solid even with the drop-out. Do those stats include your syntax error moment? If so, pretty darn solid!
Unfortunately not, the stats are from the day before. The syntax error caused a loss of ~$130, I'll write a more detailed update later today.
UPDATE:
2013-11-04
Cost: $323.97
Revenue: $193.75
P/L: -$130.22
ROI: -40.20%
2013-11-05
Cost: $336.86
Revenue: $330.50
P/L: -$6.36
ROI: -1.89%
2013-11-06
Cost: $330.58
Revenue: $235.75
P/L: -$94.83
ROI: -28.69%
The loss on 2013-11-04 is at least partly due to the aforementioned syntax error, but even after fixing everything the stats aren't looking too hot...
One reason could be my LP split test as there are still a bunch of placements that haven't received enough traffic to determine a winning variation.
It is pretty tough in terms of mindset to stomach such short-term losses in hopes of achieving a higher ROI once the test is finished, but I will do my best to not jump to any premature conclusions.
The original plan for this week was to start scaling to additional placements and traffic sources, but I think that doesn't make too much sense with my current placements losing money.
Still, there are some placements that just seem to "work" pretty much right off the bat without too much testing, so I'm wondering if my time would be better spent "brute-forcing" my way into profits by running small tests on a bunch of different placements instead of spending so much time on marginal winners / losers. What do you guys think?
Depends what the eventual potential upside is, and what your earning goals are. Are you going for 8-figures-a-year status, or just a decent lifestyle business?
Also obviously depends on what your cashflow is now - can you afford to sustain loss-making testing for long enough to optimise to a potentially huge but tricky campaign?
(IMO, lifestyle design is one of the more underused tools in the affiliate toolkit. If you're very clear on where you want to get to, you can optimise your strategy to that end and exploit opportunities others ignore).
UPDATE:
2013-11-07
Cost: $262.36
Revenue: $132.50
P/L: -$129.86
ROI: -49.50%
2013-11-08
Cost: $320.04
Revenue: $198.25
P/L: -$121.79
ROI: -38.06%
2013-11-09
Cost:$325.03
Revenue: $383.75
P/L: $58.72
ROI: 18.07%
2013-11-10
Cost: $346.07
Revenue: $363.50
P/L: $17.43
ROI: 5.04%
So after 2 more days with relatively big losses I finally got back into the green over the weekend. I didn't change anything besides killing non-performing banners and LP variations, so it will be interesting to see if performance stays this way / keeps getting better or if it was just the glory weekend traffic.
I still feel that I have hit a bit of a plateau with these campaigns and that I haven't really learned anything over the last couple weeks, so I will use the next days to reflect and decide how to continue.
While I know that my process is far from perfect, I don't see any blatant mistakes that I am making and feel pretty confident with my overall workflow.
Unfortunately, my results don't reflect that confidence in any way, so for better or worse I think I have to shift my focus a bit.
The most obvious thing that came to my mind is that over the last couple of months I ran pretty much all of my traffic to the same campaigns and spent little to no time testing completely new stuff.
Moving forward, I will allocate more time for this, which could mean testing new offers on current campaigns, new placements, completely new GEOs etc.
All of that sounds like a very sensible approach.
My preferred time split, which I originally saw on STM, is 80% scaling/pushing/developing stuff that already works, and 20% testing completely new stuff. That seems to be a pretty good balance.
UPDATE:
2013-11-11
Cost: $402.44
Revenue: $326.15
P/L: -$76.29
ROI: -18.96%
2013-11-12
Cost: $322.71
Revenue: $228.85
P/L: -$93.86
ROI: -29.09%
2013-11-13
Cost: $282.88
Revenue: $240.50
P/L: -$42.38
ROI: -14.98%
2013-11-14
Cost: $133.72
Revenue: $105.25
P/L: -$28.47
ROI: -21.29%
Over the last couple days my campaigns kept performing pretty bad. This would be cool with a fresh campaign, but I have been running these placements for quite a while now, so the room for optimization is pretty slim. I suspect that it's starting to burn out a bit, which is one more reason to invest more time into new stuff.
I started testing a different offer which seemed to be killing it in my initial tests. Unfortunately it got stopped by the network due to tracking issues, so I had to switch back to my original one. Once the offer is back there should be a lot of potential though, so I'm really looking forward to continuing my tests. (It's an exclusive, so I can't just use a different network)
I also stopped the placements that were losing the most money over the last couple weeks, which unfortunately were also the ones with the biggest volume, so my revenue dropped quite a bit.
I have to admit that I was a bit lazy this week, so I didn't set up any new placements as planned. Over the weekend I will finally take the time to set up a plan on how to continue and get back on track.
The significant drop in performance had a bigger impact on my overall drive than I would like to admit, so I will also spend some time on basic mindset work.
Much sympathy - campaign burnout is a sucky place to be.
Have a read of Finch's recent article on R&D budgeting - it covers a particularly good approach to not getting depressed about losses.