Home > Mobile > Follow-along Campaigns

Building and Promoting Mobile Content Offer in East Africa on PPV/PPR/FB Ads (33)


04-27-2017 09:12 PM #1 davidmchale (Member)
Building and Promoting Mobile Content Offer in East Africa on PPV/PPR/FB Ads

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:



16,518 auctions won
5,230 visitors from PPV click through lander to website
602 click on sign up
$74 spend


$7.32 - 373 clicks to homepage - Video - 14 clicks on sign up
$0.019 average CPC
$14.17 - 309 clicks to homepage - Text Ad - 16 clicks on sign up
$0.045 average CPC

Campaign Architecture:

At present I am segmenting my campaigns by device and traffic type:
Kenya - DNTX - PPR - Android - Whitelist
Kenya - DNTX - PPR - Android - Blacklist
Kenya - DNTX - PPR - Windows Phone - Whitelist
Kenya - DNTX - PPR - Windows Phone - Blacklist
etc..

The blacklist is RON and I use it for collecting placements which click through above 10%, these are then blacklisted and added to the whitelist which has a much higher budget and click through rate.

Tracker:
AdsBridge
Started out using Adsbridge, but I may move to self-hosted Prosper202 for a speed benefit (currently requests are routed from Kenya to AdsBridge server in Ukraine, down to Frankfurt where my servers reside, and back to Kenya).

Prosper202
Installed and have been familiarizing myself with the interface. The popunder function is especially interesting to me for directing lost traffic to AffFlow/Monetizer or to direct deals with other mobile content offers or my own offers.

Voluum(?)
Curious about Voluum, used it years ago but haven't touched it since. May migrate there if Prosper202 doesn't cut it and it's faster than AdsBridge.

System Architecture:

Database (stores subscriber information)
Prosper202 Server (tracks clicks)
Web Server (serves homepage and mobile content)
API Gateway (handles requests from telecom network)
Lambda (handles requests from telecom network)
S3 + CloudFront (serves landing pages)

Tools:
Facebook Pixel (using to build up custom audience and lookalike audiences)
Google Analytics (using to assess bounce rates, page speed, user interaction with page, device + browsers)
WebPageTest (using to perform speed testing of page)
NewRelic (In Progress)

Regions Covered:
Kenya
Tanzania (In Progress)
Rwanda (In Progress)
Uganda (In Progress)
Congo (In Progress)

User Breakdown:
Male
18-35
Devices split between Android (24%) and Opera Mini (71%)

Current Results:
Over the past 72 hours I've generated 17,611 visits to landing pages from mobile devices for $79.92. (Average cost per visit is $0.0045)

Of these 17,611 visits, 6,417 visitors have clicked through to our homepage (www.footballinfo.net).
(36.4% of visitors click through to view the homepage)

Of those 6,417 visitors, 677 have looked at the sample scores and registration explanation and opened the SMS prompt to begin signing up.
(10.5% of visitors decide to open the SMS prompt and begin signing up)

Of those 630, 32 have completed the USSD verification and signed up for the service.
(5% of those who open the prompt text in and complete USSD verification, or approximately 0.18% of users from start to finish, or 0.49% of users from landing on the homepage to finish.)

This is a cost per subscriber of $2.49, which will take approximately 89 days to recoup per user.

32 subscribers @ $15 LTV = $480 revenue (if subscribe lifetime is accurate)

Current Problems:
Two-factor authentication (MO Flow + USSD Confirmation) is difficult to convert, investigating other networks in Kenya to work with. Airtel and Orange are just MO Flow with no confirmation, which could be a huge conversion rate increase. The catch is that Safaricom has 83% of subscribers in KE, Airtel and Orange fight over the scraps and paid traffic is harder to find (and FB traffic doesn't support carrier targeting though carrier detection and redirection would ease this somewhat).

Right now I'm unable to attribute conversions to a particular source. The only data I have for a conversion is the MSISDN number and time at which it occurred. I'm not making much headway in finding a way to implement reliable MSISDN recognition with Safaricom, Airtel, or Orange users, which makes attributing conversions virtually impossible. I'm curious if Cake or HasOffers can assist here. I haven't used either before and have yet to investigate.

The best I have at the moment is tying them back to the prompt on my website which opens up their default SMS application with the shortcode number and keyword prepopulated.

Once I have a means of tracking conversions in place, I can begin scaling campaigns with Facebook (I've already got a conversion pixel on the site and a look-alike audience of visitors who clicked the checkout button to advertise to which is roughly 750,000 users) and other traffic sources.

I'll also need conversion tracking in order to open up my content offerings to affiliate networks and pay for subscribers on a per-user basis. I've received offers as low as $0.65 for Kenya Safaricom traffic, which would take only 23 days to recoup.

Getting reliable conversion tracking in place would let me really scale the shit out of my budget. I can comfortably spend $250 a day once attribution is in place, and more as I have more subscriber lifetime data or the cost to acquire subscribers falls.

Next Steps:
Solving conversion attribution is first and foremost, followed by further split testing of promo videos, landers, and home page variations once I can attribute conversions and not just clicks to sign up.
Once the service reaches 5,000 users I'll begin rolling out similar offers in the sports niche and expanding network/geo coverage more aggressively.

I'm happy to answer questions, and will be posting updates as progress is made!


04-27-2017 09:56 PM #2 davidmchale (Member)

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).


04-27-2017 10:39 PM #3 johner911 (Member)

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 ?


04-28-2017 01:57 AM #4 davidmchale (Member)

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 Adsbridge offers something like this, but I may be out of luck with Prosper202 (still reading through their technical docs).

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.


04-28-2017 01:58 AM #5 davidmchale (Member)

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.


04-28-2017 07:26 AM #6 benintown (Member)

That's really interesting, I'll follow up!


04-28-2017 07:40 AM #7 johner911 (Member)

@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


04-28-2017 01:20 PM #8 davidmchale (Member)

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.


04-28-2017 01:51 PM #9 davidmchale (Member)

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).


