Google User Messaging Platform(UMP)SDK は、プライバシー設定の管理に役立つプライバシーとメッセージングのツールです。詳しくは、 [プライバシーとメッセージ] についてをご覧ください。。
メッセージ タイプを作成する
Ad Manager アカウントの [プライバシーとメッセージ] タブにある [Available user message types]を使用して、ユーザー メッセージを作成します。UMP SDK は、プロジェクトで設定されたアド マネージャー アプリケーション ID から作成されたプライバシー メッセージを表示しようとします。
詳しくは、 プライバシーとメッセージについてをご覧ください。
SDK をインポートする
CocoaPods(推奨)
iOS プロジェクトに SDK を簡単にインポートするには、 CocoaPodsを使う方法がおすすめです。プロジェクトの Podfile を開き、アプリのターゲットに次の行を追加します。
pod 'GoogleUserMessagingPlatform'
次のコマンドを実行します。
pod install --repo-updateCocoaPods を初めてご利用の場合は、CocoaPods の使用についての記事で Podfile の作成方法と使用方法をご確認ください。
Swift Package Manager
UMP SDK は Swift Package Manager にも対応しています。Swift パッケージをインポートする手順は次のとおりです。
Xcode で、[File] > [Add Packages...] に移動して、UMP SDK の Swift パッケージをインストールします。
表示されたプロンプトで、UMP SDK の Swift パッケージの GitHub リポジトリ(下記)を検索します。
https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git使用する UMP SDK の Swift パッケージのバージョンを選択します。新しいプロジェクトの場合は [Up to Next Major Version] を選択することをおすすめします。
Xcode でパッケージの依存関係が解決され、バックグラウンドでダウンロードされます。パッケージの依存関係の追加について詳しくは、Apple's 記事を参照してください。
手動ダウンロード
SDK をインポートする別の方法は、手動で行うことです。
次に、フレームワークを Xcode プロジェクトにドラッグし、[Copy items if needed] を選択します。

