Help RE Attribution: the key to Monetization Success

Having had my first Corona-built app out for 2+ years, and a new one released 90 days ago, I have concluded that App Attribution is the key to financial success.

Attribution is the proper determination of which sites, email campaigns and ads are responsible for our app installs. Without the ability to understand where our installs are coming from, all our marketing efforts are nothing more than hopeful stabs in the dark. We need to understand where our installs are coming from so that we can adequately ramp-up the best sites, email campaigns and, most importantly, ad purchases (i.e. GoogleAds, Facebook, InMobi, etc…).

There are paid Attribution partners (Apps Flyer), but until our apps are monetizing well enough, we need a free solution - we’ve settled on “Kochava” for now. With that said, we really need a step-by-step guide or help from a consultant to help us maximize all tracking opportunities, not only through Kochava, but also through any other avenue which Google supports and will help us adequately understand where our installs are coming from. I have attempted to hire someone on Upwork, the site we use to hire workers, but the term “Attribution” isn’t even in the “skill” list - and it seems this entire field relating to the ‘technical implementation of attribution’ is rocket science.

Can anyone help us with this, especially as it pertains to the full implementation of Attribution for our Corona SDK-built apps?

I had a client at one point who wanted a way to directly attribute installs without the use of any “external services”.

I created a simple PHP & MySQL setup for them. They created custom links, such as example.domain/attribute.php?source=facebookCampaign21, which directed clients to a simple PHP file that logged the user’s IP address, the source (i.e. link clicked) and timestamped it. The entry would remain in the database until it was claimed or it timed out. Once the PHP file would be done with the user, it would redirect the user to the correct app store page (i.e. pretty much instantly).

Whenever a user started the app for the first time, the app connected to the same database and the PHP file checked if the user’s IP existed there. If the connection failed, it would try it again later. If the IP was found, then the entry was claimed and a new entry with the necessary information was added to another database with info such as when it was claimed, source, etc.

This is a pretty simple method for general attribution and if you already have a server and a domain, then it’d cost you only the hours you’d put into programming it.

Edit:  I edited the paragraph below because I completely forgot to mention how to address the limitation concerning IP addresses.

Its one weakness is, however, that IP addresses can change and there may be several users behind the same IP due to them being on the same network or behind a proxy. If you were to use JavaScript instead of PHP, then you can use device fingerprinting to further identify different devices. You can obtain things like user agent, screen resolution and its colour depth, font list, timezone and whatnot. So, this wouldn’t 100% guarantee that every user is unique, but it gets pretty damn close.

Still, it’s a pretty elegant solution in my opinion. I have been meaning to turn it into a plugin and a service, but I’ve been preoccupied with other projects, such as a story plugin that I’m working on atm. :stuck_out_tongue:
 

Tenjin is also free for starter and AppsFlyer is only .05 cents per install. I have never used Kochava. It took me a few days to set up AppsFlyer so that I can track every install, but I am no expert. I think you won’t necessarily find one, but I think you have the skills to do it yourself. Good luck and let me know how it goes. I am curious how your experience ends up being different than mine.

If you want to read my experience with the two services you can read it here: https://adriangomez.net/2018/09/16/ltv-and-cost-of-acquisition/. Sort of boring read but might at least give you some ideas of what I found out.

@agramonte and all, THANK YOU for taking the time to document your experience. I’m starting with Kochava, but I may end up with others. As I see it, we need A) a good attribution partner that charges the least, but provides enough benefit that we can still be profitable; and B) we need to find enough ways to advertise (aside from GoogleAds and Facebook), and the good news is that the attribution companies have an entire list of ad providers because they’ve built their API to support them. So, in a nutshell, the combination of A & B will help us to hit pay-dirt. And ultimately, our apps must monetize well enough, too. The last thing worth mentioning is that my understanding is that King, Playrix and other companies have a much easier time obtaining success once they have multiple apps. I have two, with a third to be done by Easter. Hopefully, I’ll have them all promoting themselves while also having an attribution partner that connects with the best places to advertise to obtain the best installs (best=users that spend money may be more costly per install, but make up for it in the back end). Then, it’s trial and error here. Please keep this thread going with ideas and experiences.

@XeduR @Spyric, thank you for taking the time to explain your concept for a home made attribution setup. I did this a couple of months ago, but there are too many complexities involved that prevent a particular reward of attribution from occuring because ip addresses and other identifiable info is disrupted by referrers who don’t want us to be successful without them (i.e. Google, maybe others). Kochava expands on the ip address idea to include a ‘user agent’, best described in this article: https://www.kochava.com/configurable-attribution-2-fingerprinting/

