> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adrop.io/llms.txt
> Use this file to discover all available pages before exploring further.

# ターゲティング設定

> Android SDKでターゲティングを通じて特定のユーザーグループにカスタマイズされた広告を表示する方法を説明します。

## 概要

ターゲティング設定を通じて、特定のユーザーグループにカスタマイズされた広告を表示できます。Adrop SDKは2つのターゲティング方式を提供します：

* **オーディエンスターゲティング**：ユーザーの属性（プロパティ）に基づいて広告を表示します。
* **コンテキストターゲティング**：コンテンツの文脈（カテゴリ、トピックなど）に基づいて広告を表示します。

<Note>
  ターゲティングデータを収集するには、広告ロード前にUIDとプロパティを設定する必要があります。
</Note>

***

## UID設定

ユーザー識別子（UID）を設定してユーザーを区別します。UIDはターゲット広告の基盤となります。

### 使い方

<CodeGroup>
  ```kotlin Kotlin theme={null}
  import io.adrop.ads.Adrop

  // ユーザーログイン後
  Adrop.setUID("user_123")
  ```

  ```java Java theme={null}
  import io.adrop.ads.Adrop;

  // ユーザーログイン後
  Adrop.INSTANCE.setUID("user_123");
  ```
</CodeGroup>

### パラメータ

| パラメータ | タイプ      | 説明                    |
| ----- | -------- | --------------------- |
| `uid` | `String` | ユーザー固有識別子（例：サービス会員ID） |

<Warning>
  UIDはSHA-256でハッシュされて送信されます。個人情報（メール、電話番号など）を直接渡さないでください。
</Warning>

***

## オーディエンスターゲティング

ユーザーの属性情報（プロパティ）を収集して、特定のユーザーグループに広告を表示します。

### プロパティ設定

`AdropMetrics.setProperty()`メソッドを使用してユーザーの属性情報を収集します。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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)
  ```

  ```java Java theme={null}
  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);
  ```
</CodeGroup>

### パラメータ

| パラメータ   | タイプ      | 説明                                          |
| ------- | -------- | ------------------------------------------- |
| `key`   | `String` | プロパティキー（最大64文字）                             |
| `value` | `Any?`   | プロパティ値（String、Int、Double、Long、Boolean、null） |

<Warning>
  * プロパティキーは最大64文字までです。
  * 文字列値は最大256文字までです。
  * 数値は最大9007199254740991までです。
  * 最大256個のプロパティを設定できます。
</Warning>

### デフォルトプロパティ

Adrop SDKはターゲティング用のデフォルトプロパティを提供します。`AdropKey`と`AdropValue`クラスを使用して値を設定します。

#### 年齢（生年月日）

生年月日情報を渡すと自動的に年齢が計算されます。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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")
  ```

  ```java Java theme={null}
  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");
  ```
</CodeGroup>

**日付フォーマット定数**

| 定数                                         | 値            | 説明                |
| ------------------------------------------ | ------------ | ----------------- |
| `AdropValue.AdropBirth.formatYear`         | `"yyyy"`     | 年のみ（例："1990"）     |
| `AdropValue.AdropBirth.formatYearMonth`    | `"yyyyMM"`   | 年月（例："199003"）    |
| `AdropValue.AdropBirth.formatYearMonthDay` | `"yyyyMMdd"` | 年月日（例："19900315"） |

#### 性別

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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)
  ```

  ```java Java theme={null}
  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);
  ```
</CodeGroup>

**性別値定数**

| 定数                              | 値     | 説明  |
| ------------------------------- | ----- | --- |
| `AdropValue.AdropGender.MALE`   | `"M"` | 男性  |
| `AdropValue.AdropGender.FEMALE` | `"F"` | 女性  |
| `AdropValue.AdropGender.OTHER`  | `"O"` | その他 |
| `AdropValue.UNKNOWN`            | `"U"` | 不明  |

#### 年齢を直接設定

生年月日の代わりに年齢を直接設定することもできます。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  import io.adrop.ads.metrics.AdropMetrics
  import io.adrop.ads.model.AdropKey

  AdropMetrics.setProperty(AdropKey.AGE, 30)
  ```

  ```java Java theme={null}
  import io.adrop.ads.metrics.AdropMetrics;
  import io.adrop.ads.model.AdropKey;

  AdropMetrics.setProperty(AdropKey.AGE, 30);
  ```
</CodeGroup>

<Note>
  `BIRTH`と`AGE`のどちらか一方だけ設定すれば十分です。両方設定された場合は`BIRTH`が優先されます。
</Note>

### カスタムプロパティ

