Easy way to integrate Admob, Unity Ads and all the other SDKs

I’ve already released more than 10 games with AIR, and have never used any 3rd party ANE (like Milkman) for ads integration. I’m using Enhance, a technology which injects SDKs right into the byte code of the game.

The technology exists since 2017, it is stable and I’m quite surprised that it’s not well-known in AS3 development community.

Here’s how it works

  1. At https://enhance.co/ you select, which types of SDKs would you like to integrate into your game/app.

1a. For some SDk types, like static banner or usage metrics (to measure retention) no additional work from you is needed. But if you want to integrate SDKs with custom behavior, download and integrate a connector ANE, and write the placeholder code into your game.
For example, to markup an interstitial call, write this piece of code:

Enhance.showInterstitialAd();

  1. Select what exact SDKs do you want to integrate into your game or app:


    All you need to do is to select the ckeckboxes and provide the integration data

  2. Upload the .apk or .ipa file, and after a minute or so download the version with all the byte-codes integrated.

Now you are ready to submit your game to the stores, and SDKs will be working: ads will be showing, analytics will be tracking, etc.

And now the killer feature: if you decide to change the SDK integrated, let’s say, Admob to Unity, you don’t need to rebuild your game. Just log in to Enhance, select “ReEnhance”, make different selection of SDK checkboxes and download the new version.

Since 2017 I have integrated Firebase, Facebook, Appodeal, Admob, Unity Ads, AdColony and Applovin SDKs into my own games, they are working well.

2 Likes

This sounds amazing - too good to be true in fact! I had a quick look at the site and it appears to be free. How are they making money? Are they a big data company?

Particularly useful for Analytics and Ads, since the Milkman Games Admob Ane is soon to be defunct.

There are 3 main income streams:

  1. When the developer integrates ads, also own Enhance Ads solution is integrated. It is shown only as a backup, if the developer-selected ads solutions don’t have coverage.
  2. Paid subscriptions with dedicated support
  3. Custom deals with the SDK providers, to integrate them into the system and promote.

There are 2 main reasons why dev would not want to use that

  1. Now each time you want to publish you have to go trough an online service
    that’s a manual process that conflict with automated process
    for some dev this is not acceptable or possible at all

  2. the Enhance Terms of Service
    section “6.0 DATA RIGHTS AND PUBLISHER PRIVACY POLICY.”
    and “6.1 Data Collection and Use.”
    eg.

    In consideration for the Services and license to the Platform, you agree that we may collect data related to an end user’s use of the App during the App’s incorporation of the Platform, including an end user’s access to the App Content and interaction with the App, App Content and/or any services provided via the Platform (collectively, the “Data”). For example, when an end user interacts with any App Content, we may deploy tracking technologies on behalf of third party services which you have integrated into the App (“Third Party Services”), on your behalf, and/or, on our own behalf, to record information about such interaction and any other information required to fulfill our obligations to you and any Third Party Services. When we collect Data on our own behalf, we will use such Data to maintain and improves our Services and for other internal business purposes related to the provision of our Services.

    and “6.2 Publisher Compliance.”
    eg.

    “We may incorporate software and tools supplied by Enhance, Inc. (“ENHANCE”) into our content, which provides you the ability to interact with ENHANCE and its and third parties’ content and to receive ads and other content (the “Platform”). When you interact with the Platform, ENHANCE and third parties it works with may associate cookies or other technologies with your mobile device to collect certain information, such as device or other persistent identifiers and information about your usage of the Platform and across various content that you interact with in the App. ENHANCE may help us use such information from these interactions in order to serve you content or advertisements about goods and services likely to be of greater interest to you.”

Hey send us the thing we will do all the hard work of integration for you and it is free!!!
but … "we may deploy tracking technologies on behalf of third party, on your behalf, and/or, on our own behalf … ", in short they can track and exploit any data in your app.

Personally I see huge problems with that.

1 Like

Before proceeding further I want to state it clear: earlier I worked as developer relations at FGL, then at Enhance, but last year, when I joined Lion Studios, I resigned, so, now I’m not legally connected. However, I maintain good relations with the team (we all spectated the Golden Age of Flash game development in the same community) and often give them feedback about the service work (i.e. I helped to make Enhance connector for 64-bit AIR).

Now to the questions.

  1. There is a possibility to launch an automated deploy process, without upload/download. As far as I remember, the automated enhancement pipeline is under on of the paid tiers.

  2. In 2018 making GDPR copliant was a big headache for many companies. For Example, there is a way to set up a waterflow among the ads integrated into the game. Or, for example, if the developer integrates ads (using any technology), the ads provider gains access to the mobile device UID. The cases like these are clearly covered in the ToS.

The phrase

send us your game and we will use its data HAHAHA

might be true if the service like this had appeared out of nowhere. But here I think, the main reason to trust Enhance is the reputation. Enhance is the daughter company of FGL. Remember Flash Game License? They were a major pillar of indie gamedev during the Golden Age.