Because Kochava and the other attribution providers make it a point to be experts in this field, they will ultimately be able to keep up with the changes in the marketplace and empower us to benefit from their ongoing efforts. In my case, I make games and spending the necessary, meaningful time to make a best-in-class attribution fingerprint system isn’t the best use of my time.

So, before anyone goes off and attempts to create their own attribution system, be forewarned that its a ton of work to make a good one because it involves numerous other partnerships with companies (i.e. Google, Facebook, and other ad providers) to use their API to extract worthwhile data. Why revent the wheel? Just my two cents.

Nevertheless, thank you for sharing and please, everyone that reads this, contribute with any information or knowledge you have learned.

When it comes to marketing one’s services, then everyone is an expert regardless of whether they’ve ever touched the topic or not. :stuck_out_tongue: With those companies, I’m sure that they know their business though. But, yeah, this really comes down to personal preference and scale.

The “technology” is, however, really simply and there are no special tricks to it. I don’t really see how anyone could disrupt the process either nor do you need any partnerships. Consider this: 1) You buy an ad from Google, 2) You set the ad to take the user to your attribution URL, 3) The attribution URL is a JavaScript file that stores the visitor’s IP and creates a fingerprint based on the visitor’s user agent and other information that is freely accessible via JS. Then, 4) The JS forwards the user to the desires end URL, like an app store page. 5) When a person starts the app for the first time, the app checks the user’s IP against the database. If the IP exists, then check for the fingerprint. If both exists, then you can be almost certain that the user is the same as the visitor in the database.

The only two means of interfering with this method are:

  1. The link that the visitor clicks doesn’t take the user to your site, but this isn’t really a realistic problem. It’d be like buying a ad for your software, but instead the visitor is taken to a competitor’s site. :stuck_out_tongue:
  2. The only real issue that can interfere with this is if the visitor has some browser add-on or setting that automatically blocks all JS from running on any (new) site, but again, this wouldn’t affect even 0.001% of the possible users and at this point I’d be surprised if any of the other tracking methods would work either.

Now, using someone else’s ready and tested service is definitely easier, and depending on your scale, it may also be cheaper. If you consider AppFlyer’s 5 cents per attribution and you’d estimate that setting this up and testing it would take you 10-15 hours at 60$ per hour and add a custom domain and hosting to it for 100$ per month on top of that, then your fixed setup costs would run between 600$ and 900$, followed by 100$ of server costs each month. So, you’d need to have 12-18k attributions to break even with the setup costs, followed by 2k attributions per month.

So, for just one small app, this approach will definitely not be worth it, but the more apps you have and the more you advertise them, then the more attractive this approach will become.

I agree that reinventing the wheel is rarely smart, but what if borrowing a wheel from someone else simply costs more than building one for yourself? :stuck_out_tongue:

They do much more than simple attribution of an install. They can attribute a particular campaign, ad, or deep link to a particular install. In Tanjin case they can also tie those to purchases and ad monetization and then provide lifetime value for each install. So you know that campaign x on Google cost you y amount of money per install, but also brought you z amount.

Yeah, I know. Analytics would be a different thing entirely, unless you are just analysing the attribution related figures.

Attributing an install to a specific user from a specific campaign or ad isn’t difficult at all as those values are passed in the URL and can be handled by the same setup I’ve mentioned a few times now. The additional stuff, like how much value you get from specific ad could also be calculated. For instance, if you paid 500€ for a Facebook ad campaign and you got 1095 clicks and 591 positive attributions for that campaign, then it’s not really that hard to calculate that you paid 500€ / 1095 = 0.457€ per click and 500€ / 591 = 0.846€ per install. But again, the fancier setup you are going to come up with, the longer it will take to develop it.

You could also take the user’s UDID from the app when you are confirming whether the install is organic or not and you could store it with the other information, which would let you track a single user across multiple apps etc. until they’d eventually replace their phone, at which point you’d lose them. With Facebook and other methods, you’d most likely be able to follow them even after they change their device, but I prefer less intrusive data collection. :stuck_out_tongue:

Really, none of this stuff is hard. If anyone is interested in how easy it is to get some information out of a visitor by just using some read only methods, check out https://browserleaks.com/. There are also numerous projects available for free on GitHub that can perform those operations and create keys based on them, etc.

