メインコンテンツへスキップ

概要

ターゲティング設定により、特定のユーザーグループにカスタマイズされた広告を表示できます。Adrop SDKはオーディエンスターゲティング方式を提供しています。
  • オーディエンスターゲティング: ユーザーのプロパティ(属性)に基づいて広告を表示します。
ターゲティングデータを収集するには、広告ロード前にUIDとプロパティを設定する必要があります。

UIDの設定

ユーザー識別子(UID)を設定してユーザーを区別します。UIDはターゲティング広告の基盤となります。

使い方

import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// ユーザーログイン後
await Adrop.setUID('user_123');

// ユーザーログアウト時
await Adrop.setUID('');

パラメータ

パラメータタイプ説明
uidStringユーザー固有識別子 (例: サービス会員ID)
UIDはSHA-256でハッシュ化されて送信されます。個人情報(メール、電話番号など)を直接渡さないでください。
ログアウト時は空の文字列('')を渡してUIDを初期化してください。

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

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

プロパティの設定

AdropMetrics.setProperty()メソッドを使用してユーザーの属性情報を収集します。
import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// 文字列プロパティ
await AdropMetrics.setProperty('membership_level', 'premium');

// 数値プロパティ
await AdropMetrics.setProperty('booking_count', 15);

// ブール値プロパティ
await AdropMetrics.setProperty('is_subscriber', true);

// nullを渡す (プロパティの削除)
await AdropMetrics.setProperty('membership_level', null);

パラメータ

パラメータタイプ説明
keyStringプロパティキー (最大64文字)
valuedynamicプロパティ値 (String, int, double, bool, null)
  • プロパティキーは最大64文字まで可能です。
  • 文字列値は最大256文字まで可能です。
  • 数値は最大9007199254740991まで可能です。
  • 最大256個のプロパティを設定できます。

デフォルトプロパティ

Adrop SDKはターゲティング用のデフォルトプロパティを提供しています。

年齢 (生年月日)

生年月日情報を渡すと、自動的に年齢が計算されます。
import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// 年のみ (yyyy)
await AdropMetrics.setProperty('birth', '1990');

// 年月 (yyyyMM)
await AdropMetrics.setProperty('birth', '199003');

// 年月日 (yyyyMMdd)
await AdropMetrics.setProperty('birth', '19900315');
日付フォーマット
フォーマット説明
yyyy”1990”年のみ
yyyyMM”199003”年月
yyyyMMdd”19900315”年月日

性別

import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// 男性
await AdropMetrics.setProperty('gender', 'M');

// 女性
await AdropMetrics.setProperty('gender', 'F');

// その他
await AdropMetrics.setProperty('gender', 'O');

// 未確認
await AdropMetrics.setProperty('gender', 'U');
性別の値
説明
M男性
F女性
Oその他
U未確認

年齢を直接設定

生年月日の代わりに年齢を直接設定することもできます。
await AdropMetrics.setProperty('age', 30);
birthageのいずれか一方のみ設定すればよいです。両方設定された場合、birthが優先されます。

カスタムプロパティ

サービスに合ったカスタムプロパティを設定できます。カスタムプロパティはAdControlコンソールターゲティングメニューで最初に定義する必要があります。
import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// ローカルアクティビティアプリの例
await AdropMetrics.setProperty('region', 'Seoul');
await AdropMetrics.setProperty('booking_count', 5);

// ショッピングモールアプリの例
await AdropMetrics.setProperty('membership_tier', 'gold');
await AdropMetrics.setProperty('total_purchase_amount', 1500000);

// メディアアプリの例
await AdropMetrics.setProperty('favorite_genre', 'drama');
await AdropMetrics.setProperty('is_premium_subscriber', true);
カスタムプロパティ名はコンソールで定義した名前と正確に一致する必要があります。大文字と小文字を区別します。

イベントロギング

ユーザー行動を追跡するためにイベントをロギングできます。

基本イベントロギング

import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// イベント名のみ
await AdropMetrics.logEvent('button_click');

// パラメータと共に
await AdropMetrics.logEvent('purchase', {
  'item_id': 'SKU_001',
  'price': 29900,
  'currency': 'KRW',
});

パラメータ

パラメータタイプ説明
nameStringイベント名
paramsdynamicイベントパラメータ (オプション)
1つのイベントに最大20個のパラメータを設定できます。

プロパティの照会

保存されたすべてのプロパティを照会できます。
import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

