Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The ayeT-Studios Unity SDK allows you to easily monetize your app and reward your users with in-app currency. Your users get access to our offerwall, allowing them to earn virtual currency.
2022-04-25: v1.8 - Updated to latest Android & iOS SDKs, fixed some warnings, based on Unity
2021 2020-06-11: v1.7.1 - Updated documentation to introduce new parameters to differentiate chargebacks from conversions
2020-07-29: v1.7 - Updated to latest Android & iOS SDKs, based on Unity 2019 LTS 2019-07-19: v1.6 - Updated wrapper & SDKs with adslot changes, recompiled iOS SDK with Swift 5
2019-02-01: v1.5 - Fixed conversion tracking issues under certain conditions (application lifecycle monitoring improved)
2018-12-04: v1.4 - Updated to Android SDK 3.0 - support for API 26+ build targets, bugfixes & improved handling under poor network conditions
2018-09-29: v1.3 - Updated iOS SDK to Xcode 10 and Swift 4.2, stripped debug symbols
2018-07-09: v1.2 - Removed Simulator Code from iOS SDK, fixed iTunes validation issues with Xcode 9+
2018-07-02: v1.1 - Updated Unity SDK (iOS) to Unity 2018 / Swift 4.1 / XCode 9.4, added post-install script for automatic XCode configuration
2018-01-20: v1.0 - Initial Release of our Publisher SDK (Unity)
The below table shows all Placement & AdSlot Type combinations that allow you to utilize the Unity SDK integration.
If you integrate the Unity SDK while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to initialize the Offerwall.
Before you start with the integration, make sure you have:
You will find more details here:
You have to create separate placements and AdSlots for each platform you intend to build on.
Create one Placement and AdSlot for your Android App.
Create one Placement and AdSlot for your iOS App.
The minimum required OS version is iOS 11.0 (and Swift 5.x ABI) and Android 5.1+.
You can download the lastest version of our publisher package here:
Open your Unity Project
Assets -> Import Package -> Custom Package
Select the AyetUnityPlugin_vVersion.unitypackage file
Press the "Import" button to complete the process
If you're planning to build against Android, please make sure you have an AndroidManifest.xml file in Assets/Plugins/Android/. If no AndroidManifest exists, you can check out the following template: Appendix: AndroidManifest.xml Template.
Add these app permissions to the manifest:
Add our Offerwall activity to your scope:
In this step, we are going to initialize the SDK. We also use callbacks to track the user's account balance - this is optional and not required if you're planning to manage user balances on your own servers.
Attention: The username or external identifier passed in the init call (e.g. username, hashed email address, etc.) will be accessible in the conversion callbacks through the {external_identifier} parameter.
First, the SDK needs to be initialized like this (APP_KEY is the placement identifier you can find in your dashboard in the android or ios placement details):
Implement the SdkUserBalance interface in order to get notified when user balance changes occur:
userBalanceInitialized is triggered after calling AyetSdk.init().
userBalanceChanged is triggered if the user balance changes while running the app.
If you want to spend user currency, for example if the user clicks a "purchaseInAppItem" button, you can utilize the deductUserBalance function:
Implement the SdkDeductCallback interface in order to get notified if a deduction succeeded:
After initializing the SDK, you can check the current user balances anywhere in your code:
showOfferwall starts our offerwall activity and displays available tasks for the user to complete.
If you're going to use Proguard in your release build to obfuscate your application, make sure to add the following rules to your proguard-rules.pro files:
It's always highly recommended to test your release builds before publishing them on Google Play to verify that they behave as intended!
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
Placement Type | AdSlot Type | Eligible Integration Type |
---|---|---|
Android App
Offerwall
Unity SDK
iOS App
Offerwall
Unity SDK
The Android SDK allows you to easily monetize your app and reward your users with in-app currency. Your users get access to our offerwalls, allowing them to earn currency for completing offers.
2022-04-12: v3.6 - Updated SDK to Android Api 30 (Android 11) and restored compliance with updated privacy requirements
2022-02-11: v3.5.2 - Removed Rewarded Video from documentation
2020-08-11: v3.5.1 - Updated documentation to introduce new parameters to differentiate chargebacks from conversions
2020-07-29: v3.5 - Improved UI / handling, removed deprecated INSTALL_REFERRER, performance improvements and bug fixes
2019-08-20: v3.4 - Updated Android SDK to support decimal places in payouts (currency amount) for native offers
2019-07-19: v3.3 - Updated Android SDK and documentation to reflect the adslot changes 2019-06-21: v3.2 - Native Offer Feed functionality
2019-02-01: v3.1 - Fixed conversion tracking issues under certain conditions (application lifecycle monitoring improved)
2018-11-29: v3.0 - Full support for API 26+ build targets, bugfixes, simplified use & improved handling under poor network conditions
2018-07-02: v2.1 - Fixed video ad orientation & resolution issues on Android 8.1
2018-06-18: v2.0 - Video Ads & Rewarded Video Ads 2017-11-01: v1.1 - Fixed incompatibilities with present GSON dependencies 2017-10-29: v1.0 - Initial Release of our Publisher SDK (Android)
The table below shows all Placement & AdSlot Type combinations that allow you to utilize the Android SDK integration.
If you integrate the Android SDK while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to initialize the Offerwall or Native Offer Feed.
Before you start with the integration, make sure you have:
You will find more details here:
Make sure to use the correct package name that you intend to use for your final app.
Or create a test placement with a different package name that matches the package name of your test app.
If package name of your placement and your actual app don't match, you can't initialize the Offerwall.
The integration is simple and allows both managed and unmanaged user balances / currencies.
A managed user balance / currency is a user balance that is stored on our servers. We store user information and the amount of virtual currency a user owns. You can use balance listeners to manage the amount of currency each user has on our servers.
We don't recommend a managed user balance!
Managed user balances don't work well alongside additional rewarded ad integrations.
An unmanaged user balance / currency is a user balance that is stored on your servers. You receive callbacks and handle user wallets yourself.
This form of user balance is recommended.
You will find additional information about callbacks at the end of the Adndroid SDK documentation.
You can download the lastest version of our publisher library here:
Copy the downloaded jar library to your Android Studio project (in the app/libs/ folder). Go to "Module Settings" (F12 or right-click your app in the Project View) and check the dependencies tab to make sure the library is added as a file dependency and set to "Compile":
Afterwards open your AndroidManifest.xml and add our offerwall activity to your application scope:
Another AndroidManifest.xml requirement is your AYET_APP_KEY which you can fetch from our publisher dashboard in your placement or adslot details - add it to the application scope as well:
Also make sure to check your permissions in the AndroidManifest.xml:
In this step, we are going to initialize the SDK in the main activity. We also use callbacks to track the user's account balance - this is optional and not required if you're planning to manage user balances on your own servers.
Attention: The username or external identifier passed in the init call (e.g. username, hashed email address, etc.) will be accessible in the conversion callbacks through the {external_identifier} parameter.
If you want to make sure the SDK has been initialized and is ready to display the Offerwall or video ads, you can use the following function:
If you want to spend user currency, for example if the user clicks a "purchaseInAppItem" button, you can utilize the deductUserBalance function:
Showing the offerwall for an offerwall adslot is straight-forward, you can simply call showOfferwall from any Activity:
showOfferwall starts the offerwall activity for the adslot you pass as second parameter and displays available tasks for the user to complete.
If you want to display the offers manually in a custom form (e.g. "native offers"), you can call getNativeOffers for a Native Offer Feed adslot you created in your placement:
getNativeOffers fetches all offers fitting this user / device in the background and calls NativeOffersCallback on completion. This usually takes between 0.5s and 4s depending on your adslot configuration and traffic sources.
After retrieving a list of native offers, you can store them and later activate one of the offers like this:
activateOffer takes an offer id found in the native offer feed, checks the requirements and tries to reserve it for the user.
Class members for each AyetOffer entry are:
If you're going to use Proguard in your release build to obfuscate your application, make sure to add the following rules to your proguard-rules.pro files:
It's always highly recommended to test your release builds before publishing them on Google Play to verify that they behave as intended!
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
This covers the ayeT-Studios React Native Publisher SDK. This npm package is a wrapper for our web offerwall that allows effortless integration in react native apps.
The table below shows all Placement & AdSlot Type combinations that allow you to utilize the React Native SDK integration.
If you integrate the React Native SDK while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to initialize the Offerwall.
Before you start with the integration, make sure you have:
You will find more details here:
When working on multiple platforms, we recommend a single "Website" placement and a separate "Offerwall" adslot for each.
This allows better targeting, offer control and individual reporting and history & earnings for every user are available cross-platform:
One "Offerwall" adslot for your Website.
One "Offerwall" adslot for the associated React Native Android App.
One "Offerwall" adslot for the associated React Native iOS App.
You can check out our example app here:
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
The Flutter SDK allows you to easily monetize your app or website. Your users get access to our offerwall, allowing them to earn currency for completing offers.
This is a non-official Flutter SDK and is NOT supported by ayeT-Studios, but built by the community. You are integrating this SDK at your own risk.
The below table shows all Placement & AdSlot Type combinations that allow you to utilize the Flutter SDK integration.
If you integrate the Flutter SDK while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to initialize the Offerwall.
Before you start with the integration, make sure you:
You will find more details here:
You have to create separate placements and AdSlots for each platform you intend to build on.
Create one Placement and AdSlot for your Website.
Create one Placement and AdSlot for your Android App.
Create one Placement and AdSlot for your iOS App.
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
The Offerwall API provides a solution for publishers who want to include an Offerwall in their application/website but have control over the presentation of the offers.
The table below shows all Placement & AdSlot Type combinations that allow you to utilize the Offerwall API integration.
If you integrate the Offerwall API while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to make correct API requests.
Before you start with the integration, make sure you:
You will find more details here:
For API Calls, all offers matching the parameters provided will be returned and can be displayed to the user.
The Offerwall API supports both server and client-side calls.
Follow the link below to get to the detailed technical documentation.
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
Placement Type | AdSlot Type | Eligible Integration Type |
---|---|---|
Placement Type | AdSlot Type | Eligible Integration Type |
---|---|---|
Placement Type | AdSlot Type | Eligibile Integration Type |
---|
Placement Type | AdSlot Type | Eligible Integration Type |
---|
Android App
Offerwall
Android SDK
Android App
Native Offer Feed
Android SDK
Website
Offerwall
React Native SDK
Android App | Offerwall | Flutter SDK |
iOS App | Offerwall | Flutter SDK |
Website | Offerwall | Flutter SDK |
Android App | Offerwall API | Offerwall API |
iOS App | Offerwall API | Offerwall API |
Website | Offerwall API | Offerwall API |
Learn more about the Offerwall metrics available in our dashboard and how to use them in your reporting
The Static API is recommended only for special integrations, because not all campaigns are available without more sophisticated device match.
If integrated, it should be called each 15-30 minutes to make sure our campaigns are still available, did not run into daily caps or changed targeting / bid.
The "Static API key" for requests is adslot specific and available in the adslot details once approved by your account manager.
The table below shows all Placement & AdSlot Type combinations that allow you to utilize the Static API integration.
If you integrate the Offerwall API while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to make correct API requests.
Before you start with the integration, make sure you:
You will find more details here:
API calls return a list of currently running campaigns on our platform which suit your adslot configuration. Can be filtered by additional parameters.
Note: To pass custom parameters from clicks to conversion callbacks, the tracking_link parameter in offer objects can be extended with &custom_1=... to &custom_5=...
Follow the link below to get to the detailed technical documentation.
If you also request Multi-Reward Offers (CPE Offers) to display them to your users, you can use the CPE Offer Status API to track user progress and build a user journey displaying completed and available tasks.
Follow the link to learn more about the CPE Offer Status API.
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
The ayeT-Studios Publisher Browser Web Offerwall allows you to easily monetize your desktop and mobile traffic and reward your users with virtual currency.
The below table shows all Placement & AdSlot Type combinations that allow you to utilize the Web Offerwall integration.
If you integrate the Web Offerwall while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to initialize the Offerwall.
Technically, the Offerwall has to be implemented by opening a new browser tab or loading the Offerwall link inside an iframe.
This type of Web Offerwall is intended to be called directly in an actual browser and is not very well suited for webview (in-app) integration. For this type of integration, please take a look at our seamless In-App integrations by checking out our available SDKs, Wrappers and Plugins.
The Web Offerwall can nevertheless be used in-app if you follow a few guidelines
Your placement has to be a "Website" placement
You have link out of your app to open the Web Offerwall in a mobile browser
Please follow the Integration Best Practises.
Before you start with the integration, make sure you:
You will find more details here:
The URL template for our web offerwall looks like this:
To retrieve the URL for one of your web offerwall adslots, click on "Edit" next to an AdSlot under Placements / Apps and retrieve the Integration URL in the modal.
URL Parameters:
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
The iOS SDK allows you to easily monetize your app and reward your users with in-app currency. Your users get access to our offerwalls, allowing them to earn currency for completing offers.
2020-08-11: v1.7.1 - Updated documentation to introduce new parameters to differentiate chargebacks from conversions
2020-07-29: v1.7 - Updated iOS SDK to xcframework, support for Xcode 12, Swift 5.x, iOS 11+, dropped ARMv7 support
2019-10-20: v1.6 - Updated iOS SDK to Xcode 11, iOS 13 SDK, Swift 5.1, full binary support
2019-07-19: v1.5 - Updated iOS SDK with adslot changes, recompiled with Swift 5, re-added x86_64 (simulator) support
2018-09-29: v1.4.2 - Updated iOS SDK to Xcode 10 and Swift 4.2, stripped debug symbols
2018-07-09: v1.4.1 - Removed Simulator Code from iOS SDK, fixed iTunes validation issues with Xcode 9+
2018-05-07: v1.4 - Framework recompiled with Swift 4.1
2018-03-08: v1.3 - You are able to use logs now in order to locate implementation problems
2018-01-20: v1.2 - Added functions that provide current user balances
2017-12-06: v1.0 - Initial Release of our Publisher SDK (iOS)
The below table shows all Placement & AdSlot Type combinations that allow you to utilize the Android SDK integration.
If you integrate the iOS SDK while using a different Placement & AdSlot combination in the ayeT-Studios dashboard, you won't be able to initialize the Offerwall.
Before you start with the integration, make sure you have:
You will find more details here:
Make sure to use the correct package name that you intend to use for your final app.
Or create a test placement with a different package name that matches the package name of your test app.
If package name of your placement and your actuall app don't match, you can't initialize the Offerwall.
You can download the lastest version of our publisher library here:
Unzip the downloaded xcframework archive file, preferably somewhere in your project root
Navigate to your project root in the Project Navigator, select General tab and then expand Frameworks, Libraries, and Embedded Content.
Click on the + sign and add the archive to your project, using Embed & Sign. The final configuration should look like this:
Please add the following to your Info.plist file:
You'll need to initialize ayeT SDK before being able to use it. A good place to do this is the application:didFinishLaunchingWithOptions: method in your application delegate:
If you want to spend user currency, for example if the user clicks a button assigned to a purchaseInAppItem function, you can utilize the deductBalance function:
The status string will be "success" if the balance deduction was successful or "failed" if something went wrong (e.g. insufficient user balance).
Attention: The username or external identifier passed in the init call (e.g. username, hashed email address, etc.) will be accessible in the conversion callbacks through the {external_identifier} parameter.
After initializing the SDK, you can check the current user balances anywhere in your code:
Showing the offerwall is straight-forward, you can simply call showOfferwall from your UIViewController:
showOfferwall starts our offerwall activity for the given adslot and displays available tasks for the user to complete.
If you want to see logs in Xcode debug area, simply call sdkLogEnable before initializing sdk.
Learn about:
Setting up callbacks
IP Whitelists
Securing callbacks using HMAC Security Hash
Testing callbacks
Click on the link below:
Group | Metric | Description |
---|---|---|
Placement Type | AdSlot Type | Eligible Integration Type |
---|---|---|
Placement Type | AdSlot Type | Eligible Integration Type |
---|---|---|
Platform | Integration Best Practise | Offers |
---|---|---|
Parameter | Mandatory | Description |
---|---|---|
Placement Type | AdSlot Type | Eligible Integration Type |
---|---|---|
Revenue & Costs
Revenue
The publisher's net revenue from completed offers.
AdServer Fees
This is the amount deducted from the revenue for the AdServer service. (*equals 0 if AdServer is not used)
Delivery
DAU
Unique Users per calendar day using the offerwall.
Offerwall Requests
Total non-unique requests to the Offerwall (counts users multiple times if they enter the offerwall several times a day).
Unique Offerwall Requests
Unique requests to the Offerwall by users (including users that churned by not accepting the privacy policy).
Unique Offerwall Entries
Unique entries to the Offerwall by users (consisting of users which are accepting the privacy policy or have accepted it already in the past).
Interactions
Impressions
An impression is registered once a user opens the Offerwall (no time delay).
Clicks
This equals the number of offers which were started.
Conversions
A conversion is registered once an offer is completed.
Performance
EPC
The average Earnings per Click calculated from the Revenue divided by the amount of clicks.
eCPM
The average CPM (Cost per Thousand) calculated from Revenue divided by Offerwall Requests times 1000.
ARPDAU
The Average Revenue per Daily Active User.
Website
Static API
Static API
Android App
Static API
Static API
iOS App
Static API
Static API
API / Network
Static API
Static API
Website
Offerwall
Web Offerwall
Desktop
Open the web offerwall in a new tab or iframe.
The web Offerwall shows web and mobile offers to the user. Users can send mobile offers to their mobile devices.
Mobile Web
Open the web offerwall in a new tab or iframe.
The web offerwall adjusts its layout if users access via a mobile device. I.e. for accessing via an Android device, users will see elibile Android offers to complete.
In-App
Create a button in your app that leads users into their mobile browser and into the ayeT-Studios Web Offerwall.
The web offerwall shows mobile offers according the the user's device only.
external_identifier
yes
Your identifier for the calling user - this is mandatory, has to be minimum 3 characters and allows you to attribute our Server2Server conversion callbacks to a specific user (returned in {uid})
custom_1
no
Custom parameter you can pass to the Offerwall Entry Link in the form of: &custom_1={YOUR_CUSTOM_PARAMETER}
You can get this variable back via conversion callbacks
custom_2
no
Custom parameter you can pass to the Offerwall Entry Link in the form of: &custom_2={YOUR_CUSTOM_PARAMETER}
You can get this variable back via conversion callbacks
custom_3
no
Custom parameter you can pass to the Offerwall Entry Link in the form of: &custom_3={YOUR_CUSTOM_PARAMETER}
You can get this variable back via conversion callbacks
custom_4
no
Custom parameter you can pass to the Offerwall Entry Link in the form of: &custom_4={YOUR_CUSTOM_PARAMETER}
You can get this variable back via conversion callbacks
custom_5
no
Custom parameter you can pass to the Offerwall Entry Link in the form of: &custom_5={YOUR_CUSTOM_PARAMETER}
You can get this variable back via conversion callbacks
iOS App
Offerwall
iOS SDK