サービスに合わせたカスタムプロパティを設定できます。カスタムプロパティは[Adropコンソール](https://console.adrop.io)の**ターゲティング**メニューで先に定義する必要があります。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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)

  // メディアアプリ例
  // 注意: 配列値は直接サポートされていません。JSON文字列を使用してください。
  AdropMetrics.setProperty("favorite_genres", """["drama","action"]""")
  AdropMetrics.setProperty("is_premium_subscriber", true)
  ```

  ```java Java theme={null}
  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);

  // メディアアプリ例
  // 注意: 配列値は直接サポートされていません。JSON文字列を使用してください。
  AdropMetrics.setProperty("favorite_genres", "[\"drama\",\"action\"]");
  AdropMetrics.setProperty("is_premium_subscriber", true);
  ```
</CodeGroup>

<Warning>
  カスタムプロパティ名はコンソールで定義した名前と正確に一致する必要があります。大文字小文字を区別します。
</Warning>

### プロパティ使用例

ユーザーがアプリの特定の画面に入った時にプロパティを更新する例です。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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)
      }
  }
  ```

  ```java Java theme={null}
  import io.adrop.ads.Adrop;
  import io.adrop.ads.metrics.AdropMetrics;
  import io.adrop.ads.model.AdropKey;
  import io.adrop.ads.model.AdropValue;

  public class ProfileActivity extends AppCompatActivity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_profile);

          // ユーザー情報を取得
          User user = getUserInfo();

          // UID設定
          Adrop.INSTANCE.setUID(user.getId());

          // デフォルトプロパティ設定
          AdropMetrics.setProperty(AdropKey.BIRTH, user.getBirthDate());
          AdropMetrics.setProperty(AdropKey.GENDER, user.getGender());

          // カスタムプロパティ設定
          AdropMetrics.setProperty("membership_level", user.getMembershipLevel());
          AdropMetrics.setProperty("total_booking_count", user.getBookingCount());
      }
  }
  ```
</CodeGroup>

***

## コンテキストターゲティング

コンテンツの文脈（カテゴリ、トピックなど）に応じて広告を表示します。バナー広告とネイティブ広告で`contextId`属性を使用します。

### バナー広告

#### XMLで設定

<CodeGroup>
  ```xml XML theme={null}
  <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" />
  ```
</CodeGroup>

#### コードで設定

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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はコンストラクタでのみ設定可能です
  ```

  ```java Java theme={null}
  import io.adrop.ads.banner.AdropBanner;

  AdropBanner adropBanner = new AdropBanner(this, "PUBLIC_TEST_UNIT_ID_320_50", "article_sports");

  // または既存のインスタンスに設定
  AdropBanner existingBanner = findViewById(R.id.adropBanner);
  // contextIdはコンストラクタでのみ設定可能です
  ```
</CodeGroup>

### ネイティブ広告

ネイティブ広告はコンストラクタで`contextId`を設定できます。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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: AdropErrorCode) {
          // 広告受信失敗
      }
  }

  // contextIdはコンストラクタで設定、load()はパラメータなし
  nativeAd.load()
  ```

  ```java Java theme={null}
  import io.adrop.ads.nativeAd.AdropNativeAd;
  import io.adrop.ads.nativeAd.AdropNativeAdListener;

  // contextIdはコンストラクタで設定
  AdropNativeAd nativeAd = new AdropNativeAd(this, "PUBLIC_TEST_UNIT_ID_NATIVE", "article_technology");
  nativeAd.setListener(new AdropNativeAdListener() {
      @Override
      public void onAdReceived(@NonNull AdropNativeAd ad) {
          // 広告受信成功
      }

      @Override
      public void onAdFailedToReceive(@NonNull AdropNativeAd ad, AdropErrorCode errorCode) {
          // 広告受信失敗
      }
  });

  // load()はパラメータなし
  nativeAd.load();
  ```
</CodeGroup>

### Context ID使用例

