TapResearch Rewarded Surveys generate revenue for your app by providing your users with surveys to complete for in-app currency.

This overview describes how a typical integration works, from start to finish.

Key Terms#

InitializationThe first stage of the SDK when it is loaded.
User IdentifierAn identifier of the current user, must be unique for each user and consistent across sessions.
PlacementThe Placement is the object that will determine if a user has surveys available and serves as the access point to TapResearch.
Reward CallbacksThe method in which TapResearch will send an update about a reward that was earned by the user. There are two types of rewards: in-app and server-to-server. Both are discussed in the Rewards section below.


The placement is the access point to TapResearch. Generally it's associated with a call to action that will take the user to TapResearch. The Placement should be called just before the call to action is presented to the user. If the initialization is successful and the Placement survey availability property is true, the call to action can be presented to the user. If the survey availability property is false, the call to action should not be shown. The following chart describes the best flow to achieve maximum results from the integration.

call to action initialization

Best practices:#

  • The SDK initialization should happen as quickly as possible after application start. The SDK may take a few seconds to fully initialize before the placement call is ready.
  • To avoid needing to show a waiting indicator, the placement call should be made at least a couple of seconds before the CTA needs to be rendered. The placement call makes a realtime API call to check available survey inventory for the current user.
  • The placement call should be refreshed at least every 30 minutes, as survey inventory changes regularly.

A Placement may indicate that no surveys are available for the user under the following circumstances:

  • The Placement was initialized before the SDK initialization was complete
  • The user failed to pass certain validations (e.g. underage user, VPN connections, fraudulent behavior)
  • In some locales, inventory is limited

Please note that although the survey availability flag is false, the survey wall can still be called but the result will be a dialog with the message that there are no surveys available. This will result in a poor user experience because the user expects to earn rewards but will only be presented with a rejection.

A Placement is only valid for one call to action. After the user returns from TapResearch, the Placement will be disabled on our side. You will need to request a new Placement before showing the call to action again.


TapResearch has two types of integration: in-app callbacks and "server-to-server." An app can only use one type of callback.

In-App Callbacks#

In-app callbacks will be fired in the following circumstances:

  • When the user closes TapResearch
  • After a successful SDK initialization

Every reward is a separate callback. For example, if the user completes three surveys, the SDK will fire three different callbacks with three different reward amounts. The method delegate must be properly passed to the SDK or the callbacks won’t be fired.

Server-to-Server Callbacks#

Server-to-Server callbacks disable in-app callbacks and it’s up to the app to notify the user about their reward. These callbacks are fired immediately after a user has earned a reward.

Reward Callbacks Visualized#

Rewards Map