Setting up servers is not for me. I understand that is the route some people take, enjoy and are successful with. I always prefer to use somebody else’s services if they meet my needs and are cheap or free enough to afford. 

@trolylndon You inspired me to give Kochava a try. I just signed up and mostly integrated. I also like the reporting I have seen so far.

I can now confirm that the free plan of Kochava is working to track GoogleAds and Facebook. COST: FREE

Just as you and others have told me, Google’s ORGANIC traffic can make all the difference between profitability and not. The question is, if we double our ad spend, will our free organic results also double? This is a great video about this - https://moz.com/blog/how-google-adwords-ppc-affects-organic-results, but this video talks mostly about PPC and NOT UAC (Universal App Campaign). So, it’s still a mystery. Anyone have anything to contribute here?

I had a client at one point who wanted a way to directly attribute installs without the use of any “external services”.

I created a simple PHP & MySQL setup for them. They created custom links, such as example.domain/attribute.php?source=facebookCampaign21, which directed clients to a simple PHP file that logged the user’s IP address, the source (i.e. link clicked) and timestamped it. The entry would remain in the database until it was claimed or it timed out. Once the PHP file would be done with the user, it would redirect the user to the correct app store page (i.e. pretty much instantly).

Whenever a user started the app for the first time, the app connected to the same database and the PHP file checked if the user’s IP existed there. If the connection failed, it would try it again later. If the IP was found, then the entry was claimed and a new entry with the necessary information was added to another database with info such as when it was claimed, source, etc.

This is a pretty simple method for general attribution and if you already have a server and a domain, then it’d cost you only the hours you’d put into programming it.

Edit:  I edited the paragraph below because I completely forgot to mention how to address the limitation concerning IP addresses.

Its one weakness is, however, that IP addresses can change and there may be several users behind the same IP due to them being on the same network or behind a proxy. If you were to use JavaScript instead of PHP, then you can use device fingerprinting to further identify different devices. You can obtain things like user agent, screen resolution and its colour depth, font list, timezone and whatnot. So, this wouldn’t 100% guarantee that every user is unique, but it gets pretty damn close.

Still, it’s a pretty elegant solution in my opinion. I have been meaning to turn it into a plugin and a service, but I’ve been preoccupied with other projects, such as a story plugin that I’m working on atm. :stuck_out_tongue:
 

Tenjin is also free for starter and AppsFlyer is only .05 cents per install. I have never used Kochava. It took me a few days to set up AppsFlyer so that I can track every install, but I am no expert. I think you won’t necessarily find one, but I think you have the skills to do it yourself. Good luck and let me know how it goes. I am curious how your experience ends up being different than mine.

If you want to read my experience with the two services you can read it here: https://adriangomez.net/2018/09/16/ltv-and-cost-of-acquisition/. Sort of boring read but might at least give you some ideas of what I found out.

@agramonte and all, THANK YOU for taking the time to document your experience. I’m starting with Kochava, but I may end up with others. As I see it, we need A) a good attribution partner that charges the least, but provides enough benefit that we can still be profitable; and B) we need to find enough ways to advertise (aside from GoogleAds and Facebook), and the good news is that the attribution companies have an entire list of ad providers because they’ve built their API to support them. So, in a nutshell, the combination of A & B will help us to hit pay-dirt. And ultimately, our apps must monetize well enough, too. The last thing worth mentioning is that my understanding is that King, Playrix and other companies have a much easier time obtaining success once they have multiple apps. I have two, with a third to be done by Easter. Hopefully, I’ll have them all promoting themselves while also having an attribution partner that connects with the best places to advertise to obtain the best installs (best=users that spend money may be more costly per install, but make up for it in the back end). Then, it’s trial and error here. Please keep this thread going with ideas and experiences.

@XeduR @Spyric, thank you for taking the time to explain your concept for a home made attribution setup. I did this a couple of months ago, but there are too many complexities involved that prevent a particular reward of attribution from occuring because ip addresses and other identifiable info is disrupted by referrers who don’t want us to be successful without them (i.e. Google, maybe others). Kochava expands on the ip address idea to include a ‘user agent’, best described in this article: https://www.kochava.com/configurable-attribution-2-fingerprinting/

Because Kochava and the other attribution providers make it a point to be experts in this field, they will ultimately be able to keep up with the changes in the marketplace and empower us to benefit from their ongoing efforts. In my case, I make games and spending the necessary, meaningful time to make a best-in-class attribution fingerprint system isn’t the best use of my time.