その後、次を使用して、必要なファイルにフレームワークを含めることができます。
Swift
import UserMessagingPlatform
Objective-C
#include <UserMessagingPlatform/UserMessagingPlatform.h>
アプリケーション ID を追加する
アプリケーション ID は
アド マネージャーの管理画面で確認できます。次のコード スニペットを使用して、ID を
Info.plist
に追加します。
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
ユーザーの同意情報を取得する
フォームを読み込む前に
requestConsentInfoUpdate(with:completionHandler:) を使用して、アプリの起動ごとにユーザーの同意情報の更新をリクエストする必要があります。このリクエストでは、次のことが確認されます。
- 同意が必要かどうか 。たとえば、初回のみ同意が必要な場合や、以前の同意の決定が期限切れになった場合などです。
- プライバシー オプションのエントリ ポイントが必要かどうか 。一部のプライバシー メッセージでは、ユーザーがいつでもプライバシー オプションを変更できるようにする必要があります。
Swift
// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
SwiftUI
// Requesting an update to consent information should be called on every app launch.
ConsentInformation.shared.requestConsentInfoUpdate(with: parameters) {
requestConsentError in
// ...
}
Objective-C
// Requesting an update to consent information should be called on every app launch.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable requestConsentError) {
// ...
}];
プライバシー メッセージ フォームを読み込んで表示する
最新の同意ステータスを取得したら、
loadAndPresentIfRequired(from:) を呼び出して、ユーザーの同意を得るために必要なフォームを読み込みます。読み込み後、フォームがすぐに表示されます。
Swift
try await ConsentForm.loadAndPresentIfRequired(from: viewController)
SwiftUI
try await ConsentForm.loadAndPresentIfRequired(from: nil)
Objective-C
[UMPConsentForm
loadAndPresentIfRequiredFromViewController:viewController
completionHandler:^(NSError *_Nullable loadAndPresentError) {
// Consent gathering process is complete.
}];
プライバシー オプション
一部のプライバシー メッセージ フォームは、パブリッシャー レンダリングのプライバシー オプションのエントリ ポイントから表示され、ユーザーはいつでもプライバシー オプションを管理できます。 プライバシー オプションのエントリ ポイントでユーザーに表示されるメッセージについて詳しくは、使用可能なユーザー メッセージ タイプをご覧ください。
プライバシー オプションのエントリ ポイントが必要かどうかを確認する
requestConsentInfoUpdate(with:completionHandler:) を呼び出したら、
UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus を確認して、アプリにプライバシー オプションのエントリ ポイントが必要かどうかを判断します。エントリ ポイントが必要な場合は、プライバシー オプション フォームを表示する、表示可能で操作可能な UI 要素をアプリに追加します。プライバシー エントリ ポイントが不要な場合は、UI 要素が表示されず、操作できないように構成します。
Swift
var isPrivacyOptionsRequired: Bool {
return ConsentInformation.shared.privacyOptionsRequirementStatus == .required
}
Objective-C
- (BOOL)isPrivacyOptionsRequired {
return UMPConsentInformation.sharedInstance.privacyOptionsRequirementStatus ==
UMPPrivacyOptionsRequirementStatusRequired;
}
プライバシー オプションの要件ステータスの完全なリストについては、
UMPPrivacyOptionsRequirementStatus をご覧ください。
プライバシー オプション フォームを表示する
ユーザーが要素を操作すると、プライバシー オプション フォームが表示されます。
Swift
try await ConsentForm.presentPrivacyOptionsForm(from: viewController)
SwiftUI
try await ConsentForm.presentPrivacyOptionsForm(from: nil)
Objective-C
[UMPConsentForm presentPrivacyOptionsFormFromViewController:viewController
completionHandler:completionHandler];
ユーザーの同意を得て広告をリクエストする
広告をリクエストする前に、
UMPConsentInformation.sharedInstance.canRequestAds を使用して、ユーザーから同意を得ているかどうかを
確認します。
Swift
ConsentInformation.shared.canRequestAds
Objective-C
UMPConsentInformation.sharedInstance.canRequestAds;
同意を得ながら広告をリクエストできるかどうかを確認する場所は次のとおりです。
- UMP SDK が現在のセッションで同意を得た後。
requestConsentInfoUpdate(with:completionHandler:)を呼び出した直後。UMP SDK は、以前のアプリ セッションで同意を得ている可能性があります。
同意を得るプロセスでエラーが発生した場合は、広告をリクエストできるかどうかを確認します。UMP SDK は、以前のアプリ セッションの同意ステータスを使用します。
重複する広告リクエスト作業を回避する
同意を得た後、同意情報を収集して
requestConsentInfoUpdate(with:completionHandler:)を呼び出した後に
UMPConsentInformation.sharedInstance.canRequestAdsを確認する場合は、両方のチェックで
が返される可能性のある重複した広告リクエストをロジックで回避してください。trueたとえば、ブール変数を使用します。
テスト
開発中のアプリで統合をテストする場合は、次の手順に沿ってプログラムでテストデバイスを登録します。アプリをリリースする前に、テストデバイス ID を設定するコードを必ず削除してください。
requestConsentInfoUpdate(with:completionHandler:)を呼び出します。ログ出力で、次の例のようなメッセージを確認します。ここには、デバイス ID とテストデバイスとしてデバイスを追加する方法が示されています。
<UMP SDK>To enable debug mode for this device, set: UMPDebugSettings.testDeviceIdentifiers = @[2077ef9a63d2b398840261c8221a0c9b]テストデバイスの ID をクリップボードにコピーします。
コードを変更して
UMPDebugSettings().testDeviceIdentifiersを呼び出し、 テストデバイスのデバイス ID のリストに渡します。Swift
let parameters = RequestParameters() let debugSettings = DebugSettings() debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"] parameters.debugSettings = debugSettings // Include the UMPRequestParameters in your consent request. ConsentInformation.shared.requestConsentInfoUpdate( with: parameters, completionHandler: { error in // ... })Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init]; UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init]; debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ]; parameters.debugSettings = debugSettings; // Include the UMPRequestParameters in your consent request. [UMPConsentInformation.sharedInstance requestConsentInfoUpdateWithParameters:parameters completionHandler:^(NSError *_Nullable error){ // ... }];
地域を強制的に適用する
UMP SDK では、デバイスが欧州経済領域(EEA)、英国、スイスなど、さまざまな地域にあるかのようにアプリの動作をテストできます。geographyデバッグ設定はテスト用デバイスでのみ機能します。
Swift
let parameters = RequestParameters()
let debugSettings = DebugSettings()
debugSettings.testDeviceIdentifiers = ["TEST-DEVICE-HASHED-ID"]
debugSettings.geography = .EEA
parameters.debugSettings = debugSettings
// Include the UMPRequestParameters in your consent request.
ConsentInformation.shared.requestConsentInfoUpdate(
with: parameters,
completionHandler: { error in
// ...
})
Objective-C
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
debugSettings.testDeviceIdentifiers = @[ @"TEST-DEVICE-HASHED-ID" ];
debugSettings.geography = UMPDebugGeographyEEA;
parameters.debugSettings = debugSettings;
// Include the UMPRequestParameters in your consent request.
[UMPConsentInformation.sharedInstance
requestConsentInfoUpdateWithParameters:parameters
completionHandler:^(NSError *_Nullable error){
// ...
}];
同意ステータスをリセットする
UMP SDK でアプリをテストする際、ユーザーの初回インストール エクスペリエンスをシミュレーションできるように、SDK の状態をリセットすると便利な場合があります。
SDK には、これを行う reset メソッドが用意されています。
Swift
ConsentInformation.shared.reset()
Objective-C
[UMPConsentInformation.sharedInstance reset];
GitHub の例
このページで説明する UMP SDK 統合の完全な例については、以下をご覧ください。