Hello STM,
My name is David McHale, I'm a full-time software engineer with a history of dabbling in Affiliate Marketing ($XX/day and - very few - $XXX/day campaigns on pin submits and mobile app installs). After months of researching different markets and types of offers, I've built out my own mobile content offer.
In this Follow Along I'll be sharing details and looking for feedback on both the technical implementation of the offer, as well as the marketing of the offer. We'll be starting with one offer, one geo, one carrier and tight focus on android and feature phones.
I've made the back-end very generic, and am currently negotiating network deals with carriers in four other geos, so as time goes on I'm happy to entertain other types of offers.
Offer Details:
The offer I'll be promoting in this follow along is called Football Info, and is a daily football scores and highlights service which provides real-time stats for every major league around the world, as well as daily highlight videos.
GEO: Kenya
Carrier: Safaricom
Conversion Flow: MO Flow with USSD Confirmation (users text in FOOTBALL to 20717, then press 1 to confirm their subscription)
Payout: 2.87KES ($0.0278USD) per day per subscriber
Average lifetime of subscribers: 540 days
Lifetime value of subscribers: $15.01
Target Devices: Android, Other (feature phones on Opera Mini)
Traffic Sources:
If I'm unable to get MSISDN recognition (Safaricom has indicated that I will not be able to on their network, looking at expanding my offer to Airtel as early as this upcoming Monday), it IS possible to perform a rudimentary form of conversion attribution by spawning many keywords and using a different keyword for every campaign I'm running traffic through.
Also, Airtel has no USSD confirmation, so I'm curious to see if those 630 who opened up their SMS prompt via Safaricom will actually convert without USSD getting in their way. That would completely change this campaign (and prompt me to spend XXX per day advertising in a heartbeat, which I'll document here).
That is an unbelievable retention rate - 540 days..
Regarding MSISDN recognition - no tracker can help you there, since the MSISDN is not supported in the html standard per se, imagine how it would look like if it was (We could get the numbers just by users visiting the sites); so unless the carrier forwards you that info (which also means that the user must be on carriers 3g, not on any other wifi); you cant get the MSISDN.
However.. do you really need that ?
If you look at your funnel as a whole. The click on sms is already an indication of the source quality (discounting a few sources that are plagued by bots clicking on shit); so if you consider the click on sms as a conversion (and you can track that via click events); then you can set the CPA for the click way lower than for the conversion. Eg if 1/10 users convert after the sms and if your CPA for the USSD confirm is 1 usd, then your cpa for the sms click event is 0.1 usd.
Alternatively if you are able to push some extra dynamic parameters into the sms that you show on site you could do the following setup:
1) user visits site
2) site generates some dynamic code (users session id) appended to the click2sms link eg: FOOTBALL 24292Q8982 (I think its quite simple to do this with php, tho I am not a programmer so not sure)
You create another table where you store the source parameter for each generated session, so you can look it up later
3) User clicks the cta and sends the sms with extra generated params at end..which you catch when you get the MO's
4) You lookup the session db and you see which source or whatever parameters were imprinted in the db when the user visited the site.
But I think I missed the part where you need to also forward the params to the ussd ? Not sure if you can do that ?
Hey johner911,
I was worried that would be the case regarding MSISDN recognition. Safaricom evidently supported that as well as passthrough for one-click flows up until two years ago. They're moving over to a modified system soon which bypasses the SMS step and only triggers the USSD prompt and can be called via an HTML element.
That's an interesting approach to be sure. One of the issues I've been having in both opening the SMS prompt AND sending a postback to the tracker has been many older devices with block a window.open() call to pass information in addition to the SMS call and only allow one or the other.
This leaves me with either a loss of a potential conversion (if it only opens the window), or leaves me blind to the click occurring. So far the only method I've found that's worked on every device I found is triggering a facebook pixel fbq event onClick.
That fbq event doesn't post back to my tracker and gives a rough idea of the performance of a campaign, but doesn't let me optimize on a per publisher/placement basis for campaigns. I'm trying to figure a way to pass that information back to my tracker without making the SMS href any less likely to be hit on feature phones (Opera Mini is my nemesis). I've been using click throughs on pre-homepage landers to gauge the quality of placements, but dispensing with those and improving the homepage click postback is my top priority. I think the key there may be a tracking script in a js stub which is invoked in the same manner as the fqb event (as opposed to opening a new window). I know
Your approach for pushing users session id is exactly the approach I would go for, but I'm unable to pass dynamic parameters to the USSD prompt. 
Replacing heavy header image with HTML with inlined CSS, replacing image gradients with CSS gradients, adding mobile and geo callout ("Exclusively for S60 users in Nairobi"), mobile vibration, and a sporadic timer counting user signups.
That's really interesting, I'll follow up!
@david
Regarding the page. the first thing I'd do is replace the video with a screencap.. and put the smsto cta on that also and split test that..
against the metric page views / nr of sms sent
Hey Johner911,
That's an excellent idea. The only means I have for accurately comparing that is by day-splitting the data until Safaricom or Airtel approves me for a new set of keywords to split test between. That would bump up the page speed by a little bit. With the device callout I added last night I'm dealing with a 1s delay bringing average page load up to 3.4 seconds.
Also implemented a tracking pixel and changed redirect domain which brought a small speed boost, but the pixel appears to be triggering whether the button is pressed or not. Luckily I've only driven about $10 of traffic to the page today, so will troubleshoot and roll out a fix then analyze the results this afternoon. I'm very eager for those keywords so I can split test between each of my different traffic source, device, whitelist/blacklist combinations. Also, adding the tracking pixel as an onclick event nuked the facebook pixel for that onclick event. Looks like I get one or the other before the SMS prompt terminates any outgoing HTTP requests.
Edit:
I just realized I never responded to your remark on retention rates. After the initial pain in the ass opt-in process, the user is billed silently (and for my service, at a remarkably low rate compared to other mobile content offers). The reason for the low rate is two-fold. One, a lower rate makes users less likely to investigate ongoing subscriptions and terminate them. Two (and this is the kicker), the way that most Kenyans manage their airtime is by topping up with small amounts (20 or 30 Ksh) multiple times a day. If I don't bill successfully, I attempt every hour until the end of the day or billing is successful, and my successful billing rates are much higher than services trying to bill 30, 50, or 100ksh once per week.
In the past week I've gone from a $9 cost per subscriber, to a $2.49 cost per subscriber. With the changes last night, today's cost per subscriber sits at $0.995. Once I'm below $0.50 per subscriber (which would take 18 days to recoup) and have multiple keywords for split testing, I'm going to start running an ungodly amount of traffic at this page.
The goal is 200,000 subs before working any other offers/geos, as that will qualify me for a rate card which will let me sell traffic back to Safaricom for $4-6CPM (an additional $800 to $1,200 per day at the # of subscribers, assuming a 100% fill rate).
Awesome follow along!
After changing my TTL settings and adding in a few script links, Google Analytics showed my page speed jumping up to 6s. Fixed the TTL settings and that shaved off .5s and removed the device callout for the time being (I should be using the data passed in by the tracker if at all). This brought me down to a more reasonable speed (about 2.5s for fully loaded). That still doesn't really cut it for PPV/Redirect, so I'm looking at a few local hosting providers just for the landing pages. Anybody have a good tool for removing unnecessary CSS? I can reduce mine by about 83% but it's going to be a bitch. Could save me a good 500ms though. I'm also having an additional line provisioned for Gospel Ringtones. They're blowing up in GH right now and I'm not able to find any offers for them specifically in KE, so will be taking the survey lander approach and testing that (ONLY on an Airtel line to avoid the USSD bungling conversion rates).
Optimizing the CSS using uncss-online.com, and optimizing the PNGs using Kraken saved me 83% on the CSS and 75% on the PNGs. This allowed me to reduce my page load speed for test server in KE to 1.443 seconds (from an average of 6.15s yesterday). I'm sure moving lander hosting inside the country will speed this up by a few hundred ms as well as migrating the lander server from Apache to nginx and optimizing for faster serving.
Lander 4 is converting 84% better than the original lander on RON PPV and Redirect at 14%, just goes to show how important split-testing offers is!
I'm loving this dude, I really hope you make it. I like seeing people build out their own processes, it's inspiring 
Also saw a genius thread on here earlier about integrating HTML5 games into landers and popping up an offer wall as "prizes" on winning. I'm in the process of testing 5 simple action/puzzle games and then popping up an offer wall at the end with 2-3 offers corresponding to the niches I've tested so far. I'm curious if having an interactive game pop up will be enough to attract the attention of fickle pop/ppr traffic, and how it performs on Display once I run some traffic via Go2Mobi.
I would love opinions here on whether expanding pop/ppr (Wiget, Exoclick, Propellor, PopCash) or venturing into mobile display with Go2Mobi would be the more budget-friendly decision. I don't want to bleed myself dry running over two many campaigns testing traffic.
Can anybody weigh in on self-hosted trackers?
Alright, here are the stats for today:
Spend: $26.001
Lander Visits: 22,254 (turned on RON for ZeroPark and got 19k pop visitors with 70 clicking through to USSD prompt)
Conversions to USSD Prompt: 423
Conversions to Subscribers: 1
It would take 935 days to recoup the Ad Spend on that one subscriber, very inefficient.
These should certainly be taken with a grain of salt, as I was split testing many landers (quite a few of which failed spectacularly, and the gospel/video landers aren't wired up to an offer the subscription will work for).
So take-aways for the day:
Lots of actionable data for improving landers, having an entry alert certainly improved Click2SMS, as did the Yes!/No buttons.
Was able to blacklist many site placements which didn't convert for any offers whatsoever.
Was able to fix my broken ZeroPark tracking (though the callback is still broken, so blacklisting targets via data through
Contacted Angoli to get hosting setup in-country to further speed up pages ($20/mo)
Cut 10 Ringtones landers, left with 3 that had roughly equivalent performance.
Cut 4 football landers, left with 6 that had roughly equivalent performance.
Cut all video, as it didn't compare favorably to the best ringtone or football landers.
As I've said before, I think the USSD step (which looks like absolute shit, and doesn't look related to the offer) is gutting my conversion rate. I should have an Airtel line up by tomorrow morning for the football, and by the end of the week for the ringtones service. I've had some trouble finding Airtel traffic in volume, but I suspect it will be worth searching for as even a 0.08-0.5% conversion rate would enable scaling. 1.9% of visitors (423 visitors, or $11.75 worth of daily subscription revenue) got to the USSD prompt today, whereas on Airtel or Orange, they would have been subscribed.
Mother of god, just looked at Google Analytics and the average redirect time in Kenya is OVER ELEVEN FUCKING SECONDS.
For anyone facing similar issues, hosting in KE is honestly a nightmare.
I'll be testing and comparing the following in ZA and hopefully they'll be superior to Frankfurt.
https://cloud.co.za/servers/pricing
http://www.rsaweb.co.za/hosting/cloud-servers/
https://www.domains.co.za/cloud-server-hosting
Went ahead and migrated to a new set of servers in ZA via domains.co.za. Tests are showing page load speed (including the 302 redirect) as roughly ~250ms (but we'll see how that holds up in Google Analytics when I run 20k visitors against it in the next few hours). I also went ahead and migrated over to PixelK. Does anyone know if pixelk.<domain>.com and ringkenya.<domain>.com would be considered the same domain for the purpose of S2S tracking?
Throwing up a PPR campaign on ZP and pausing the gospel offers until the line comes up, curious how many subs we can get off ZP today!
Getting subscribers from ZP on unoptimized RON at about $1/sub.
Tested conversion tracking thoroughly from a bunch of different devices today and am scaling up campaigns with ZP ($20), DNTX ($40), and ExoClick ($20) daily to start getting proper conversion information. From there I'll start optimizing landers in sets of three, taking the best and creating two spin-offs of it, and testing those.
LTV of subscribers is conservatively being set to $2.5 for the purpose of optimizing, my retention rates so far are very high, with subscribers typically leaving on day-1 or staying for 2+ weeks.
I have a few ideas on how to improve LTV further, and to introduce a viral referral element through the integration of some kind of virtual sports betting or incentivized point system for referring other users, but focusing on user acquisition and getting that cost per subscriber down.
Airtel lines are still being provisioned, so all data atm is for Safaricom's MO flow with USSD confirmation.
Aaaaand WE HAVE CONVERSION TRACKING!
Thank you to @Mr_Payne for suggesting the placement of conversion pixels on subscriber portals and cramming external cookies into subscription domain.
Brought on roughly 39 subscribers yesterday on $12 spend, so cost per subscriber isn't bad (on ZeroPark PPV) @ $0.30.
Of the three landers I'm using, ONLY lander-10 has been converting. Also, those ZeroPark campaigns still unfortunately had 25% of traffic going to videos.
Re-ran tests on Landers 5 and 6 to ensure that conversions are tracking properly and they are fine. CPA for Lander 10 is ranging from $0.14 to $2.98 across 6 campaigns ($0.14, $0.18, $0.19, $0.28, $0.14, $2.98 (ZP))
Also planning on adding a daily progress bar just above actions where they can see what percentage of actions they've completed, and visually disable buttons as they complete the actions.
David, this is a great thread! Thanks for putting this out there!
-Brandon
Hey Brandon,
Thanks for commenting!
Small update:
Since the last past I've expanded coverage to India, Pakistan, Singapore, Malaysia, Philippines, South Africa, and Cambodia. I've launched a streaming HTML5 gaming portal, and am in the process of launching digital products for diet, workout, and self-help products. I've upgraded my back-end to support 1-click billing flows instead of the PSMS flows which have caused so many headaches in tracking and conversion rates.
Hey guys,
I'm continuing work on the gaming content portal, and have additionally created a glamour/bikini content portal.
I'm currently in the process of getting approval to run the bikini content in India which will likely take 4-6 weeks, but looks like mid $x,xxx profit per day within the first three months of launching. I've learned a huge amount about which billing processors are best to work with and in what geos and have access to 1-click subscription flows in a few dozen geos now. Deciding which to move forward in is tough, and my expansion into South Africa has been temporarily curtailed by the introduction of significant regulatory changes. Thailand, Mexico, Italy, and Spain look like some of my strongest follow-up geos and I'll be detailing my results once my workload settles down.
Awesome Follow Along.
Keep it up
Hello guys,
I've signed contracts with three different payment processors (NTH, Centili, and tPay) to facilitate entries into sixteen different countries in the coming months. We're running with the games portal, as well as an AI-based chat bot, AI-powered sports play-by-play summaries, and the bikini content. We'll be expanding into various categories of VOD as well.
We have the gaming live in 8 geos, and are looking at approvals in Qatar, Serbia, Thailand, and Bulgaria in the next few weeks.
The MENA region is looking especially enticing, but the strict regulations mean the bikini content will likely get the least love from us as time goes on, and that we'll be investing heavily into video content services localized for the region (Arabic and French primarily).
Tackling the approvals process and ensuring the quality of our content has been a royal pain in the ass, but very worthwhile for getting into these more regulated geos.