ターゲティング設定を通じて、特定のユーザーグループにカスタマイズされた広告を表示できます。Adrop SDKは2つのターゲティング方式を提供します:
- オーディエンスターゲティング:ユーザーの属性(プロパティ)に基づいて広告を表示します。
- コンテキストターゲティング:コンテンツの文脈(カテゴリ、トピックなど)に基づいて広告を表示します。
ターゲティングデータを収集するには、広告ロード前にUIDとプロパティを設定する必要があります。
UID設定
ユーザー識別子(UID)を設定してユーザーを区別します。UIDはターゲット広告の基盤となります。
使い方
import io.adrop.ads.Adrop
// ユーザーログイン後
Adrop.setUID("user_123")
// ユーザーログアウト時
Adrop.setUID("")
パラメータ
| パラメータ | タイプ | 説明 |
|---|
uid | String | ユーザー固有識別子(例:サービス会員ID) |
UIDはSHA-256でハッシュされて送信されます。個人情報(メール、電話番号など)を直接渡さないでください。
ログアウト時に空文字列("")を渡してUIDを初期化してください。
オーディエンスターゲティング
ユーザーの属性情報(プロパティ)を収集して、特定のユーザーグループに広告を表示します。
プロパティ設定
AdropMetrics.setProperty()メソッドを使用してユーザーの属性情報を収集します。
import io.adrop.ads.metrics.AdropMetrics
// 文字列プロパティ
AdropMetrics.setProperty("membership_level", "premium")
// 数値プロパティ
AdropMetrics.setProperty("booking_count", 15)
// ブールプロパティ
AdropMetrics.setProperty("is_subscriber", true)
// null渡し(プロパティ削除)
AdropMetrics.setProperty("membership_level", null)
パラメータ
| パラメータ | タイプ | 説明 |
|---|
key | String | プロパティキー(最大64文字) |
value | Any? | プロパティ値(String、Int、Double、Long、Boolean、null) |
- プロパティキーは最大64文字までです。
- 文字列値は最大256文字までです。
- 数値は最大9007199254740991までです。
- 最大256個のプロパティを設定できます。
デフォルトプロパティ
Adrop SDKはターゲティング用のデフォルトプロパティを提供します。AdropKeyとAdropValueクラスを使用して値を設定します。
年齢(生年月日)
生年月日情報を渡すと自動的に年齢が計算されます。
import io.adrop.ads.metrics.AdropMetrics
import io.adrop.ads.model.AdropKey
import io.adrop.ads.model.AdropValue
// 年のみ(yyyy)
AdropMetrics.setProperty(AdropKey.BIRTH, "1990")
// 年月(yyyyMM)
AdropMetrics.setProperty(AdropKey.BIRTH, "199003")
// 年月日(yyyyMMdd)
AdropMetrics.setProperty(AdropKey.BIRTH, "19900315")
日付フォーマット定数
| 定数 | 値 | 説明 |
|---|
AdropValue.AdropBirth.formatYear | "yyyy" | 年のみ(例:“1990”) |
AdropValue.AdropBirth.formatYearMonth | "yyyyMM" | 年月(例:“199003”) |
AdropValue.AdropBirth.formatYearMonthDay | "yyyyMMdd" | 年月日(例:“19900315”) |
import io.adrop.ads.metrics.AdropMetrics
import io.adrop.ads.model.AdropKey
import io.adrop.ads.model.AdropValue
// 男性
AdropMetrics.setProperty(AdropKey.GENDER, AdropValue.AdropGender.MALE)
// 女性
AdropMetrics.setProperty(AdropKey.GENDER, AdropValue.AdropGender.FEMALE)
// その他
AdropMetrics.setProperty(AdropKey.GENDER, AdropValue.AdropGender.OTHER)
// 不明
AdropMetrics.setProperty(AdropKey.GENDER, AdropValue.UNKNOWN)
性別値定数
| 定数 | 値 | 説明 |
|---|
AdropValue.AdropGender.MALE | "M" | 男性 |
AdropValue.AdropGender.FEMALE | "F" | 女性 |
AdropValue.AdropGender.OTHER | "O" | その他 |
AdropValue.UNKNOWN | "U" | 不明 |
年齢を直接設定
生年月日の代わりに年齢を直接設定することもできます。
import io.adrop.ads.metrics.AdropMetrics
import io.adrop.ads.model.AdropKey
AdropMetrics.setProperty(AdropKey.AGE, 30)
BIRTHとAGEのどちらか一方だけ設定すれば十分です。両方設定された場合はBIRTHが優先されます。
カスタムプロパティ
サービスに合わせたカスタムプロパティを設定できます。カスタムプロパティはAdropコンソールのターゲティングメニューで先に定義する必要があります。
import io.adrop.ads.metrics.AdropMetrics
// ローカルアクティビティアプリ例
AdropMetrics.setProperty("region", "Seoul")
AdropMetrics.setProperty("booking_count", 5)
// ショッピングモールアプリ例
AdropMetrics.setProperty("membership_tier", "gold")
AdropMetrics.setProperty("total_purchase_amount", 1500000)
// メディアアプリ例
AdropMetrics.setProperty("favorite_genres", arrayOf("drama", "action"))
AdropMetrics.setProperty("is_premium_subscriber", true)
カスタムプロパティ名はコンソールで定義した名前と正確に一致する必要があります。大文字小文字を区別します。
プロパティ使用例
ユーザーがアプリの特定の画面に入った時にプロパティを更新する例です。
import io.adrop.ads.Adrop
import io.adrop.ads.metrics.AdropMetrics
import io.adrop.ads.model.AdropKey
import io.adrop.ads.model.AdropValue
class ProfileActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_profile)
// ユーザー情報を取得
val user = getUserInfo()
// UID設定
Adrop.setUID(user.id)
// デフォルトプロパティ設定
AdropMetrics.setProperty(AdropKey.BIRTH, user.birthDate)
AdropMetrics.setProperty(AdropKey.GENDER, user.gender)
// カスタムプロパティ設定
AdropMetrics.setProperty("membership_level", user.membershipLevel)
AdropMetrics.setProperty("total_booking_count", user.bookingCount)
}
}
コンテキストターゲティング
コンテンツの文脈(カテゴリ、トピックなど)に応じて広告を表示します。バナー広告とネイティブ広告でcontextId属性を使用します。
バナー広告
XMLで設定
<io.adrop.ads.banner.AdropBanner
android:id="@+id/adropBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:adrop_unit_id="PUBLIC_TEST_UNIT_ID_320_50"
app:adrop_context_id="article_sports" />
コードで設定
import io.adrop.ads.banner.AdropBanner
val adropBanner = AdropBanner(this, "PUBLIC_TEST_UNIT_ID_320_50", "article_sports")
// または既存のインスタンスに設定
val existingBanner = findViewById<AdropBanner>(R.id.adropBanner)
// contextIdはコンストラクタでのみ設定可能です
ネイティブ広告
ネイティブ広告はコンストラクタでcontextIdを設定できます。
import io.adrop.ads.nativead.AdropNativeAd
import io.adrop.ads.nativead.AdropNativeAdListener
val nativeAd = AdropNativeAd(this, "PUBLIC_TEST_UNIT_ID_NATIVE")
nativeAd.listener = object : AdropNativeAdListener {
override fun onAdReceived(ad: AdropNativeAd) {
// 広告受信成功
}
override fun onAdFailedToReceive(ad: AdropNativeAd, errorCode: Int) {
// 広告受信失敗
}
}
// contextIdと共に広告をロード
nativeAd.load("article_technology")
Context ID使用例
ニュースアプリで記事カテゴリに応じて広告を表示する例です。
import io.adrop.ads.banner.AdropBanner
class ArticleActivity : AppCompatActivity() {
private lateinit var adropBanner: AdropBanner
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_article)
// 記事カテゴリを取得
val articleCategory = getArticleCategory() // "sports", "technology", "entertainment"など
// カテゴリに合ったContext IDでバナーを作成
val contextId = "article_$articleCategory"
adropBanner = AdropBanner(this, "YOUR_UNIT_ID", contextId)
// レイアウトに追加
val container = findViewById<ViewGroup>(R.id.ad_container)
container.addView(adropBanner)
// 広告をロード
adropBanner.load()
}
}
Context IDはコンソールで定義したコンテキストターゲティングカテゴリと一致する必要があります。
ベストプラクティス
1. 広告ロード前にUIDを設定
// 正しい例
Adrop.setUID("user_123")
adropBanner.load()
// 誤った例
adropBanner.load()
Adrop.setUID("user_123") // 広告ロード後に設定するとターゲティングが適用されない
2. 意味のあるContext IDを使用
// 正しい例
val contextId = "article_${article.category}" // "article_sports", "article_tech"
val adropBanner = AdropBanner(this, unitId, contextId)
// 誤った例
val contextId = "page_${randomNumber}" // 意味のないランダム値
val adropBanner = AdropBanner(this, unitId, contextId)
3. 変更があるたびにプロパティを更新
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// アプリ起動時に初期プロパティを設定
updateUserProperties()
}
fun onUserPurchaseComplete(purchaseAmount: Int) {
// 購入完了時にプロパティを更新
val currentTotal = getCurrentTotalPurchase()
AdropMetrics.setProperty("total_purchase_amount", currentTotal + purchaseAmount)
}
fun onMembershipUpgrade(newTier: String) {
// メンバーシップアップグレード時にプロパティを更新
AdropMetrics.setProperty("membership_tier", newTier)
}
}
4. ログアウト時にUIDを初期化
fun onUserLogout() {
// UID初期化
Adrop.setUID("")
// 必要に応じてプロパティも初期化
AdropMetrics.setProperty("membership_level", null)
AdropMetrics.setProperty("total_booking_count", null)
}
関連ドキュメント
FAQ
UIDを設定しないとターゲット広告は表示されませんか?
UIDを設定しなくても広告は表示されますが、オーディエンスターゲティングが適用されません。基本ターゲティング(国、言語など)のみ使用されます。精密なターゲティングにはUID設定が必須です。
プロパティを設定しましたがコンソールにデータが表示されません。
プロパティデータは収集後最大24時間以内にコンソールに反映されます。データが表示されない場合:
- コンソールでプロパティが正しく定義されているか確認してください。
- SDKから渡すプロパティキーがコンソールと正確に一致するか確認してください(大文字小文字を区別)。
AdropMetrics.setProperty()が広告ロード前に呼び出されているか確認してください。
Context IDはどの形式で作成すべきですか?
Context IDはコンテンツの文脈を表す意味のある文字列である必要があります。例えば:
- ニュースアプリ:
"article_sports"、"article_tech"、"article_entertainment"
- ショッピングアプリ:
"category_fashion"、"category_electronics"
- 動画アプリ:
"video_drama"、"video_comedy"
コンソールで定義したコンテキストターゲティングカテゴリと一致するように設定してください。
はい、文字列配列、数値配列、ブール配列をすべてサポートしています。例えばユーザーの関心事を配列で渡すことができます:AdropMetrics.setProperty("favorite_genres", arrayOf("drama", "action", "comedy"))
プロパティ値にnullを渡すとそのプロパティが削除されます:AdropMetrics.setProperty("membership_level", null)