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
| Method | Description |
|---|---|
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
| Method | Description |
|---|---|
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
| Method | Description |
|---|---|
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_leftnative_ad_image_topnative_ad_large_imagenative_ad_mininative_ad_small_imagenative_ad_square_imagenative_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
| Method | Description |
|---|---|
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
- See complete working examples in Examples
- Learn about Configuration options