So, before anyone goes off and attempts to create their own attribution system, be forewarned that its a ton of work to make a good one because it involves numerous other partnerships with companies (i.e. Google, Facebook, and other ad providers) to use their API to extract worthwhile data. Why revent the wheel? Just my two cents.

Nevertheless, thank you for sharing and please, everyone that reads this, contribute with any information or knowledge you have learned.

When it comes to marketing one’s services, then everyone is an expert regardless of whether they’ve ever touched the topic or not. :stuck_out_tongue: With those companies, I’m sure that they know their business though. But, yeah, this really comes down to personal preference and scale.

The “technology” is, however, really simply and there are no special tricks to it. I don’t really see how anyone could disrupt the process either nor do you need any partnerships. Consider this: 1) You buy an ad from Google, 2) You set the ad to take the user to your attribution URL, 3) The attribution URL is a JavaScript file that stores the visitor’s IP and creates a fingerprint based on the visitor’s user agent and other information that is freely accessible via JS. Then, 4) The JS forwards the user to the desires end URL, like an app store page. 5) When a person starts the app for the first time, the app checks the user’s IP against the database. If the IP exists, then check for the fingerprint. If both exists, then you can be almost certain that the user is the same as the visitor in the database.

The only two means of interfering with this method are:

  1. The link that the visitor clicks doesn’t take the user to your site, but this isn’t really a realistic problem. It’d be like buying a ad for your software, but instead the visitor is taken to a competitor’s site. :stuck_out_tongue:
  2. The only real issue that can interfere with this is if the visitor has some browser add-on or setting that automatically blocks all JS from running on any (new) site, but again, this wouldn’t affect even 0.001% of the possible users and at this point I’d be surprised if any of the other tracking methods would work either.

Now, using someone else’s ready and tested service is definitely easier, and depending on your scale, it may also be cheaper. If you consider AppFlyer’s 5 cents per attribution and you’d estimate that setting this up and testing it would take you 10-15 hours at 60$ per hour and add a custom domain and hosting to it for 100$ per month on top of that, then your fixed setup costs would run between 600$ and 900$, followed by 100$ of server costs each month. So, you’d need to have 12-18k attributions to break even with the setup costs, followed by 2k attributions per month.

So, for just one small app, this approach will definitely not be worth it, but the more apps you have and the more you advertise them, then the more attractive this approach will become.

I agree that reinventing the wheel is rarely smart, but what if borrowing a wheel from someone else simply costs more than building one for yourself? :stuck_out_tongue:

They do much more than simple attribution of an install. They can attribute a particular campaign, ad, or deep link to a particular install. In Tanjin case they can also tie those to purchases and ad monetization and then provide lifetime value for each install. So you know that campaign x on Google cost you y amount of money per install, but also brought you z amount.

Yeah, I know. Analytics would be a different thing entirely, unless you are just analysing the attribution related figures.

Attributing an install to a specific user from a specific campaign or ad isn’t difficult at all as those values are passed in the URL and can be handled by the same setup I’ve mentioned a few times now. The additional stuff, like how much value you get from specific ad could also be calculated. For instance, if you paid 500€ for a Facebook ad campaign and you got 1095 clicks and 591 positive attributions for that campaign, then it’s not really that hard to calculate that you paid 500€ / 1095 = 0.457€ per click and 500€ / 591 = 0.846€ per install. But again, the fancier setup you are going to come up with, the longer it will take to develop it.

You could also take the user’s UDID from the app when you are confirming whether the install is organic or not and you could store it with the other information, which would let you track a single user across multiple apps etc. until they’d eventually replace their phone, at which point you’d lose them. With Facebook and other methods, you’d most likely be able to follow them even after they change their device, but I prefer less intrusive data collection. :stuck_out_tongue:

Really, none of this stuff is hard. If anyone is interested in how easy it is to get some information out of a visitor by just using some read only methods, check out https://browserleaks.com/. There are also numerous projects available for free on GitHub that can perform those operations and create keys based on them, etc.

Setting up servers is not for me. I understand that is the route some people take, enjoy and are successful with. I always prefer to use somebody else’s services if they meet my needs and are cheap or free enough to afford. 

@trolylndon You inspired me to give Kochava a try. I just signed up and mostly integrated. I also like the reporting I have seen so far.

I can now confirm that the free plan of Kochava is working to track GoogleAds and Facebook. COST: FREE