iOS MA SDK 統合ガイド
対応バージョン
本ドキュメントは v5.5.0 以降のスタンドアロン版 MTMA SDK を対象としています。現在、SDK は iOS 10 以上のモバイルシステムのみをサポートしています。
5.5.0 より前のバージョンの統合方法については、5.5.0 より前のバージョンの統合ガイドを参照してください。
v5.5.0 以降、MTMA SDK は AppPush に依存せず、単独で統合および初期化できます。MTMA と AppPush のコードは独立しています。正式版 SDK は引き続き Push 統合パッケージとして配布されますが、パッケージ内の MTMA のみを統合することも、MTMA と MTPush の両方を統合することもできます。
プロジェクトの設定
SDK のインポート
Cocoapods を使用したインポート
pod 'MTMA'
注意:最新バージョンをインポートできない場合は、pod repo update コマンドでローカルの pod ライブラリを更新してから、再度 pod 'MTMA' を実行してください。
- 特定のバージョンをインストールする場合は、以下のように指定してください(MTMA 5.5.0 の例):
pod 'MTMA', '5.5.0'
手動でのインポート
- SDK パッケージを解凍し、Xcode で「Add files to 'Your project name'...」を選択して、MTMA-ios-x.x.x.xcframework をプロジェクトディレクトリに追加します。
プライバシーマニフェスト
SDK パッケージには PrivacyInfo.xcprivacy が含まれています。ビルドしたアプリに自動で組み込まれない場合は、このファイルを参考にアプリのプライバシーマニフェストを補完してください。
SDK の初期化
スタンドアロン版 MTMA SDK は MA AppKey を使用して初期化します。AppPush の初期化や登録の成功を待つ必要はありません。
初期化前に、MA コンソールで、現在のプロジェクトの MA AppKey に対応するデータソースにアプリと一致する iOS Bundle ID を設定し、そのデータソースを有効にしてください。SDK はアプリの Bundle Identifier を自動的に読み取るため、別途設定する必要はありません。未紐付けまたは不一致の場合、初期化に失敗します。
初期化で 55004 が返され、message が packageName is not bound の場合は、上記の紐付け設定を確認してください。
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MTMAConfig *config = [[MTMAConfig alloc] init];
config.appKey = @"your MA AppKey";
config.resultCompletion = ^(MTMAInitResult *result) {
NSLog(@"result:%ld - %@", result.code, result.message);
};
[MTMAService start:config];
return YES;
}
一部のパラメータの説明
- appKey
- MA AppKey。必須で、24 桁の英数字である必要があります。
- MA AppKey と Push AppKey は独立しており、同じ値でも異なる値でも使用できます。
- resultCompletion
- 初期化結果のコールバック。result.isSuccess で成功したかを判断してください。失敗時は result.code と result.message を使って原因を調査できます。
- 戻り値のオブジェクトとフィールドについては、MTMAInitResult クラスを参照してください。
初期化にはネットワーク接続が必要です。デバイスがオフラインの場合、SDK は接続の回復を待って自動的に処理を再開し、即座に失敗のコールバックを返すことはありません。
SDK は繰り返しの初期化と MA AppKey の切り替えをサポートします。有効な呼び出しはそれぞれ順番に実行され、個別にコールバックが返されます。詳細は MA 機能の起動を参照してください。
初期化時のユーザー識別子の設定
初期化時にユーザー識別子を設定する場合は、MTMAConfig.userID で渡します。userID、anonymousID、email、phone はすべて任意のフィールドです。以下は userID の例です:
MTMAUserID *userID = [[MTMAUserID alloc] init];
userID.userID = @"member_10001";
MTMAConfig *config = [[MTMAConfig alloc] init];
config.appKey = @"your MA AppKey";
config.userID = userID;
config.resultCompletion = ^(MTMAInitResult *result) {
if (result.isSuccess) {
NSLog(@"MTMA の初期化に成功しました");
} else {
NSLog(@"MTMA の初期化に失敗しました。code=%ld、message=%@", (long)result.code, result.message);
}
};
[MTMAService start:config];
ユーザー識別子を設定しなくても初期化できます。初期化の成功は、各識別子の設定成功を意味しません。フィールドの検証とコールバックについては、MTMAUserID クラスを参照してください。
初期化のシナリオ
| シナリオ | 統合方法 |
|---|---|
| MA と AppPush で同じ AppKey を使用する | MTMA と AppPush をそれぞれ初期化し、同じ AppKey を設定します。初期化の順序は問いません |
| MTMA のみを使用する | MTMA のみを統合して初期化します。AppPush の統合は不要です |
| MTMA の使用開始後に AppPush を追加する | MTMA の統合を維持し、AppPush を追加して初期化します。AppPush の登録成功後、チャネルが自動的に設定されます |
| MA と AppPush で異なる AppKey を使用する | MTMA と AppPush をそれぞれ初期化し、各 AppKey を設定します。初期化の順序は問いません |
| JPush またはその他のサードパーティ Push を使用する | MTMA とサードパーティ Push をそれぞれ初期化します。MTMA の初期化が成功し、サードパーティの RID または Token を取得した後、サードパーティ Push チャネル設定 API を呼び出します |
AppPush との併用
MA コンソールでモバイルのデータソースを設定する際は、AppPush を併用する設定を選び、実際に統合する AppPush アプリを選択してください。AppPush の初期化には、選択したアプリの AppKey を使用します。
MTMA と AppPush はそれぞれ初期化します。初期化の順序に制約はありません。
// Push SDK を初期化
[MTPushService setupWithOption:launchOptions
appKey:pushAppKey
channel:channel
apsForProduction:isProduction
advertisingIdentifier:nil];
// MTMA SDK を初期化
MTMAConfig *config = [[MTMAConfig alloc] init];
config.appKey = maAppKey;
config.resultCompletion = ^(MTMAInitResult *result) {
NSLog(@"result:%ld - %@", result.code, result.message);
};
[MTMAService start:config];
AppPush の登録が成功して Push RegistrationID を取得すると、MTMA SDK が AppPush チャネルを自動的に設定します。AppPush が未登録の場合やチャネル設定に失敗した場合も、MTMA の初期化、イベント収集、イベント送信には影響しません。
チャネル連絡先 ID の設定
サードパーティ Push を使用する場合は、MTMA の初期化成功後にサードパーティ Push の RID または Token を設定してください。
[MTMAService setChannelValueWithChannelId:136
values:@[@"push rid or token"]
completion:^(NSInteger code, NSString *message) {
NSLog(@"result:%ld - %@", code, message);
}];
一部のパラメータの説明
- channelId
- MA コンソールで設定したサードパーティ Push チャネル ID。0 より大きい値を指定してください。
- values
- サードパーティ Push の RID または Token の配列。配列と各要素を空にすることはできません。
- RID または Token が変わった場合は、再度 API を呼び出して更新してください。
この API はサードパーティ Push 専用です。詳細な制約は、チャネル連絡先 ID の設定を参照してください。
旧バージョンからのアップグレード
- 正式版 SDK は引き続き Push 統合パッケージとして配布されます。すでに AppPush と MTMA の両方を統合しているプロジェクトでは、手動インポートの方法を変更する必要はありません。
- v5.5.0 へのアップグレード後は、MTMAConfig の appKey の設定が必須です。
- MTMAConfig.userID と 4 つのユーザー識別子フィールドはすべて任意のプロパティです。Swift ではオプショナルとして扱ってください。
- 旧版の completion コールバックは引き続き利用できますが、resultCompletion への移行を推奨します。両方を設定した場合は resultCompletion のみが呼び出されます。
- Push RegistrationID と MA RID は異なるデバイス識別情報であり、混同して使用することはできません。










