ターゲティング設定により、特定のユーザーグループにカスタマイズされた広告を表示できます。Adrop SDKはオーディエンスターゲティング方式を提供しています。
- オーディエンスターゲティング: ユーザーのプロパティ(属性)に基づいて広告を表示します。
ターゲティングデータを収集するには、広告ロード前にUIDとプロパティを設定する必要があります。
UIDの設定
ユーザー識別子(UID)を設定してユーザーを区別します。UIDはターゲティング広告の基盤となります。
使い方
import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';
// ユーザーログイン後
await Adrop.setUID('user_123');
// ユーザーログアウト時
await Adrop.setUID('');
パラメータ
| パラメータ | タイプ | 説明 |
|---|
uid | String | ユーザー固有識別子 (例: サービス会員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);
パラメータ
| パラメータ | タイプ | 説明 |
|---|
key | String | プロパティキー (最大64文字) |
value | dynamic | プロパティ値 (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');
性別の値
年齢を直接設定
生年月日の代わりに年齢を直接設定することもできます。
await AdropMetrics.setProperty('age', 30);
birthとageのいずれか一方のみ設定すればよいです。両方設定された場合、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',
});
パラメータ
| パラメータ | タイプ | 説明 |
|---|
name | String | イベント名 |
params | dynamic | イベントパラメータ (オプション) |
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を設定しなくても広告は表示されますが、オーディエンスターゲティングは適用されません。基本的なターゲティング(国、言語など)のみが使用されます。精密なターゲティングのためにはUID設定が必須です。
プロパティを設定したのにコンソールにデータが表示されません。
プロパティデータは収集後、最大24時間以内にコンソールに反映されます。データが表示されない場合:
- コンソールでプロパティが正しく定義されているか確認してください。
- SDKから渡すプロパティキーがコンソールと正確に一致しているか確認してください(大文字小文字を区別)。
AdropMetrics.setProperty()が広告ロード前に呼び出されているか確認してください。
プロパティ値にnullを渡すと、そのプロパティが削除されます:await AdropMetrics.setProperty('membership_level', null);
サポートされているタイプはString、int、double、boolです。配列や複雑なオブジェクトはサポートされていません。必要な場合は文字列に変換して渡してください。