SDK DocumentationRecipesAnnouncementsSupport Forum
AndroidiOSAnnouncementsSupport Forum

Integration Verifier (debug mode)

Using the Integration Verifier

Taboola Integration Verifier is a special debug mode that helps you check and verify your Taboola
SDK integration into your project

❗️

Important Note!

It is very important to disable the verifier before releasing a version to the Google Play or other 3rd party store. Do not distribute the app with the verifier enabled.

πŸ“˜

Note!

If tests fail you will be notified with dynamic urgency, mostly it will just be a log message. If a test succeeds you will not be bothered at all.

Step 1: Add IntegrationVerifier to your Application extending class

In Application class

In your Application class, inside the onCreate() method, before any method call to Taboola, make the following call:

Taboola.verifyIntegration(false);
  • stopOnMandatoryFail - True will immediately stop further verifications from executing if a critical verification failed

Without Application class

If you don't already have an Application class in your project please add one following these steps:

  • Create a new class that extends the Application Android object.
  • In your AndroidManifest.xml:
    • In your AndroidManifest.xml: inside the Application tag, add the tag name with the path to your Application class.
    • For example: <application ... android:name="com.example.MyAppliaction" ... >
  • Override the class method onCreate()
  • Add the call to verifyIntegration here, after super.onCreate() and before any other call to Taboola.

Step 2: Proguard rules

If you choose to obfuscate your project, please incorporate Taboola's Proguard rules as described in the Getting Started with the Android SDK page.

Notice that the Proguard rules have updated and now contain a line specific to IntegrationVerifier. The specific rule is relevant for all Android SDK versions above 2.1.0

-keepnames class com.taboola.android.integration_verifier.testing.tests.proguard_stub.ProguardVerificationStub

Step 3: Run the tests

If you want to see a cleanly formatted Verification process report feel free to use the following API:

Taboola.getTaboolaImpl().getIntegrationVerifier().logStatusReport() - Will print a log with the status of all verifications up to the point of calling this method.

Taboola.getTaboolaImpl().getIntegrationVerifier().clearStatusRerpot() - Will clean all collected information regarding verifications up to the point of calling this method.

Best Practice: We recommend calling logStatusReport after you manage to experience your desired functionality (i.e., after seeing content).

Keep in mind that, while on, the IntegrationVerifier will keep producing Logcat indications if it detected something wrong with your integration of Taboola SDK.

Recommendation: To keep track of verification status it is recommended to filter Logcat logs with the tag IntegrationVerifier

Troubleshooting

Test result "Unavailable":

  • If any test fails for failing network traffic, 3rd party fails to provide data, etc.. tests will not signal publisher has failed integration, instead they will be gracefully "unavailable".
  • If you are developing a higher SDK version than the released version then the verification test will be unavailable (instead of succeed or fail)
  • If, for any reason, you are developing for a lower SDK version than released version the SdkVersion test will fail. It's ok it's not mandatory.

Multiple SDK Init calls:
If your integration requires you to call sdk init() multiple times, the following applies:

  • IntegrationVerifier allows host apps to integrate any combination of single/multiple sdk integration types (Via Native and Via JS)
  • IntegrationVerifier does not allow host apps to perform multiple init() calls for the same integration type.

Permissions:

  • Currently Taboola only requires INTERNET permissions to work.
  • INTERNET permission cannot be manually revoked β†’ Although a full unit test was written to examine the Permissions Verification it is currently not inside the SDK project.
    The above test will be added once additional permissions will be required or optional permissions will be checked (COARSE_LOCATION currently).

Integration Support

Should you have any problems integrating the product, log a ticket with us by emailing your account manager. For non official SLA support you can also check our discussion forum