ニュースアプリで記事カテゴリに応じて広告を表示する例です。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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()
      }
  }
  ```

  ```java Java theme={null}
  import io.adrop.ads.banner.AdropBanner;

  public class ArticleActivity extends AppCompatActivity {
      private AdropBanner adropBanner;

      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_article);

          // 記事カテゴリを取得
          String articleCategory = getArticleCategory(); // "sports", "technology", "entertainment"など

          // カテゴリに合ったContext IDでバナーを作成
          String contextId = "article_" + articleCategory;
          adropBanner = new AdropBanner(this, "YOUR_UNIT_ID", contextId);

          // レイアウトに追加
          ViewGroup container = findViewById(R.id.ad_container);
          container.addView(adropBanner);

          // 広告をロード
          adropBanner.load();
      }
  }
  ```
</CodeGroup>

<Note>
  Context IDはコンソールで定義したコンテキストターゲティングカテゴリと一致する必要があります。
</Note>

***

## イベントトラッキング

ユーザー行動イベントを追跡して、ユーザーアクションに基づくオーディエンスを構築できます。`AdropMetrics.sendEvent()`を使用してイベントを送信します。

<Note>
  `logEvent()`は非推奨です。`sendEvent()`を使用してください。
</Note>

### イベント送信

<CodeGroup>
  ```kotlin Kotlin theme={null}
  import io.adrop.ads.metrics.AdropMetrics
  import io.adrop.ads.metrics.AdropEventParam

  // シンプルイベント（パラメータなし）
  AdropMetrics.sendEvent("app_open")

  // パラメータ付きイベント
  val params = AdropEventParam.Builder()
      .putString("item_id", "SKU-123")
      .putString("item_name", "Widget")
      .putFloat("price", 29.99f)
      .build()
  AdropMetrics.sendEvent("view_item", params)
  ```

  ```java Java theme={null}
  import io.adrop.ads.metrics.AdropMetrics;
  import io.adrop.ads.metrics.AdropEventParam;

  // シンプルイベント（パラメータなし）
  AdropMetrics.sendEvent("app_open");

  // パラメータ付きイベント
  AdropEventParam params = new AdropEventParam.Builder()
      .putString("item_id", "SKU-123")
      .putString("item_name", "Widget")
      .putFloat("price", 29.99f)
      .build();
  AdropMetrics.sendEvent("view_item", params);
  ```
</CodeGroup>

### マルチアイテムイベント

複数アイテムを含むイベント（例：purchase、begin\_checkout）の場合、`putItems()`を使用してアイテムリストを追加します。

<CodeGroup>
  ```kotlin Kotlin theme={null}
  import io.adrop.ads.metrics.AdropMetrics
  import io.adrop.ads.metrics.AdropEventParam

  val item1 = AdropEventParam.Builder()
      .putString("item_id", "A")
      .putString("item_name", "Product A")
      .putInt("price", 100)
      .putInt("quantity", 1)
      .build()
  val item2 = AdropEventParam.Builder()
      .putString("item_id", "B")
      .putString("item_name", "Product B")
      .putInt("price", 200)
      .putInt("quantity", 2)
      .build()
  val params = AdropEventParam.Builder()
      .putString("tx_id", "tx_123")
      .putString("currency", "KRW")
      .putItems(listOf(item1, item2))
      .build()
  AdropMetrics.sendEvent("purchase", params)
  ```

  ```java Java theme={null}
  import io.adrop.ads.metrics.AdropMetrics;
  import io.adrop.ads.metrics.AdropEventParam;

  AdropEventParam item1 = new AdropEventParam.Builder()
      .putString("item_id", "A")
      .putString("item_name", "Product A")
      .putInt("price", 100)
      .putInt("quantity", 1)
      .build();
  AdropEventParam item2 = new AdropEventParam.Builder()
      .putString("item_id", "B")
      .putString("item_name", "Product B")
      .putInt("price", 200)
      .putInt("quantity", 2)
      .build();
  AdropEventParam params = new AdropEventParam.Builder()
      .putString("tx_id", "tx_123")
      .putString("currency", "KRW")
      .putItems(java.util.Arrays.asList(item1, item2))
      .build();
  AdropMetrics.sendEvent("purchase", params);
  ```
</CodeGroup>

### サポートされるイベント例

| イベント名             | 説明          | 主なパラメータ                                     |
| ----------------- | ----------- | ------------------------------------------- |
| `app_open`        | アプリを開く      | —                                           |
| `sign_up`         | 会員登録        | `method`                                    |
| `view_item`       | アイテム閲覧      | `item_id`, `item_name`, `price`             |
| `add_to_cart`     | カートに追加      | `item_id`, `item_name`, `price`, `quantity` |
| `add_to_wishlist` | ウィッシュリストに追加 | `item_id`, `item_name`, `price`             |
| `begin_checkout`  | チェックアウト開始   | `currency`, `items`                         |
| `purchase`        | 購入完了        | `tx_id`, `currency`, `items`                |
| `page_view`       | ページ閲覧       | `page_id`, `page_category`                  |
| `click`           | 要素クリック      | `element_id`, `element_type`                |

<Note>
  * イベント名は1〜64文字である必要があります。
  * パラメータキーは1〜64文字である必要があります。
  * 文字列パラメータ値は最大1024文字までです。
  * 同じ名前とパラメータを持つ重複イベントは500ms以内の送信が制限されます。
</Note>

***

## ベストプラクティス

### 1. 広告ロード前にUIDを設定

<CodeGroup>
  ```kotlin Kotlin theme={null}
  // 正しい例
  Adrop.setUID("user_123")
  adropBanner.load()

  // 誤った例
  adropBanner.load()
  Adrop.setUID("user_123") // 広告ロード後に設定するとターゲティングが適用されない
  ```

  ```java Java theme={null}
  // 正しい例
  Adrop.INSTANCE.setUID("user_123");
  adropBanner.load();

  // 誤った例
  adropBanner.load();
  Adrop.INSTANCE.setUID("user_123"); // 広告ロード後に設定するとターゲティングが適用されない
  ```
</CodeGroup>

### 2. 意味のあるContext IDを使用

<CodeGroup>
  ```kotlin Kotlin theme={null}
  // 正しい例
  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)
  ```

  ```java Java theme={null}
  // 正しい例
  String contextId = "article_" + article.getCategory(); // "article_sports", "article_tech"
  AdropBanner adropBanner = new AdropBanner(this, unitId, contextId);

  // 誤った例
  String contextId = "page_" + randomNumber; // 意味のないランダム値
  AdropBanner adropBanner = new AdropBanner(this, unitId, contextId);
  ```
</CodeGroup>

### 3. 変更があるたびにプロパティを更新

<CodeGroup>
  ```kotlin Kotlin theme={null}
  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)
      }
  }
  ```

  ```java Java theme={null}
  public class MainActivity extends AppCompatActivity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);

          // アプリ起動時に初期プロパティを設定
          updateUserProperties();
      }

      public void onUserPurchaseComplete(int purchaseAmount) {
          // 購入完了時にプロパティを更新
          int currentTotal = getCurrentTotalPurchase();
          AdropMetrics.setProperty("total_purchase_amount", currentTotal + purchaseAmount);
      }

      public void onMembershipUpgrade(String newTier) {
          // メンバーシップアップグレード時にプロパティを更新
          AdropMetrics.setProperty("membership_tier", newTier);
      }
  }
  ```
</CodeGroup>

***

## 関連ドキュメント

<CardGroup cols={2}>
  <Card title="オーディエンスターゲティングを作成" icon="users" href="/ja/targeting/audience">
    コンソールでオーディエンスターゲティングを作成
  </Card>

  <Card title="コンテキストターゲティングを作成" icon="book" href="/ja/targeting/context">
    コンソールでコンテキストターゲティングを作成
  </Card>

  <Card title="ターゲティングを販売" icon="yen-sign" href="/ja/targeting/sell">
    ターゲティングカテゴリの販売設定
  </Card>

  <Card title="バナー広告" icon="rectangle-ad" href="/ja/sdk/android/banner">
    バナー広告を実装
  </Card>

  <Card title="ネイティブ広告" icon="mobile" href="/ja/sdk/android/native">
    ネイティブ広告を実装
  </Card>

  <Card title="リファレンス" icon="code" href="/ja/sdk/android/reference">
    クラス、リスナー、エラーコード
  </Card>
</CardGroup>

***

## FAQ

<AccordionGroup>
  <Accordion title="UIDを設定しないとターゲット広告は表示されませんか？">
    UIDを設定しなくても広告は表示されますが、オーディエンスターゲティングが適用されません。基本ターゲティング（国、言語など）のみ使用されます。精密なターゲティングにはUID設定が必須です。
  </Accordion>

  <Accordion title="プロパティを設定しましたがコンソールにデータが表示されません。">
    プロパティデータは収集後最大24時間以内にコンソールに反映されます。データが表示されない場合：

    1. コンソールでプロパティが正しく定義されているか確認してください。
    2. SDKから渡すプロパティキーがコンソールと正確に一致するか確認してください（大文字小文字を区別）。
    3. `AdropMetrics.setProperty()`が広告ロード前に呼び出されているか確認してください。
  </Accordion>

  <Accordion title="Context IDはどの形式で作成すべきですか？">
    Context IDはコンテンツの文脈を表す意味のある文字列である必要があります。例えば：

    * ニュースアプリ：`"article_sports"`、`"article_tech"`、`"article_entertainment"`
    * ショッピングアプリ：`"category_fashion"`、`"category_electronics"`
    * 動画アプリ：`"video_drama"`、`"video_comedy"`

    コンソールで定義したコンテキストターゲティングカテゴリと一致するように設定してください。
  </Accordion>

  <Accordion title="配列型のプロパティを設定できますか？">
    いいえ、配列値は直接サポートされていません。`setProperty`はString、Int、Double、Long、Boolean、null値のみ受け付けます。複数の値を保存するにはJSON文字列を使用してください：

    ```kotlin theme={null}
    AdropMetrics.setProperty("favorite_genres", """["drama","action","comedy"]""")
    ```
  </Accordion>

  <Accordion title="プロパティ値を削除するにはどうすればいいですか？">
    プロパティ値に`null`を渡すとそのプロパティが削除されます：

    ```kotlin theme={null}
    AdropMetrics.setProperty("membership_level", null)
    ```
  </Accordion>
</AccordionGroup>