Thanks so much for letting everyone know about it. I hear the caution of @zwetan and he makes sense, but I was looking for a quick way to play with integrating Firebase (which would be useful but not essential), so I expect to give this a go.

hummm

exactly I said

they can track and exploit any data in your app

and

Personally I see huge problems with that.


So I understand you worked for them and want to keep a good relationship, etc.
but still I’m not saying what I said earlier out of blind anger or bad faith

Having a company being able to install custom tracking in your app (whoever they are), without having to tell you any details about it aka “on your behalf” is a fucking huge deal breaker for me.

So yeah I don’t know Enhance, I never worked for them, but I can read a TOS
and I do know exactly everything you can track from mobile apps.

There are companies which sole business model is to produce “free mobile apps”
to gather maximum user tracking data.


So let’s have a serious discussion about that, you know, as app provider or vendor.

Let me very clear, I’m not making a personal attacks against Enhance, they can thrive forever or go bankrupt tomorrow, I do not care whichever way.

Now let’s see some previous articles about the subject

  • Your Apps Know Where You Were Last Night, and They’re Not Keeping It Secret

    Dozens of companies use smartphone locations to help advertisers and even hedge funds. They say it’s anonymous, but the data shows how personal it is.

    New York Times, December 2018

  • Lawsuit: Weather Channel illegally shared user location data with advertisers

    IBM-owned company accused of tricking app users with false disclosures.

    “Unbeknownst to many users, the Weather Channel App has tracked users’ detailed geolocation data for years , analyzing and/or transferring that data to third parties for a variety of commercial and advertising purposes, including for targeted advertisements based on locations users frequent, and for hedge funds interested in analyzing consumer behavior,” the lawsuit said.

    Ars Technica, January 2019

  • AccuWeather caught sending user location data, even when location sharing is off

    A security researcher has found that the popular weather app sends private location data without the user’s explicit permission to a firm designed to monetize user locations.

    Security researcher Will Strafach intercepted the traffic from an iPhone running the latest version of AccuWeather and its servers and found that even when the app didn’t have permission to access the device’s precise location, the app would send the Wi-Fi router name and its unique MAC address to the servers of data monetization firm Reveal Mobile every few hours. That data can be correlated with public data to reveal an approximate location of a user’s device.

    ZD Net, August 2017

  • The Weather Channel app unlawfully obtained user location data, says prosecutor

    It’s the most popular weather service on iOS

    The Weather Channel app is one of the most popular weather services in the United States, and it’s rated number one in the iOS App Store in the weather category as of Friday morning. The app has been downloaded over 100 million times across operating systems and the Weather Company, the IBM-owned business, bolsters 45 million active monthly users.

    “For years, [The Weather Channel] has deceptively used its Weather Channel App to amass its users’ private, personal geolocation data — tracking minute details about its users’ locations throughout the day and night, all the while leading users to believe that their data will only be used to provide them with ‘personalized local weather data, alerts and forecasts,’” the government said in the lawsuit.

    and here IBM answer

    IBM responded to the lawsuit, saying, “The Weather Company has always been transparent with use of location data; the disclosures are fully appropriate, and we will defend them vigorously.”

    The Verge, January 2019

  • Geolocation in mobile apps: How brands are using it for marketing?

    Weather forecast
    Apps like Yahoo Weather, Weather Underground, Weather Forecast, AccuWeather etc are based on geolocation technology and used to alert you about cold wave or rain in recent days. Geolocation technology helps in gathering information about weather in your area and provides accurate information for upcoming days or weeks in your area.

    and (for example)

    How brands are using it for marketing purpose?
    Many brands have discovered the power of geolocation technology. For them, it is meaningful to know where the customer is and what his likes/dislikes are. Today, every company has understanding of where their customers are. Geolocation based solutions help companies to give all the benefits their customers in the right time at the right place. Moreover, it ensures that the personal information of their customer is safe and secured.

    Medium / Promatics Technologies, March 2018


All those quotes and links just to say “I’m not saying it”, tons of journalists, researchers and security researchers are saying it.

And I’m not saying Enhance is doing that either, I’m not accusing them of anything.

But I do say that, the combination of “online enhancement” for your apps and the Enhance TOS make all that possible “on your behalf” without the service provider (Enhance) to have to disclose you (the app dev) anything.

And I’m not against tracking, I’m for tracking but done responsibly, eg. you as an app dev knowing exactly what is tracked and telling the users of the app exactly what is tracked and in some case even giving them the choice to disable it.

See for example:

.NET Core SDK telemetry

The .NET Core SDK includes a telemetry feature that collects usage data and exception information when the .NET Core CLI crashes. The .NET Core CLI comes with the .NET Core SDK and is the set of verbs that enable you to build, test, and publish your .NET Core apps. It’s important that the .NET team understands how the tools are used so they can be improved. Information on failures helps the team resolve problems and fix bugs.

The collected data is anonymous and published in aggregate under the Creative Commons Attribution License.