04-28-2017 03:01 PM #10 jessejames (Member)

Awesome follow along!


04-28-2017 08:11 PM #11 davidmchale (Member)

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.
@Johner911:

I really didn't appreciate this advice enough until this afternoon. I went ahead and tested a bunch of different ways for tying placements to clicks on SMS button and was successful with the following method:

<a onclick="adsbridgePostback();" href="sms:20717?body=FOOTBALL>Join The Club</a>

<script>
function adsbridgePostback{
document.write(<img based tracking pixel>)
}
</script>

I tried using javascript based pixels, click based tracking, and iframe pixels, and this is the only option I found which quickly and accurately recorded clicks WITHOUT blocking the facebook pixel before the SMS prompt took precedence and killed all HTTP activity. So thank you Johner911, I'll use that method of deriving average conversion rate and CPA and optimizing by number of click2sms.


04-29-2017 05:26 AM #12 davidmchale (Member)

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).


04-29-2017 06:05 AM #13 davidmchale (Member)

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.


04-29-2017 02:27 PM #14 johner911 (Member)

Quote Originally Posted by davidmchale View Post
@Johner911:

I really didn't appreciate this advice enough until this afternoon. I went ahead and tested a bunch of different ways for tying placements to clicks on SMS button and was successful with the following method:

<a onclick="adsbridgePostback();" href="sms:20717?body=FOOTBALL>Join The Club</a>

<script>
function adsbridgePostback{
document.write(<img based tracking pixel>)
}
</script>

I tried using javascript based pixels, click based tracking, and iframe pixels, and this is the only option I found which quickly and accurately recorded clicks WITHOUT blocking the facebook pixel before the SMS prompt took precedence and killed all HTTP activity. So thank you Johner911, I'll use that method of deriving average conversion rate and CPA and optimizing by number of click2sms.
Just a note.. with this method of tracking.. be careful about certain placements in case you are running the traffic directly to landing page (without a presell before it).
Certain placements, very few of them - lets say a couple % .. and normally the ones with a lot of traffic.. do have quite a bit of bots on them..

The bots will trigger the clik event and give you an abnormal % of the click rate. One way to filter for those is to check the average ctr rate, and then just block the pubs who have a multidute of the average.
For example if your average ctr is 5% .. and you have a pub with a ctr of 20% .. with a lot of traffic. .that's not normal..


04-30-2017 07:33 PM #15 davidmchale (Member)

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!


05-01-2017 02:30 AM #16 lafftar (Member)

I'm loving this dude, I really hope you make it. I like seeing people build out their own processes, it's inspiring


05-01-2017 01:21 PM #17 davidmchale (Member)

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.


05-01-2017 03:49 PM #18 davidmchale (Member)

Can anybody weigh in on self-hosted trackers? Adsbridge is beautiful, but it's adding a 700ms - 2,000ms delay on my visitors via the 302 redirect through their platform. This is untenable, and I'm certain it's demolishing my CTR. I've got Prosper202 up and configured on an EC2 in eu-central-1, and I'm looking at PixelK and FunnelFlux. Most of my traffic is going to be ppr and ppv, so this is one of my top priorities.


05-01-2017 10:18 PM #19 davidmchale (Member)

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 Adsbridge).
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.


05-01-2017 10:31 PM #20 davidmchale (Member)

Mother of god, just looked at Google Analytics and the average redirect time in Kenya is OVER ELEVEN FUCKING SECONDS. Adsbridge may be fucking me over more than anything else here.


05-01-2017 10:59 PM #21 davidmchale (Member)

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


05-02-2017 05:31 AM #22 davidmchale (Member)

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?


05-02-2017 01:32 PM #23 davidmchale (Member)

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!


05-04-2017 12:21 AM #24 davidmchale (Member)

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.


05-04-2017 12:30 AM #25 davidmchale (Member)

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.


05-04-2017 12:03 PM #26 davidmchale (Member)

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.


05-04-2017 12:37 PM #27 davidmchale (Member)

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))


05-10-2017 01:03 PM #28 davidmchale (Member)

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.


05-23-2017 11:20 PM #29 calartist (Member)

David, this is a great thread! Thanks for putting this out there!

-Brandon


05-24-2017 12:49 AM #30 davidmchale (Member)

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.


06-07-2017 08:42 PM #31 davidmchale (Member)

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.


06-08-2017 07:59 AM #32 geobak (Member)

Awesome Follow Along.

Keep it up


06-21-2017 08:37 PM #33 davidmchale (Member)

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.


Home > Mobile > Follow-along Campaigns