Skip to main content

API Reference

Complete API documentation for all ad formats supported by the OCM AdNetwork SDK.


🖼️ Banner Ads​

OcmBannerView​

Display standard banner ads in your app.

XML Layout​

Add the banner view to your layout file:

<com.orangeclickmedia.adnetwork.banner.OcmBannerView
android:id="@+id/banner"
android:layout_width="300dp"
android:layout_height="250dp" />

Loading a Banner​

Kotlin​
val bannerView: OcmBannerView = findViewById(R.id.banner)

bannerView.load(
configId = "1001-sreq-test-300x250-imp-1",
listener = this // must implement BannerListener
)
Java​
OcmBannerView bannerView = findViewById(R.id.banner);

bannerView.load(
"1001-sreq-test-300x250-imp-1",
this // must implement BannerListener
);

BannerListener​

Respond to banner ad events by implementing BannerListener:

Kotlin​

class MainActivity : AppCompatActivity(), BannerListener {

override fun onAdLoaded() {
Log.d("AdNetworkSDK", "✅ Ad Loaded")
}

override fun onAdFailed(error: Throwable) {
Log.e("AdNetworkSDK", "❌ Ad Failed", error)
}

override fun onAdClicked() {
Log.d("AdNetworkSDK", "👆 Ad Clicked")
}

override fun onImpression() {
Log.d("AdNetworkSDK", "📊 Ad Impression")
}
}

Java​

public class MainActivity extends AppCompatActivity implements BannerListener {

@Override
public void onAdLoaded() {
Log.d("AdNetworkSDK", "✅ Ad Loaded");
}

@Override
public void onAdFailed(Throwable error) {
Log.e("AdNetworkSDK", "❌ Ad Failed", error);
}

@Override
public void onAdClicked() {
Log.d("AdNetworkSDK", "👆 Ad Clicked");
}

@Override
public void onImpression() {
Log.d("AdNetworkSDK", "📊 Ad Impression");
}
}

Listener Methods​

MethodDescription
onAdLoaded()Called when the ad successfully loads
onAdFailed(error)Called when ad loading fails
onAdClicked()Called when user taps the ad
onImpression()Called when ad impression is tracked

🏆 Rewarded Ads​

OcmRewardedLoader​

Display rewarded video ads and reward users for watching.

Initialization​

Kotlin​
private lateinit var rewardedLoader: OcmRewardedLoader

rewardedLoader = OcmRewardedLoader(
adUnitId = "ca-app-pub-3940256099942544/5224354917",
listener = object : OcmRewardedListener {
override fun onRewardedAdLoaded() {
Log.d("SDK", "✅ Rewarded Ad Loaded")
}

override fun onRewardedAdFailedToLoad(code: Int, message: String) {
Log.e("SDK", "❌ Failed: $code $message")
}

override fun onRewardedAdShowFailed(code: Int, message: String) {
Log.e("SDK", "❌ Show Failed: $code $message")
}

override fun onRewardedAdDisplayed() {
Log.d("SDK", "▶️ Ad Displayed")
}

override fun onRewardedAdDismissed() {
Log.d("SDK", "❌ Ad Dismissed")
}

override fun onRewardedUserEarnedReward(result: RewardedResult) {
Log.d("SDK", "🏆 Reward: ${result.rewardAmount} ${result.rewardType}")
}
}
)
Java​
private OcmRewardedLoader rewardedLoader;

rewardedLoader = new OcmRewardedLoader(
"ca-app-pub-3940256099942544/5224354917",
new OcmRewardedListener() {
@Override
public void onRewardedAdLoaded() {
Log.d("SDK", "✅ Rewarded Ad Loaded");
}

@Override
public void onRewardedAdFailedToLoad(int code, String message) {
Log.e("SDK", "❌ Failed: " + code + " " + message);
}

@Override
public void onRewardedAdShowFailed(int code, String message) {
Log.e("SDK", "❌ Show Failed: " + code + " " + message);
}

@Override
public void onRewardedAdDisplayed() {
Log.d("SDK", "▶️ Ad Displayed");
}

@Override
public void onRewardedAdDismissed() {
Log.d("SDK", "❌ Ad Dismissed");
}

@Override
public void onRewardedUserEarnedReward(RewardedResult result) {
Log.d("SDK", "🏆 Reward: " + result.getRewardAmount() + " " + result.getRewardType());
}
}
);

Loading and Showing​

Kotlin​
// Load the ad
rewardedLoader.load(context)

// Show when ready
rewardedLoader.show(activity)
Java​
// Load the ad
rewardedLoader.load(context);

// Show when ready
rewardedLoader.show(activity);

OcmRewardedListener​

MethodDescription
onRewardedAdLoaded()Ad has loaded and is ready to show
onRewardedAdFailedToLoad(code, message)Ad failed to load
onRewardedAdShowFailed(code, message)Ad failed to present
onRewardedAdDisplayed()Ad is now being displayed
onRewardedAdDismissed()User dismissed the ad
onRewardedUserEarnedReward(result)User completed the ad and earned reward

