Android / Amazon HyprMX SDK
SDK Documentation
  • Getting Started
    • Android / Amazon Setup Guide
    • Privacy
    • Google's Data Safety Questionnaire
    • Migrate to Version 6.4+
  • Ad Formats
    • Rewarded Ads
    • Interstitial Ads
    • Banner/MREC Ads
  • 3rd Party Mediation
    • 3rd Party Mediation
      • AdMob Mediation
      • AppLovin MAX
      • Chartboost Mediation
      • Digital Turbine FairBid
      • Unity LevelPlay
      • X3M XMediator
  • Downloads/Change Log
    • Downloads
    • Change Log
      • Android SDK Change Log
      • Android AdMob Adapter Change Log
      • Android MAX Adapter Change Log
Powered by GitBook
On this page
  • SDK Integration
  • Initializing HyprMX
  • Initialization Callbacks
  • [Optional] Passing Alternative Identifiers
  • Privacy Compliance
  • License
  1. Getting Started

Android / Amazon Setup Guide

NextPrivacy

Last updated 5 months ago

The HyprMX SDK is designed to present rewarded, interstitial, and banner/MREC ads in your application. To integrate the SDK, follow the steps below.

SDK Integration

You can integrate the HyprMX SDK through dependencies. Follow the steps below to set up the SDK.

This guide assumes you already have your Gradle-based project up and running in Android Studio.

If your app is integrated with HyprMX SDK 6.x and you need help with migrating to 6.4+, please follow the steps in the .

1. Open your existing application in Android Studio.

2. Add the HyprMX SDK to your app's build.gradle file dependencies block:

dependencies {
    implementation 'com.hyprmx.android:HyprMX-SDK:6.4.2'
}

3. is optional. If the dependency below is included, it is the app developer's responsibility to ensure compliance with all Google Play policies, including, but not limited to, the .

dependencies {
    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
}

4. If you are using Kotlin in your application, add the following to your build.gradle inside the android block:

kotlinOptions {
  jvmTarget = "1.8"
  freeCompilerArgs = [
      "-Xjvm-default=compatibility",
  ]
}

Initializing HyprMX

After you have integrated the SDK, proceed to initialize the HyprMX SDK. To initialize, follow the steps below.

1. Add the following imports to your activity, or auto-import them as you move forward with your integration:

import com.hyprmx.android.sdk.core.HyprMX;
import com.hyprmx.android.sdk.core.HyprMXErrors;
import com.hyprmx.android.sdk.core.HyprMXIf;
import com.hyprmx.android.sdk.core.InitResult;
import com.hyprmx.android.sdk.placement.HyprMXPlacementExpiryListener;
import com.hyprmx.android.sdk.placement.HyprMXRewardedShowListener;
import com.hyprmx.android.sdk.placement.HyprMXShowListener;
import com.hyprmx.android.sdk.placement.Placement;
import com.hyprmx.android.sdk.core.HyprMX
import com.hyprmx.android.sdk.core.HyprMXErrors
import com.hyprmx.android.sdk.placement.HyprMXPlacementExpiryListener
import com.hyprmx.android.sdk.placement.HyprMXRewardedShowListener
import com.hyprmx.android.sdk.placement.HyprMXShowListener
import com.hyprmx.android.sdk.placement.Placement

2. Initialize the HyprMX SDK in your main Activity inside the onCreate method as shown below. As a best practice, initialize HyprMX as soon as possible (i.e. when your application is loading) so we can begin preloading ads.

private HyprMXIf.HyprMXInitializationListener initializationListener = this;
HyprMX.INSTANCE.initialize(this, DISTRIBUTOR_ID, initializationListener);

// or
HyprMX.INSTANCE.initialize(this, DISTRIBUTOR_ID, initResult -> {
   // do something
});
val initializationListener: HyprMXIf.HyprMXInitializationListener = this
HyprMX.initialize(this, DISTRIBUTOR_ID, initializationListener)

// or
HyprMX.initialize(this@MainActivity, DISTRIBUTOR_ID) { (isSuccess, message) ->
  // do something
}

// or
HyprMX.initialize(this@MainActivity, DISTRIBUTOR_ID) { result ->
  // do something
}

context (required)

Your current context instance.

distributorID (required)

The value for distributorID is assigned to your app by HyprMX. If you have not received this ID and your placements information, please reach out to your HyprMX account manager.

