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' を実行してください。
              
                  pod 'MTMA'

    注意:最新バージョンをインポートできない場合は、pod repo update コマンドでローカルの pod ライブラリを更新してから、再度 pod 'MTMA' を実行してください。

            
このコードブロックはフローティングウィンドウ内に表示されます
  • 特定のバージョンをインストールする場合は、以下のように指定してください(MTMA 5.5.0 の例):
pod '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; }
              
              - (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 *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];
              
              // 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); }];
              
              [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 は異なるデバイス識別情報であり、混同して使用することはできません。
Icon Solid Transparent White Qiyu
お問い合わせ