and then they provide Scope, How to opt out, Disclosure, Data points, etc.

And note this is just for a command-line tool.


So when I say Im “for tracking” but “done responsibly”, what do I mean then ?

I think, as a developer of an app, any apps: web, mobile, desktop, server, command-line;
you have a responsibility of not cheating or lying to your users

Responsible is about adding tracking, metrics, markers, etc. to understand how your users use the app in order to improve it for the users, or detecting errors, bugs, crashes etc. to fix them, or giving you insight knowledge of “what works” / “what doesn’t work”.

Something you will not be ashamed to disclose to your users (eg. you’re not doing anything bad), and in my opinion nothing better to disclose it upfront.

But in order to do this you HAVE TO know exactly what’s going on, what is tracked.

Tracking the geolocation of all your users, in order to provide them precise weather data, yeah sure no problem.

Tracking the geolocation of all your users, collect all the data, organise it by country/city and sell those precious data to a 3rd party … not so good.

To be bluntly clear, with the Enhance TOS
you (the developer) HAVE TO inform your users of your app using Enhance services

“We may incorporate software and tools supplied by Enhance, Inc. (“ENHANCE”) into our content, which provides you the ability to interact with ENHANCE and its and third parties’ content and to receive ads and other content (the “Platform”). When you interact with the Platform, ENHANCE and third parties it works with may associate cookies or other technologies with your mobile device to collect certain information, such as device or other persistent identifiers and information about your usage of the Platform and across various content that you interact with in the App. ENHANCE may help us use such information from these interactions in order to serve you content or advertisements about goods and services likely to be of greater interest to you.”

But Enhance DO NOT HAVE TO inform you (the developer) nor your users of what they may track or not.

I’m not saying that Enhance is evil, I’m saying you don’t know and can not know.

That’s what I call a huge problem.

You as an app developer or vendor CAN NOT control or know what is tracked by a 3rd party service (Enhance).

And about TOS, let’s compare Google Analytics Terms of Service

The English US one

6. Information Rights and Publicity.

Google and its wholly owned subsidiaries may retain and use, subject to the terms of its privacy policy (located at https://www.google.com/policies/privacy/), information collected in Your use of the Service. Google will not share Your Customer Data or any Third Party’s Customer Data with any third parties unless Google (i) has Your consent for any Customer Data or any Third Party’s consent for the Third Party’s Customer Data; (ii) concludes that it is required by law or has a good faith belief that access, preservation or disclosure of Customer Data is reasonably necessary to protect the rights, property or safety of Google, its users or the public; or (iii) provides Customer Data in certain limited circumstances to third parties to carry out tasks on Google’s behalf (e.g., billing or data storage) with strict restrictions that prevent the data from being used or shared except as directed by Google. When this is done, it is subject to agreements that oblige those parties to process Customer Data only on Google’s instructions and in compliance with this Agreement and appropriate confidentiality and security measures.

see the difference?

“Google will not share Your Customer Data or any Third Party’s Customer Data with any third parties unless Google has Your consent for any Customer Data or any Third Party’s consent for the Third Party’s Customer Data”

and (to be complete)

7. Privacy.

You will not and will not assist or permit any third party to, pass information to Google that Google could use or recognize as personally identifiable information. You will have and abide by an appropriate Privacy Policy and will comply with all applicable laws, policies, and regulations relating to the collection of information from Users. You must post a Privacy Policy and that Privacy Policy must provide notice of Your use of cookies, identifiers for mobile devices (e.g., Android Advertising Identifier or Advertising Identifier for iOS) or similar technology used to collect data. You must disclose the use of Google Analytics, and how it collects and processes data. This can be done by displaying a prominent link to the site “How Google uses data when you use our partners’ sites or apps”, (located at www.google.com/policies/privacy/partners/, or any other URL Google may provide from time to time). You will use commercially reasonable efforts to ensure that a User is provided with clear and comprehensive information about, and consents to, the storing and accessing of cookies or other information on the User’s device where such activity occurs in connection with the Service and where providing such information and obtaining such consent is required by law.

You must not circumvent any privacy features (e.g., an opt-out) that are part of the Service. You will comply with all applicable Google Analytics policies located at www.google.com/analytics/policies/ (or such other URL as Google may provide) as modified from time to time (the “Google Analytics Policies” ).

in short by using google analytics you HAVE TO inform your users of how you track them

eg.
“You must post a Privacy Policy and that Privacy Policy must provide notice of Your use of cookies, identifiers for mobile devices or similar technology used to collect data.”

it is not optional


My point: read the damn TOS, and trust no one.

2 Likes

Well done Zwetan, you’ve really done your research!

Again, I’m not trying to diss a company here, but I would very much like for dev to be aware what they are trading for.

2 Likes

Thank you, @zwetan! I think the team just needs to provide a more detailed ToS explaining, what this service will, and what this service will never do with the app where third-party SDKs are integrated.

1 Like