val (initSuccess, _) = HyprMX.initialize(this@MainActivity, DISTRIBUTOR_ID)

Initialization Callbacks

initializationListener is the listener for the Initialization Status of the SDK. It will callback to onInitialized as below:

private HyprMXIf.HyprMXInitializationListener initializationListener = new HyprMXIf.HyprMXInitializationListener() {
  @Override
  public void onInitialized(@NonNull InitResult initResult) {
    if(initResult.isSuccess()) {
      // do something
    }

    if(initResult.getMessage() != null) {
       // an error was thrown, i.e., isSuccess() == false
    }
  }
};
val initializationListener: HyprMXIf.HyprMXInitializationListener = object : HyprMXIf.HyprMXInitializationListener {
    override fun onInitialized(result: InitResult) {
      if(result.success) {
        // do something
      }
  
      if(!result.message.isNullOrEmpty()) {
         // an error was thrown, i.e., success == false
      }
    }
}

[Optional] Passing Alternative Identifiers

Alternative/Extended IDs are supported in HyprMX SDK 6.4+.

HyprMX SDK supports the following alternative IDs or extended IDs (EID) to help improve monetization. If applicable, you are responsible for tokenizing IDs before passing them to HyprMX SDK.

The following code snippet shows how to pass the IDs to HyprMX. Any optional fields supplied should be of the correct type.

public class EIDJson {
  public static final String EXTRA_USER_EIDS_KEY = "eids";

  public static final String UID2 =
    """
    {
        "uid2": [{
            "id": "testUID2Id"
        }]
    }
    """;

  public static final String ID5 =
    """
    {
        "id5": [{
            "id": "testID5id",
            "linkType": 1,
            "abTestingControlGroup": true
        }]
    }
    """;

  public static final String LIVE_INTENT =
    """
    {
        "liveintent": [{
            "id": "testLiveintentId",
            "atype": 1
        }]
    }
    """;
}

private void setExtentedID(@NonNull String value) {
  String eidData = null;
  try {
    // Make sure that UID JSON content is a valid one
    eidData = new JSONObject(value).toString();
  } catch (Exception ex)  {
    Log.e(TAG, "Error validating EID JSON structure.");
  }

  HyprMX.INSTANCE.setUserExtras(EIDJson.EXTRA_USER_EIDS_KEY, eidData);
}

// Setting extends ID for UID2
setExtendedID(EIDJson.UID2);
object EIDJson {
    val EXTRA_USER_EIDS_KEY = "eids"

    val UID2 =
    """
    {
        "uid2": [{
            "id": "testUID2Id"
        }]
    }
    """

    val ID5 =
    """
    {
        "id5": [{
            "id": "testID5id",
            "linkType": 1,
            "abTestingControlGroup": true
        }]
    }
    """

    val LIVE_INTENT =
    """
    {
        "liveintent": [{
            "id": "testLiveintentId",
            "atype": 1
        }]
    }
    """
}

private fun setExtendedID(value: String) {
  // Make sure that UID JSON content is a valid one
  val eidData = try {
    JSONObject(value).toString()
  } catch (ex: Exception)  {
    Log.e(TAG, "Error validating EID JSON structure.")
  null
  }

  HyprMX.setUserExtras(EIDJson.EXTRA_USER_EIDS_KEY, eidData)
}

// Setting extends ID for UID2
setExtendedID(EIDJson.UID2)

For best results, set alternative/extended IDs before initializing HyprMX.

Passing an empty string instead of json clears all alternative/extended IDs.

Privacy Compliance

License

Review the details of initialization parameters, and .

If you need to call HyprMx initializer inside a you can do as below:

After receiving the onInitialized callback, you are now ready to load and display ads in your application. See our , , and guides to add these ad types to your app.

You can convert these callbacks to lambda (Java) or use a on Kotlin, as shown above in the section.

Please refer to our page to learn more about your privacy compliance responsibilities and to implement the relevant privacy methods.

By integrating the HyprMX SDK, you are agreeing to the .

Gradle
migration guide
Adding Google Play Services Ads Identifier
Families Program
suspending function
Rewarded Ads
Interstitial Ads
Banner/MREC Ads
Unified ID 2.0 (UID2)
ID5
LiveIntent ID
Privacy
End User License Agreement
context
distributorID
high-order function
initialization