final properties = await AdropMetrics.properties();
debugPrint('保存されたプロパティ: $properties');

使用例

ログイン時にプロパティを設定

import 'package:flutter/material.dart';
import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

class LoginScreen extends StatefulWidget {
  const LoginScreen({super.key});

  @override
  State<LoginScreen> createState() => _LoginScreenState();
}

class _LoginScreenState extends State<LoginScreen> {
  Future<void> _onLoginSuccess(User user) async {
    // UIDを設定
    await Adrop.setUID(user.id);

    // デフォルトプロパティを設定
    if (user.birthDate != null) {
      await AdropMetrics.setProperty('birth', user.birthDate);
    }
    if (user.gender != null) {
      await AdropMetrics.setProperty('gender', user.gender);
    }

    // カスタムプロパティを設定
    await AdropMetrics.setProperty('membership_level', user.membershipLevel);
    await AdropMetrics.setProperty('total_booking_count', user.bookingCount);

    // ログインイベントをロギング
    await AdropMetrics.logEvent('login', {
      'method': 'email',
      'is_first_login': user.isFirstLogin,
    });

    // メイン画面に移動
    Navigator.of(context).pushReplacement(
      MaterialPageRoute(builder: (_) => const MainScreen()),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // ...
    );
  }
}

ログアウト時に初期化

Future<void> _onLogout() async {
  // UIDを初期化
  await Adrop.setUID('');

  // 必要に応じてプロパティも初期化
  await AdropMetrics.setProperty('membership_level', null);
  await AdropMetrics.setProperty('total_booking_count', null);

  // ログアウトイベントをロギング
  await AdropMetrics.logEvent('logout');
}

プロパティの更新

class UserProfile extends StatelessWidget {
  void _onPurchaseComplete(int purchaseAmount) async {
    // 購入完了時にプロパティを更新
    final currentTotal = await _getCurrentTotalPurchase();
    await AdropMetrics.setProperty(
      'total_purchase_amount',
      currentTotal + purchaseAmount,
    );

    // 購入イベントをロギング
    await AdropMetrics.logEvent('purchase', {
      'amount': purchaseAmount,
      'currency': 'KRW',
    });
  }

  void _onMembershipUpgrade(String newTier) async {
    // メンバーシップアップグレード時にプロパティを更新
    await AdropMetrics.setProperty('membership_tier', newTier);

    // アップグレードイベントをロギング
    await AdropMetrics.logEvent('membership_upgrade', {
      'new_tier': newTier,
    });
  }

  @override
  Widget build(BuildContext context) {
    return Container();
  }
}

ベストプラクティス

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

// ✅ 正しい例
await Adrop.setUID('user_123');
// 広告をロード...
bannerView.load();

// ❌ 間違った例
bannerView.load();
await Adrop.setUID('user_123'); // 広告ロード後に設定するとターゲティングが適用されません

2. 変更されるたびにプロパティを更新

class MyApp extends StatefulWidget {
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    // アプリ起動時に初期プロパティを設定
    _updateUserProperties();
  }

  Future<void> _updateUserProperties() async {
    final user = await getUserInfo();
    await Adrop.setUID(user.id);
    await AdropMetrics.setProperty('membership_level', user.membershipLevel);
  }
}

3. ログアウト時にUIDを初期化

Future<void> onUserLogout() async {
  // UIDを初期化
  await Adrop.setUID('');

  // 必要に応じてプロパティも初期化
  await AdropMetrics.setProperty('membership_level', null);
  await AdropMetrics.setProperty('total_booking_count', null);
}

関連ドキュメント


FAQ

UIDを設定しなくても広告は表示されますが、オーディエンスターゲティングは適用されません。基本的なターゲティング(国、言語など)のみが使用されます。精密なターゲティングのためにはUID設定が必須です。
プロパティデータは収集後、最大24時間以内にコンソールに反映されます。データが表示されない場合:
  1. コンソールでプロパティが正しく定義されているか確認してください。
  2. SDKから渡すプロパティキーがコンソールと正確に一致しているか確認してください(大文字小文字を区別)。
  3. AdropMetrics.setProperty()が広告ロード前に呼び出されているか確認してください。
プロパティ値にnullを渡すと、そのプロパティが削除されます:
await AdropMetrics.setProperty('membership_level', null);
サポートされているタイプはStringintdoubleboolです。配列や複雑なオブジェクトはサポートされていません。必要な場合は文字列に変換して渡してください。