We have a set of offers that are displayed in an iframe and sequenced, 1 through ‘n’, by the account manager who creates the path for the client. The sequence tells us the position that the offer should occupy in the iframe. The sequence should be based on a number of factors as the offers that are performing “best” should be at the top of the list and the offers that are performing worst are at the bottom of the list. We need to build an algorithm that will do this sequencing for us based on user activity. The factors we have are:
1. Time (we should give new sequences a period of time – but are unsure of yet how long that period should be).
2. Profitability – how much money the offer completion is making for us.
3. Conversion – how popular the offer is
4. Customer service – the offer should be penalized in the sequence if it has more customer service requests than do other offers (we perform the customer service and store those tickets in the RDBMS by offerID)
I have some ideas of how the algorithm should work but I don’t have nearly the mathematical experience and capacity that many of you do. I would love some input from the forum on how you would design this algorithm.
I'd start by picking a number of real-world clients (I'd say at least 20), collecting the data about them that should influence the sorting, and then determine the sequence for them "by hand". Several folks at your company should do that independently. Then you compare the different results, and the discussion about the differences should provide a starting point about which factor is more important, and how the various factors should be weighted compared to one another.
It's hard to say without knowing more of the details, but it doesn't necessarily sound as if complex math need be involved. Some rules of thumb, along with some weighting of the different factors might be sufficient.
I am sure you are right, Ulf. I know the values that need to be sorted on well. I have worked with lots of publishers on integrating these solutions. I wanted to pose the question here as I want to create a really strong optimization solution and would love feedback. But, it is an obscure question so I understand if I don't get much.
I plan to come up with a weighted scale using standard deviation of the various parameters. For instance
Then I'll order all the sequences by the greatest to lowest sum. I created a divisor for TIME_AT_POSITION so that new offers which have had no attention move up the list compared to old offers that are in the system but have small or no revenue (we have hundreds of offers but only some really perform). Then once they start being viewed by the user, they should start being optimized based on whether or not they get any revenue and move up or down the list.
In general, does my approach seem sensible (understanding that you have limited information at this point)? Thanks for any feedback you're able to give.