Push通知

1. Push通知実装方法

まず初めに、Xcode でアプリの push notification を ON にする必要があります。 Apple の手順に従うか、 Xcode でプロジェクトを選択し、"Capabilities" タブを開いて Push Notifications 設定のスイッチを ON にします。

Push通知を行うために、下記のデリゲートメソッドで Tapjoyのメソッドを呼ぶようにします:

Objective-C
Swift
        // リモートノーティフィケーションが登録される際に呼ばれる
        - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
        [Tapjoy setDeviceToken:deviceToken];
        }

        // アプリ起動中にプッシュ通知が来た際に呼ばれる
        - (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {
        [Tapjoy setReceiveRemoteNotification:userInfo];
        }

必ず Push Notification Serviceを登録して下さい。登録しなければ、プッシュ通知許可可否の確認ダイアログが表示されなくなります。

Objective-C
Swift
     // Registering for remote notifications
if (NSClassFromString(@"UNUserNotificationCenter")) {
    // iOS 10+ Notifications
    [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:UNAuthorizationOptionBadge | UNAuthorizationOptionAlert | UNAuthorizationOptionSound completionHandler:^(BOOL granted, NSError * _Nullable error) {
        if (granted) {
            dispatch_async(dispatch_get_main_queue(), ^{
                [application registerForRemoteNotifications];
            });
        }
    }];
} else if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)]) {
    // iOS 8 - 9 Notifications
    [application registerForRemoteNotificationTypes:
        (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}

より詳細な情報に関しては、Appleの iOS Local and Remote Notification Programming Guide をご参照ください。

プッシュ通知を送信するには、Apple Push Notification Service (APNS) のプッシュ証明書が必要になります。詳細は Local Notifications and Remote Notifications Guide をご参照ください。 証明書を取得したら、Tapjoyダッシュボードにアップロードします。詳しくはプッシュ証明書の作成方法 を参照して下さい。証明書をアップロードする場合、ダッシュボードの"アプリ > アプリ設定"を開き、左のメニューから"プッシュ証明書"を選択します。

2. カスタムフィールドの送信

Push通知ではカスタムフィールドを利用し、ダッシュボードで設定した文字列をユーザーに見えない形でTapjoyのプッシュ通知と共に送信できます。このカスタムフィールドは任意の文字列が設定かのうで、アプリで解釈する事によりアプリ内で自由に対応を制御できます。よくある使い方としては、プッシュ通知を押したユーザーに仮想通貨を付与したり、カスタムURLスキームを利用してアプリ内の特定の場所に誘導したりします。詳細についてはPush通知のカスタムフィールドをご参照ください。

この方法で送られた情報をアプリで読み取るには、コードを実装する必要があります。カスタムフィールドは userInfo の p キーの値となります。使用する方法を考慮の上、didFinishLaunchingWithOptions および didReceiveRemoteNotification に次のような実装を行います:

  // ユーザーがプッシュメッセージをクリックした場合に呼ばれる
  - (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
    …
    NSDictionary *userInfo = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
    if (userInfo != nil) {
      NSString* payload = [userInfo objectForKey:@"p"];
      if (payload != nil) {
        NSLog(@"Tapjoy push notification with payload: %@", payload);
      }
    }
    ...
  }

  // アプリ実行中にメッセージを受け取った場合
  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
    ...
    NSString *payload = [userInfo objectForKey:@"p"];
    if (payload != nil) {
      NSLog(@"Tapjoy push notification with payload: %@", payload);
    }
    ...
  }

3. Push通知メモ

  • Tapjoyで同時に複数のPushを送信できますか?
    • はい。この記事をご参照ください。
  • Push証明書の期間がもうすぐ切れそうです。
    • 期間切れまでに新しい証明書をアップロードしてください。
  • ユーザーをアプリの特定の箇所にリダイレクトできますか?
    • はい。カスタムフィールドを利用してユーザーをリダイレクトできます。この記事をご参照ください。