How it all started?
On May 1, 2020, Luke Kling, the founder of affLIFT – a forum for affiliate and performance marketers – announced the Zeropark x affLIFT follow-along contest as a part of the forum’s second birthday celebrations.
The contest lasted an entire month and anyone willing to participate was more than welcome to do so. The only conditions were to have an active Zeropark account, start campaigns from scratch, include at least four quality updates, and have a lot of fun sharing observations with the community!
The competition is now over and all the winners, as well as the remaining participants, received their congratulations, glory… and a few prizes.
One of the follow-alongs that got us really excited was Sushi’s Stab at Zeropark Native by @sushiparlour. It took a swing at Zeropark’s native in-app traffic and the results are well-worth sharing on the Zeropark blog.
We need to warn you, though. It’s not one of those “from zero to hero in a week” kind of stories. If that’s what you’re looking for, you won’t find it here.
What you’ll get instead is a very thorough and concise walk-through of a native in-app traffic ad campaign. You’ll read about the campaign’s ups and downs and how @sushiparlour did an amazing job optimizing and making his campaign profitable even though he’d made some mistakes. It’s an actual, sugar-coat free summary of events. Most importantly, though, it shows that affiliate marketing requires a great deal of work, but that work pays off.
Let’s have a look at a case study of Zeropark’s native in-app ads by @sushiparlour!
Giving in-app native a go
Although the contest started on May 1st, @sushiparlour decided to join the party on May 12th, which left him with only half the available time for making his campaign work. He’s already had experience running pop and push campaigns in Zeropark but had never tried our native in-app ads before. Still, knowledge of the platform and experience running various traffic types are definitely to anyone’s advantage when trying out new ad formats.
If you’re not quite familiar with Zeropark’s native in-app ads yet, here’s a quick recap.
What’s native in-app traffic and why is it worth it?
Zeropark’s native in-app traffic is a premium source of purchase-ready customers in Letgo, the biggest local marketplace app in the US. With over 100 million downloads and 400 million listings, native in-app ads allow you to show your products to more than 20 million users monthly. And the best part is they’re already in the buying-selling mood.
Native in-app ads in Letgo offer Zeropark’s advertisers:
- 2 billion monthly impressions
- 100% mobile traffic for the US and TR
- Keyword or category targeting
- CMP rates starting from $0.2
- Android and iOS audience
How do native in-app ads work?
Once advertisers start buying native-in app traffic from Zeropark, their ad placements are shown in Letgo. Native in-app ads almost seamlessly merge with the app’s listings which allows advertisers to serve their offers in a non-intrusive and user-friendly way.
That’s why in-app native ads must consist of:
- an image (700x280px — larger will be center cropped)
- an icon (60x60px)
- a title (25 characters max.)
- a body text (85 characters max.)
- an optional Call-To-Action text (15 characters max. — if not present, a default “Read More” will be shown.)
Step #1 – Researching The Traffic Source
What our contestant did as his first step was to research the traffic source he’d be working with — something we always suggest to affiliate marketers.
As @sushiparlour states in the follow-along thread, he already knew the platform but not the traffic, so he asked his account manager for more information. The Zeropark Team then shared a presentation on Letgo ads including all basic info as well as detailed ad specification attached in the thread.
Getting information at a source is naturally the best option, but @sushiparlour did even more than that. The next thing he did was checking the Letgo app itself since he’d never heard of it before. That shows you don’t need to be an expert at everything to be an affiliate marketer, but you definitely need to take a few extra steps in order to become a successful one.
Luckily, simple steps are often more than enough and all you need to do is Google stuff — just like @sushiparlour did.
Just “looking at the title and glancing through reviews” was enough to understand what the app does and who would become your potential customer.
He then went through Native In-App Ads Policy Guidelines, which aren’t anything complicated, but as @sushiparlour admitted, are important for choosing the right offer. Let us add, it warms our hearts to see that affiliate marketers do follow our recommendations!
The first step was concluded with a summary of his findings, which included:
- The source of native in-app traffic as the Letgo app.
- The target audience of Letgo app as people with buying/selling intent.
- Top GEOs — TR and US
- Device targeting — Android
Although @sushiparlour called it a first step, it’s been much more. This one step seems like a whole phase one to us. It consisted of at least four smaller steps that, when put together, constitute thorough research and careful preparation for running your affiliate campaigns. Be clever, be like @sushiparlour.
Step #2 – Finding Offers
Learning about your target audience and understanding what they’re actually looking for allows advertisers to tap into consumer demand. And that’s exactly what @sushiparlour did during his preparation phase. He gathered information about Letgo’s potential visitors that later allowed him for “brainstorming potential offers that could match the traffic.”
First, he divided his audience into two groups — the sellers and the buyers. He concluded that the sellers would be people in need of money, also the kind that doesn’t like to waste things (Letgo is a marketplace app after all) but also that if they’re successful at selling items, they’ll have resources to spend as well.
The buyers, on the other hand, could be already looking to buy things. What’s both interesting and important, though, is that since they’re using Letgo, they might be looking for bargains and deals. That information could be crucial for adjusting your ads copy or CTAs later on.
Another thing also mentioned in the follow-along, and so often recommended by the affiliate community, was asking a traffic source representative for advice as to which verticals are the most successful with native in-app traffic in Zeropark. These were e-commerce, nutra, gaming, antivirus, and dating verticals.
As pointed out by @sushiparlour, it was quite a mixture. Bear in mind, though, that these are generally top trending categories recently (thanks COVID-19!) and the items belonging to such categories can be easily and effectively promoted within a marketplace app. Again, this affiliate marketer seemed to realize that very well and identified three angles he’d be interested in running, there were e-commerce, nutra, and finance verticals.
Next, @sushiparlour reached out to his affiliate networks and inquired about offers for the native in-app traffic available GEOs, which are the United States and Turkey. As could be expected, there were many offers with the US targeting and much fewer for TR. Luckily, @sushiparlour managed to get exactly what he needed.
He found a nutra offer with Turkey targeting since that’s the top GEO for native in-app ads in Zeropark, but also because it’s much cheaper than the US traffic. That meant a lot more testing-data for a lot less money, which is our #1 suggestion when trying new things!
Remember that more testing means more data, which means more chances for scaling!
The offer chosen by @sushiparlour was also within the scope of native in-app ad’s policy guidelines, which meant the ads would be easily approved by our compliance team. Our contestant then concluded the second step with the offer and GEO combination (nutra on TR) and promised to talk about creatives in his next follow-along update.
To sum up, the second step included:
- brainstorming offers that match the Letgo traffic
- trying to understanding the target audience
- identifying top trending categories for native in-app ads
- deciding which categories to focus on
- reaching out to affiliate networks for offers per Letgo top niches and GEOs
- choosing Turkey targeting due to much lower CPM prices
- checking if offers comply with the policy guidelines
- getting a nutra offer for TR that is Letgo traffic compliant
Step #3 – Creative Creation
This step started with an all-times must-do that is going straight to your spy tool. Our advertiser chose Anstrex since “it’s cheaper than other tools on the market and it offers both push and native ads”, which is what @sushiparlour usually works with.
Finding banners with a spy tool
Here’s @sushiparlour’s way to successfully look for ad creatives using a spy tool like Anstrex.
First, the advertiser set up the GEO filtering — in this case, it was Turkey. He then started browsing for the most popular ads. One way was to filter for 5-365 days to avoid newly added placements, or by decreasing the strength (Anstrex’s term for historical performance as clarified by @sushiparlour) and looking for the most popular ads first.
Notice that no campaign categories or keywords have been specified just yet! Our participant researched what categories were run by other people at that time as shown by his spy tool. These turned out to be quite similar to what he had established earlier — nutra, dating, e-commerce, crypto/finance ads.
He then checked the ads’ gravity which is Anstrex’s way of saying what’s currently trending. He learned that dating and e-commerce with a bit of nutra offers were the top categories for this kind of search, too. What he did next was choosing 10 weight loss ads to download and review.
These came in an organized folder which allowed @sushiparlour which look like this:
Since he was done with ad creatives for the moment, @sushiparlour moved to research landers.
Finding landers with a spy tool
Checking the most popular ads globally per given vertical is what he sometimes does to understand the general trends. Though it’s a great trick, generally speaking, @sushiparlour skipped it this time because he’d run weight loss offers before. Still, a step to be remembered!
He then continued to browse for the landing page ideas looking through what other people were running at the time. Though @sushiparlour realized that some of the landers may be cloaked, he continued to go through screenshots without enabling his VPN. Although we’d recommend having it on, such research is possible even without an active one and still allows for getting ideas.
That’s an example of a landing page found by @sushiparlour. As he admitted, it’s a standard lander for nutra offers he’d actually seen before in various languages — Turkish, too. Even with having his VPN on, just to make sure he’s seeing it all, this quick research confirmed that most people run advertorials and so should @sushiparlour to tap into the current demand.
A tip he gave us is that he’d normally built his own top-landers list and also he’d try to get various styles of them — like male vs. female or an expert vs. an amateur.
That note from @sushiparlour is a piece of quality advice that proves playing with the psychological reception of your ads may be a game-changer for your campaigns. Focusing your ads per such groups allows them to be more relatable and credible to your audience, hence increasing your chances of boosting that CTR.
Remember though that getting anything from a spy tool requires a bit of cleaning, which @sushiparlour obviously did. Even though he didn’t do the cleaning himself but sent the landers to his “web guy” instead (which is a good idea if you’re not capable of doing it yourself or simply don’t have time for that) and then added his own custom snippets to improve the page and its tracking.
This time @sushiparlour decided to go with ready-made landers he got with his offer due to lack of time (it was in the middle of the contest already). Especially that these were similar to the ones he saw other people run. Before moving to the setup phase, @sushiparlour added:
I always recommend building out your own landers (unless you are running direct linking) because you have more control. At minimum you can put your own push collection code on the lander because a lot of the time networks will put their own code in the lander they provide you and not pay you for the push subscriptions.
As you can see, step #3 involved a lot of:
- banner research
- lander research
- as well as webpage cleaning and optimization.
Step #4 – Campaign Setup
This phase started with setting up his campaign in the Voluum tracker, which @sushiparlour thought people are already familiar with doing or at least it’s been already covered. For those interested, here’s information on the Voluum x Zeropak campaign integration process.
More importantly, he noted that the offer he chose is a COD (Cash-On-Delivery) one which means there was a minimum of two stages to track:
- people leaving their phone number on the offer page (HOLD)
- people confirming their order via phone (LEAD)
Since @sushiparlour had already run COD offers with Voluum as his tracker, the set up was already there.
Step #5 – Campaign Launch
After a small break, the campaign set up was resumed. As @sushiparlour stated, there wasn’t much to be done since the features available for Letgo ads in Zeropark are the default settings at the moment, leaving all other options inactive.
What @sushiparlour could do at this point was to set up the frequency filtering to 12h, set a daily budget to $30, and use the recommended bid of $0.0002 to start with.
A few things @sushiparlour listed as his observations after two days of running the campaign were:
- lack of Zeropark’s native traffic integration with Voluum (unlike with other available ad formats). That meant @sushiparlour needed to treat his campaign as any other traffic source’s campaign and integrate it manually by adding tokens.
- uneven distribution of daily budget spend.
- quite a few hold conversions, which proved the campaign was working correctly, but more time for actual conversions to occur was needed.
- since the campaign’s cost model works on a CPV basis, the ads needed a high CTR.
- lack of widget/placement targeting in Zeropark.
- manual cost update.
Let us only add that, yes, lack of Zeropark and Voluum integration on native in-app traffic took more time for the campaign to be fully set up, and may have caused the first day’s data to be “slightly off”. That’s why the Zeropark team is proud to announce that this issue is being solved and fully automated interaction is coming soon!
Data check, 13-14th May
Without any further ado… here’s first look @sushiparlour’s native in-app traffic campaign in Zeropark!
Time range: May 13-14, 2020
Approval Rate: 7.7% (this is the number of lead vs hold)
These are two days results, though @sushiparlour adds it might have been just one due to the campaign daily spend cap. Still, he was reassured the campaign was working properly, and though the “results may feel uninspiring” there were “positives and actionable observations”. Here they are:
- Decent CR for the HOLD segment — as @sushiparlour admits, no optimization had been done yet but people were already leaving their numbers which proved the funnel was working. Further improvements were expected once optimization was done.
- Below average approval rate — according to @sushiparlour, the network’s average approval rate is usually between 20-25%. Unfortunately, his offer didn’t meet the benchmark which could have been caused by delayed conversions (which as he says is typical for COD offers). An increase in approval rate was expected once call centers started processing data (15% would be satisfying), also allowing for the budget to be spent evenly.
- Sufficient volumes of traffic — @sushiparlour used the recommended bid and that was enough for his budget to be eaten within a short period of time. That meant scaling opportunities once more data was collected and “the best funnel + targeting” strategy was identified.
In order to better understand why COD offers may act this way, we’ve asked @sushiparlour about his experience running such offers before. Here are his thoughts:
When running COD offers it is important to make sure you are in touch with your affiliate network or advertiser about their calling center especially during these trying times where work disruptions may result in lower effectiveness. Different calling centers have weathered this differently so it is important to split test and be in close communication even if the products are very similar.
Such observations allowed for initial optimization as the conclusion of step #5:
- leaving out 50% of ad creatives while adding new ones that resemble the top-performing ads. Focused was placed on higher CTR due to the CPV cost model.
- gradually increasing daily budget while lowering the bid in order to make full usage of the campaign’s budget. Since the suggested bid was able to buy a sufficient amount of traffic it meant there was room for bid optimization. The saved difference could be used as a daily budget increase.
- leaving out 33% of the campaign’s landers, based on CR and CTR rates due to lack of lead conversion data.
Step #6 – Campaign Optimization
Data check, 17th May
Thanks to the initial changes @sushiparlour made to his campaign, a little boost could be observed. Listed below are the data since the start of the campaign:
Time range: May 17, 2020
Approval Rate: 18%
The data presented come from May 17th, which was Sunday, hence more conversions were expected to come in for the weekend once the call centers started operating again.
Another thing that changed since the previous update was getting one full day (24 hours) of even ad spend. Still, @sushiparlour decided to increase his daily budget to $150 so as to avoid getting throttled.
Although the changes weren’t any major ones, and no big optimization steps were planned, @sushiparlour decided to map out his strategy regarding this campaign. His plan included:
- Replicating the already running pre-landers and further optimization/tracking adjustments.
- Working on creative updates/rotation so as to avoid banner blindness
- Deciding on the best day-parting scheme
- OS split testing
Although the ultimate goal was to, obviously, make the campaign profitable, @sushiparlour was already planning further actions, too. Having a fixed strategy is always helpful and allows advertisers to focus on long-term goals while working towards campaign’s profitability.
One of the things worth remembering while planning your campaign’s strategy is not falling head over heels into something that might turn out otherwise — as @sushiparlour comments the over campaign results so far:
Also, I think I need to set a hard loss on this (so I don’t over commit) and given that each payout is $5 and I’m already seeing conversions I think a $200 loss (40x payout) would be a good place to pause traffic and re-evaluate whether to continue or not.
Data check, 13-16th May
Not something too optimistic you could think… but isn’t affiliate marketing full of surprises?
That’s why just a couple days later a quick update was added to the thread showing how the data for May 13-16 changed once the call centers came back to work. Have a look at the stats below!
Time range: May 13-16, 2020
Approval Rate: 35%
As @sushiparlour rightly noted, due to the Ramadan celebrations, call centers in Turkey were on hold between May 23-26. That’s why he decided to pause his campaigns until everything goes back to business as usual.
Step #7 – Campaign’s Diagnostics
Two main issues observed by @sushiparlour after almost two weeks of running his native-in app traffic ad campaign were:
- The same CPV price throughout the campaign.
- Conversions drop as the campaign progressed.
Why was the CPV the same throughout?
As @sushiparlour explains, this may have been caused by the manual cost update due to a lack of Zeropark’s integration on in-app native traffic with the Voluum tracker. Having to do it manually may have resulted in data discrepancies.
In order to investigate the issue and learn more about the behavior of the campaign’s CPV, @sushiparlour decided to compare the data for two similar time periods. He looked directly at the Zeropark’s platform data from May 13-18 and juxtaposed it with data for May 19-24.
Time range: May 13-18
Time range: May 19-24
The comparison showed a drop in CTR percentage form 0.87% to 0.59% in the second half of the campaign’s duration. Assuming that the bid remained the same, it could have meant paying more per impression in Zeropark. As @sushiparlour points out, such an outcome may have been caused by:
- Banner blindness
- Call centers working days distribution (only 5 working days per week)
- Holiday impact
Despite the obstacles, @sushiparlour took control of one thing he felt could be improved at this point — fresh ad creatives. He then moved on and explained the second issue.
Why were conversions dropping over time?
And once again, @sushiparlour was right from the very beginning. Yes, that is a million-dollar question every affiliate marketer would like to know the answer to!
Still, he managed to offer us quite a reasonable explanation as to why his conversions dropped while the campaigns progressed.
- Offer saturation: this isn’t something that any affiliate marketer can control… except for changing the offer. Still, with 30 million available daily impressions on Letgo, it seemed a bit too early for the offer to wear off. As @sushiparlour added, he’d run around 7-8 million impressions daily, which left enough traffic for the offer to keep going.
- Copycatting: unfortunately, this is a common behavior and as @sushiparlour rightly points out, he did disclose lots of information about his campaign’s setup. Still, he decided not to worry about it too much given the industry’s nature.
- Holiday impact: as much as it’s an important factor for this particular campaign, the scale of the holiday’s influence cannot be precisely measured. What usually can be expected in such a case is that the delayed conversion will come in eventually once call centers go back to their every-day routine
Another remark by @sushiparlour that should be remembered by many advertisers who’d get frustrated with their campaigns turning out differently from what they hoped is:
Again my focus is on what I can control and at this moment in time I can only try to avoid offer saturation by building more landing pages or running different offer pages (but same offer).
A few other observations on the overall performance of his campaign were:
- approval rates going back to the network average, which is ca. 25%.
- day-parting being a useful tool when working with call center offers, though implemented at a later stage so as not to miss out on traffic.
After a thorough campaign analysis, updated number 7 was then concluded with a to-do list. Here are @sushiparlour’s action points:
- Adding new creatives
- Implementing new landing pages based upon top-performing ones
- Finding new offer pages to rotate
Once these steps were done and call centers opened again, @sushiparlour decided to restart his campaign and see if adjustments would bring any improvements.
Step #8 – The Final Update
May 31st, 2020 marked the end of the affLIFT contest. An important question to be asked at this point was whether @sushiparlour would continue to run this campaign, which despite showing a positive ROI, still needed a lot of tending and optimization. In his last update @sushiparlour stated:
Given that I am already profitable (barely), then yes, of course, I will!
What he was still planning to work on were the same action points as earlier on, which is further optimization of:
- campaign’s landing page and ad creatives
- OS targeting
Why would he keep on working on the same point again and again? Because his strategy was a well-thought and planned process. And because implementing such optimization practices had already shown signs of improvement after recovering from the holiday slowdown.
Closing remarks from @sushiparlour!
Since we already knew that @sushiparlour decided to continue his journey with Zeropark’s native in-app traffic even after the affLIFT follow-along contest was done, we’ve asked him about his thoughts on the traffic and overall feel of the campaign, which he answered with:
Zeropark’s Native In-App traffic is easy to use and the quality of the traffic was decent. I look forward to Zeropark integrating it with Voluum in order to improve the cost tracking (as it would be one of the first native sources to have a seamless integration) and hope they add more sources in the future. Overall I like where this is headed and will keep an eye out.
Since it’s a pretty long and detailed account of events that @sushiparlour shared with us, let’s have a look at some key takeaways from his follow-along.
- The campaign started rather slow, but then fluctuated depending on the call center accessibility.
- Once the delayed conversions flew in, the performance went up.
- Things like creative fatigue, holiday delays, and market saturation were the main cause of the campaign’s fluctuations.
- @sushiparlour chose to focus on what was within his control, he kept on optimizing.
- Pausing campaigns when the offer was blocked by external factors (which he could do nothing about) was a way to go and save some money.
- Constant adjustments to campaign’s landers and creatives were a must. It allowed @sushiparlour to keep his ads fresh for the user and avoid ad burnout.
- Different ad images had very different CTRs, and due to the CPV cost model, click rates and prices needed to be continuously monitored.
- @sushiparlour avoided over-optimization so as not to lose track of the variables he was testing for.
- He did ask himself a few times if the campaign was worth it.
- But the answer remained positive and so did @sushiparlour running his native in-app ad campaign in Zeropark!
Once again, well done to @sushiparlour for his hard work optimizing the campaign and letting so many people in the affiliate community have a peek into his proceedings. We’re sure it’ll serve as a huge help to many advertisers planning to work with native in-app traffic and help them decide on the best strategy for their campaigns.
Native In-App Traffic Case Study — Conclusions
What this case study clearly confirms is that Zeropark’s native in-app traffic is able to bring our advertisers great results… but also that it won’t happen without a great deal of work. And @sushiparlour’s campaign is a great example of that.
He managed to get a +50% ROI after only a few days, yet did not stop on testing, optimizing and improving his native in-app campaign’s set up. Why? Because there are issues beyond our control (like holiday break) but also those we’re able to address — like creative fatigue.
That’s why, if advertisers want to keep their ads fresh and converting, these ads need to be taken care of. Adding new ones, testing, rotating — it’s something really worth putting extra effort to. People in this industry need to be constantly updated with what’s happening with their campaigns, and that includes the country’s holidays, working hours, legal restrictions or the kind of content that’s most popular with a given audience.
Remember that things like creative fatigue and market fluctuations cannot be ignored. The better advertisers get at tackling them, the quicker those positive ROIs can be made!