Google User Messaging Platform(UMP)SDK は、プライバシーに関するユーザー設定の管理に役立つプライバシーとメッセージのツールです。詳しくは、プライバシーとメッセージについてをご覧ください。
メッセージの種類を作成する
AdMob アカウントの [プライバシーとメッセージ] タブで、利用可能なユーザー向けメッセージの種類のいずれかを使用してユーザー向けメッセージを作成します。UMP SDK は、プロジェクトで設定された AdMob アプリケーション ID から作成されたプライバシー メッセージを表示しようとします。
詳しくは、プライバシーとメッセージについてをご覧ください。
ユーザーの同意情報を取得する
アプリの起動時に、requestConsentInfoUpdate()
を使用してユーザーの同意情報を更新する必要があります。このリクエストは、以下を確認します。
- 同意が必要かどうか。たとえば、初めて同意が必要な場合や、以前の同意決定が期限切れになっている場合です。
- プライバシー オプションのエントリー ポイントが必要かどうか。一部のプライバシー メッセージでは、ユーザーがプライバシー オプションをいつでも変更できるようにする必要があります。
@override
void initState() {
super.initState();
// Create a ConsentRequestParameters object.
final params = ConsentRequestParameters();
// Request an update to consent information on every app launch.
ConsentInformation.instance.requestConsentInfoUpdate(
params,
() async {
// Called when consent information is successfully updated.
},
(FormError error) {
// Called when there's an error updating consent information.
},
);
}
プライバシー メッセージ フォームを読み込んで表示する
最新の同意ステータスを受け取ったら、loadAndShowConsentFormIfRequired()
を呼び出して、ユーザーの同意を得るために必要なフォームを読み込みます。読み込み後、フォームはすぐに表示されます。
@override
void initState() {
super.initState();
// Create a ConsentRequestParameters object.
final params = ConsentRequestParameters();
// Request an update to consent information on every app launch.
ConsentInformation.instance.requestConsentInfoUpdate(
params,
() async {
ConsentForm.loadAndShowConsentFormIfRequired((loadAndShowError) {
if (loadAndShowError != null) {
// Consent gathering failed.
}
// Consent has been gathered.
});
},
(FormError error) {
// Handle the error.
},
);
}
プライバシー オプション
一部のプライバシー メッセージ フォームは、パブリッシャーがレンダリングしたプライバシー オプションのエントリ ポイントから表示され、ユーザーはいつでもプライバシー オプションを管理できます。プライバシー オプションのエントリ ポイントでユーザーに表示されるメッセージの詳細については、利用可能なユーザー メッセージの種類をご覧ください。
プライバシー オプションのエントリー ポイントが必要かどうかを確認する
requestConsentInfoUpdate()
を呼び出した後、getPrivacyOptionsRequirementStatus()
をチェックして、アプリにプライバシー オプションのエントリ ポイントが必要かどうかを判断します。エントリ ポイントが必要な場合は、プライバシー オプションのフォームを表示する、表示可能で操作可能な UI 要素をアプリに追加します。プライバシー エントリ ポイントが不要な場合は、UI 要素を非表示にして操作できないように構成します。
/// Helper variable to determine if the privacy options entry point is required.
Future<bool> isPrivacyOptionsRequired() async {
return await ConsentInformation.instance
.getPrivacyOptionsRequirementStatus() ==
PrivacyOptionsRequirementStatus.required;
}
プライバシー オプションの要件ステータスの一覧については、
をご覧ください。PrivacyOptionsRequirementStatus
プライバシー オプションのフォームを提示する
ユーザーが要素を操作すると、プライバシー オプション フォームを表示します。
ConsentForm.showPrivacyOptionsForm((formError) {
if (formError != null) {
debugPrint("${formError.errorCode}: ${formError.message}");
}
});
ユーザーの同意を得て広告をリクエストする
広告をリクエストする前に、canRequestAds()
を使用してユーザーの同意を得ているかどうかを確認します。
await ConsentInformation.instance.canRequestAds()
同意を得ながら広告をリクエストできるかどうかを確認できる場所は次のとおりです。
- UMP SDK が現在のセッションで同意を収集した後。
requestConsentInfoUpdate()
を呼び出した直後。UMP SDK が前のアプリ セッションで同意を得ている可能性があります。
同意の取得プロセス中にエラーが発生した場合は、広告をリクエストできるかどうかを確認します。UMP SDK は、前のアプリ セッションの同意ステータスを使用します。
広告リクエストの重複を防ぐ
同意を取得した後と requestConsentInfoUpdate()
を呼び出した後に canRequestAds()
を確認する際は、両方のチェックで true
が返される可能性がある重複する広告リクエストをロジックで防ぐようにしてください。たとえば、ブール変数を使用します。
テスト
開発中にアプリの統合をテストする場合は、次の手順に沿ってテストデバイスをプログラムで登録します。アプリをリリースする前に、テストデバイス ID を設定するコードを必ず削除してください。
requestConsentInfoUpdate()
までお電話ください。ログの出力で、次の例のようなメッセージを確認します。このメッセージには、デバイス ID と、デバイスをテストデバイスとして追加する方法が表示されます。
Android
Use new ConsentDebugSettings.Builder().addTestDeviceHashedId("33BE2250B43518CCDA7DE426D04EE231") to set this as a debug device.
iOS
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]
テストデバイスの ID をクリップボードにコピーします。
ConsentDebugSettings.testIdentifiers
を呼び出してテストデバイス ID のリストを渡すようにコードを変更します。ConsentDebugSettings debugSettings = ConsentDebugSettings( testIdentifiers: ["TEST-DEVICE-HASHED-ID"], ); ConsentRequestParameters params = ConsentRequestParameters(consentDebugSettings: debugSettings); ConsentInformation.instance.requestConsentInfoUpdate(params, () async { // ... };
地域を強制的に適用する
UMP SDK では、debugGeography
を使用して、デバイスが EEA や英国などのさまざまな地域にあるかのようにアプリの動作をテストできます。デバッグ設定はテストデバイスでのみ機能します。
ConsentDebugSettings debugSettings = ConsentDebugSettings(
debugGeography: DebugGeography.debugGeographyEea,
testIdentifiers: ["TEST-DEVICE-HASHED-ID"],
);
ConsentRequestParameters params =
ConsentRequestParameters(consentDebugSettings: debugSettings);
ConsentInformation.instance.requestConsentInfoUpdate(params, () async {
// ...
};
同意ステータスをリセットする
UMP SDK を使用してアプリをテストする場合は、ユーザーの初回インストールをシミュレートできるように SDK の状態をリセットすることをおすすめします。SDK には、これを行う reset()
メソッドが用意されています。
ConsentInformation.instance.reset();
GitHub の例
このページで説明する UMP SDK 統合の完全な例については、Flutter の例をご覧ください。