概要
Adrop Android SDKのサンプルコードとサンプルプロジェクトをご確認ください。サンプルプロジェクト
GitHubで完全なサンプルプロジェクトを確認できます。Androidサンプルプロジェクト
Kotlinで作成されたAndroidサンプルアプリ
クイックスタートサンプル
バナー広告(Kotlin)
コピー
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import io.adrop.ads.banner.AdropBanner
class BannerActivity : AppCompatActivity() {
private lateinit var adropBanner: AdropBanner
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_banner)
// バナー広告を初期化
adropBanner = findViewById(R.id.adrop_banner)
adropBanner.unitId = "YOUR_UNIT_ID"
// 広告リスナーを設定(任意)
adropBanner.listener = object : AdropBanner.Listener {
override fun onAdReceived(banner: AdropBanner) {
// 広告受信成功
}
override fun onAdClicked(banner: AdropBanner) {
// 広告がクリックされた
}
override fun onAdFailedToReceive(banner: AdropBanner, errorCode: Int) {
// 広告受信失敗
}
}
// 広告を読み込む
adropBanner.load()
}
}
コピー
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<io.adrop.ads.banner.AdropBanner
android:id="@+id/adrop_banner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
ネイティブ広告(Kotlin)
コピー
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import io.adrop.ads.native.AdropNativeAd
import io.adrop.ads.native.AdropNativeAdView
class NativeAdActivity : AppCompatActivity() {
private lateinit var nativeAd: AdropNativeAd
private lateinit var nativeAdView: AdropNativeAdView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_native)
// ネイティブ広告を初期化
nativeAd = AdropNativeAd(this, "YOUR_UNIT_ID")
// 広告リスナーを設定
nativeAd.listener = object : AdropNativeAd.Listener {
override fun onAdReceived(ad: AdropNativeAd) {
// 広告受信成功 - UIをバインド
displayNativeAd(ad)
}
override fun onAdClicked(ad: AdropNativeAd) {
// 広告がクリックされた
}
override fun onAdFailedToReceive(ad: AdropNativeAd, errorCode: Int) {
// 広告受信失敗
}
}
// 広告を読み込む
nativeAd.load()
}
private fun displayNativeAd(ad: AdropNativeAd) {
// ネイティブ広告ビューをインフレート
val inflater = LayoutInflater.from(this)
nativeAdView = inflater.inflate(
R.layout.native_ad_layout,
null
) as AdropNativeAdView
// 広告要素をバインド
val iconView = nativeAdView.findViewById<ImageView>(R.id.ad_icon)
val titleView = nativeAdView.findViewById<TextView>(R.id.ad_title)
val bodyView = nativeAdView.findViewById<TextView>(R.id.ad_body)
val ctaButton = nativeAdView.findViewById<TextView>(R.id.ad_cta)
// 広告データを設定
ad.icon?.let { iconView.setImageBitmap(it) }
titleView.text = ad.title
bodyView.text = ad.body
ctaButton.text = ad.callToAction
// ネイティブ広告ビューに広告を登録
nativeAdView.setNativeAd(ad)
// コンテナに追加
val adContainer = findViewById<View>(R.id.native_ad_container)
adContainer.removeAllViews()
adContainer.addView(nativeAdView)
}
override fun onDestroy() {
nativeAd.destroy()
super.onDestroy()
}
}
コピー
<?xml version="1.0" encoding="utf-8"?>
<io.adrop.ads.native.AdropNativeAdView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ad_icon"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/ad_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/ad_icon"
android:layout_marginStart="12dp"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/ad_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ad_title"
android:layout_toEndOf="@id/ad_icon"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:textSize="14sp" />
<TextView
android:id="@+id/ad_cta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ad_body"
android:layout_alignParentEnd="true"
android:layout_marginTop="12dp"
android:background="@drawable/button_background"
android:padding="12dp"
android:textColor="@android:color/white"
android:textSize="14sp"
android:textStyle="bold" />
</RelativeLayout>
</io.adrop.ads.native.AdropNativeAdView>
インタースティシャル広告(Kotlin)
コピー
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import io.adrop.ads.interstitial.AdropInterstitialAd
class InterstitialActivity : AppCompatActivity() {
private var interstitialAd: AdropInterstitialAd? = null
private lateinit var showButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_interstitial)
showButton = findViewById(R.id.show_interstitial_button)
showButton.isEnabled = false
// インタースティシャル広告を読み込む
loadInterstitialAd()
showButton.setOnClickListener {
showInterstitialAd()
}
}
private fun loadInterstitialAd() {
interstitialAd = AdropInterstitialAd(this, "YOUR_UNIT_ID")
interstitialAd?.listener = object : AdropInterstitialAd.Listener {
override fun onAdReceived(ad: AdropInterstitialAd) {
// 広告読み込み完了 - 表示可能
showButton.isEnabled = true
}
override fun onAdFailedToReceive(ad: AdropInterstitialAd, errorCode: Int) {
// 広告読み込み失敗
showButton.isEnabled = false
}
override fun onAdFailedToShow(ad: AdropInterstitialAd, errorCode: Int) {
// 広告表示失敗
}
override fun onAdDidPresentFullScreen(ad: AdropInterstitialAd) {
// インタースティシャル広告が画面に表示された
}
override fun onAdDidDismissFullScreen(ad: AdropInterstitialAd) {
// インタースティシャル広告が閉じられた - 新しい広告を読み込む
loadInterstitialAd()
}
override fun onAdClicked(ad: AdropInterstitialAd) {
// 広告がクリックされた
}
}
interstitialAd?.load()
}
private fun showInterstitialAd() {
interstitialAd?.let { ad ->
if (ad.isLoaded) {
ad.show()
}
}
}
override fun onDestroy() {
interstitialAd?.destroy()
super.onDestroy()
}
}
リワード広告(Kotlin)
コピー
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import io.adrop.ads.rewarded.AdropRewardedAd
class RewardedAdActivity : AppCompatActivity() {
private var rewardedAd: AdropRewardedAd? = null
private lateinit var showButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_rewarded)
showButton = findViewById(R.id.show_rewarded_button)
showButton.isEnabled = false
// リワード広告を読み込む
loadRewardedAd()
showButton.setOnClickListener {
showRewardedAd()
}
}
private fun loadRewardedAd() {
rewardedAd = AdropRewardedAd(this, "YOUR_UNIT_ID")
rewardedAd?.listener = object : AdropRewardedAd.Listener {
override fun onAdReceived(ad: AdropRewardedAd) {
// 広告読み込み完了 - 表示可能
showButton.isEnabled = true
}
override fun onAdFailedToReceive(ad: AdropRewardedAd, errorCode: Int) {
// 広告読み込み失敗
showButton.isEnabled = false
}
override fun onAdFailedToShow(ad: AdropRewardedAd, errorCode: Int) {
// 広告表示失敗
}
override fun onAdDidPresentFullScreen(ad: AdropRewardedAd) {
// フルスクリーン広告が表示された
}
override fun onAdDidDismissFullScreen(ad: AdropRewardedAd) {
// 広告が閉じられた - 新しい広告を読み込む
loadRewardedAd()
}
override fun onAdClicked(ad: AdropRewardedAd) {
// 広告がクリックされた
}
override fun onAdEarnRewardHandler(ad: AdropRewardedAd, type: Int, amount: Int) {
// リワードを付与
Toast.makeText(
this@RewardedAdActivity,
"リワード獲得: タイプ $type を $amount 個",
Toast.LENGTH_SHORT
).show()
// ここで実際のリワード付与ロジックを実装
grantReward(type, amount)
}
}
rewardedAd?.load()
}
private fun showRewardedAd() {
rewardedAd?.let { ad ->
if (ad.isLoaded) {
ad.show()
}
}
}
private fun grantReward(type: Int, amount: Int) {
// ユーザーにリワードを付与するロジック
// 例:ゲームコイン、ライフ、アイテムなど
}
override fun onDestroy() {
rewardedAd?.destroy()
super.onDestroy()
}
}
Javaサンプル
バナー広告(Java)
コピー
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import io.adrop.ads.banner.AdropBanner;
public class BannerActivity extends AppCompatActivity {
private AdropBanner adropBanner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_banner);
// バナー広告を初期化
adropBanner = findViewById(R.id.adrop_banner);
adropBanner.setUnitId("YOUR_UNIT_ID");
// 広告リスナーを設定
adropBanner.setListener(new AdropBanner.Listener() {
@Override
public void onAdReceived(AdropBanner banner) {
// 広告受信成功
}
@Override
public void onAdClicked(AdropBanner banner) {
// 広告がクリックされた
}
@Override
public void onAdFailedToReceive(AdropBanner banner, int errorCode) {
// 広告受信失敗
}
});
// 広告を読み込む
adropBanner.load();
}
}
インタースティシャル広告(Java)
コピー
import android.os.Bundle;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import io.adrop.ads.interstitial.AdropInterstitialAd;
public class InterstitialActivity extends AppCompatActivity {
private AdropInterstitialAd interstitialAd;
private Button showButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_interstitial);
showButton = findViewById(R.id.show_interstitial_button);
showButton.setEnabled(false);
loadInterstitialAd();
showButton.setOnClickListener(v -> showInterstitialAd());
}
private void loadInterstitialAd() {
interstitialAd = new AdropInterstitialAd(this, "YOUR_UNIT_ID");
interstitialAd.setListener(new AdropInterstitialAd.Listener() {
@Override
public void onAdReceived(AdropInterstitialAd ad) {
showButton.setEnabled(true);
}
@Override
public void onAdFailedToReceive(AdropInterstitialAd ad, int errorCode) {
showButton.setEnabled(false);
}
@Override
public void onAdFailedToShow(AdropInterstitialAd ad, int errorCode) {
// 広告表示失敗
}
@Override
public void onAdDidPresentFullScreen(AdropInterstitialAd ad) {
// 広告が表示された
}
@Override
public void onAdDidDismissFullScreen(AdropInterstitialAd ad) {
// 広告が閉じられた - 新しい広告を読み込む
loadInterstitialAd();
}
@Override
public void onAdClicked(AdropInterstitialAd ad) {
// 広告がクリックされた
}
});
interstitialAd.load();
}
private void showInterstitialAd() {
if (interstitialAd != null && interstitialAd.isLoaded()) {
interstitialAd.show();
}
}
@Override
protected void onDestroy() {
if (interstitialAd != null) {
interstitialAd.destroy();
}
super.onDestroy();
}
}
応用サンプル
ダークモード対応
コピー
import io.adrop.ads.AdropSDK
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ダークモードを設定
val isDarkMode = resources.configuration.uiMode and
Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES
AdropSDK.setDarkMode(isDarkMode)
}
}
テストモード
コピー
import io.adrop.ads.AdropSDK
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// 初期化
AdropSDK.initialize(this, "YOUR_PRODUCTION_KEY")
// 開発中のみテストモードを有効化
if (BuildConfig.DEBUG) {
AdropSDK.setTestMode(true)
}
}
}