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

Display native ads that match your app's look and feel.

Required Elements

Each Native Ad should include:

  • Main Image (mainImageUrl)
  • Icon Image (iconUrl)
  • Headline (title)
  • Body Text (body)
  • Call To Action (ctaText)
  • Publisher Name (sponsoredBy)

Supported Layout Types

  • native_ad_image_left
  • native_ad_image_top
  • native_ad_large_image
  • native_ad_mini
  • native_ad_small_image
  • native_ad_square_image
  • native_ad_video

Usage Example

Kotlin
val nativeLoader = OcmNativeAdLoader(
this,
"ca-app-pub-3940256099942544/2247696110",
object : OcmNativeAdListener {
override fun onAdLoaded(ad: OcmNativeAd) {
val nativeView = OcmNativeAdViewFactory.create(this@MainActivity, ad)
val adContainer: FrameLayout = findViewById(R.id.nativeAdContainer)
adContainer.removeAllViews()
adContainer.addView(nativeView)

Log.d("SDK", "✅ Native Ad Loaded")
}

override fun onAdFailed(error: String) {
Log.e("SDK", "❌ Native Ad Failed: $error")
}
}
)

// Load the ad
nativeLoader.load()
Java
OcmNativeAdLoader nativeLoader = new OcmNativeAdLoader(
this,
"ca-app-pub-3940256099942544/2247696110",
new OcmNativeAdListener() {
@Override
public void onAdLoaded(OcmNativeAd ad) {
View nativeView = OcmNativeAdViewFactory.create(MainActivity.this, ad);
FrameLayout adContainer = findViewById(R.id.nativeAdContainer);
adContainer.removeAllViews();
adContainer.addView(nativeView);

Log.d("SDK", "✅ Native Ad Loaded");
}

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

// Load the ad
nativeLoader.load();

OcmNativeAdListener

MethodDescription
onAdLoaded(ad)Native ad loaded successfully
onAdFailed(error)Ad failed to load

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