🎬 Interstitial Ads​

OcmInterstitialLoader​

Display full-screen interstitial ads at natural transition points.

Initialization​

Kotlin​
private lateinit var interstitialLoader: OcmInterstitialLoader

interstitialLoader = OcmInterstitialLoader(
context = this,
prebidConfigId = "1001-sreq-test-inters",
gamAdUnitId = "75351959/testadunit/test_app_interstitial",
listener = object : OcmInterstitialListener {
override fun onInterstitialLoaded() {
Log.d("SDK", "✅ Interstitial Loaded")
}

override fun onInterstitialFailedToLoad(error: String) {
Log.e("SDK", "❌ Load Failed: $error")
}

override fun onInterstitialShown() {
Log.d("SDK", "▶️ Interstitial Shown")
}

override fun onInterstitialClosed() {
Log.d("SDK", "✖️ Interstitial Closed")
}

override fun onInterstitialClicked() {
Log.d("SDK", "👆 Interstitial Clicked")
}
}
).apply {
setFetchTimeout(5000) // 5 seconds timeout
setAutoRefreshInterval(60000) // optional: reload every 60s
loadAd() // preload immediately
}
Java​
private OcmInterstitialLoader interstitialLoader;

interstitialLoader = new OcmInterstitialLoader(
this,
"1001-sreq-test-inters",
"75351959/testadunit/test_app_interstitial",
new OcmInterstitialListener() {
@Override
public void onInterstitialLoaded() {
Log.d("SDK", "✅ Interstitial Loaded");
}

@Override
public void onInterstitialFailedToLoad(String error) {
Log.e("SDK", "❌ Load Failed: " + error);
}

@Override
public void onInterstitialShown() {
Log.d("SDK", "▶️ Interstitial Shown");
}

@Override
public void onInterstitialClosed() {
Log.d("SDK", "✖️ Interstitial Closed");
}

@Override
public void onInterstitialClicked() {
Log.d("SDK", "👆 Interstitial Clicked");
}
}
);

interstitialLoader.setFetchTimeout(5000);
interstitialLoader.setAutoRefreshInterval(60000);
interstitialLoader.loadAd();

Showing the Ad​

Kotlin​
if (interstitialLoader.isAdReady()) {
interstitialLoader.show(this)
} else {
Log.d("SDK", "Ad not ready yet")
}
Java​
if (interstitialLoader.isAdReady()) {
interstitialLoader.show(this);
} else {
Log.d("SDK", "Ad not ready yet");
}

OcmInterstitialListener​

MethodDescription
onInterstitialLoaded()Ad loaded successfully
onInterstitialFailedToLoad(error)Ad failed to load
onInterstitialShown()Ad is now displayed
onInterstitialClicked()User tapped the ad
onInterstitialClosed()User closed the ad

📱 Native Ads​

OCMNativeAdLoader​

Create the loader with an Android Context after SDK initialization. Use loadNativeOnly() to fetch and render a Prebid native bid without GAM:

val loader = OCMNativeAdLoader(this)
val listener = object : OcmNativeAdListener {
override fun onNativeAdLoaded(ad: OcmNativeAd) {
val view = OcmNativeAdViewFactory.create(this@MainActivity, ad)
val container: FrameLayout = findViewById(R.id.nativeAdContainer)
container.removeAllViews()
container.addView(view)
}

override fun onNativeAdFailedToLoad(error: String?) {
Log.e("Native", error.orEmpty())
}
}
loader.loadNativeOnly("your-prebid-native-config-id", listener)

The Prebid request requires a title and main image. Icon, sponsor, description, and call to action are optional. The factory uses the native_ad_image_top layout and registers Prebid impressions and clicks before the view is attached.

To fetch Prebid demand and then request a GAM native ad, use:

loader.loadNative(
prebidConfigId = "your-prebid-native-config-id",
gamAdUnitId = "your-gam-native-ad-unit-id",
prebidCustomFormatId = "your-gam-prebid-custom-format-id",
ocmNativeAdListener = listener
)

The custom format ID must identify the Prebid native custom format configured in GAM. This path can return either a Prebid custom format ad or a standard GAM native ad. OcmNativeAdViewFactory.create() registers the returned ad with the appropriate tracking API; attach the returned view to your container.

OcmNativeAdListener​

MethodDescription
onNativeAdLoaded(ad: OcmNativeAd)A Prebid or GAM native ad is ready to render.
onNativeAdFailedToLoad(error: String?)Native loading or creative lookup failed.

Common Types​

RewardedResult​

Contains reward information when user completes a rewarded ad:

data class RewardedResult(
val rewardType: String, // Reward type (e.g., "coins")
val rewardAmount: Int // Reward amount
)

Error Handling​

All error callbacks provide descriptive error messages. Common error scenarios:

  • Network connectivity issues
  • Invalid ad unit IDs
  • No ad inventory available
  • SDK not initialized
  • Privacy restrictions

Always implement error listeners to handle these gracefully.


Next Steps​