• アプリ内メッセージを複数登録していて、同時に表示可能なメッセージが複数ある場合どのように表示されますか。

    優先度の高いメッセージが表示されます。
    (同一優先度のメッセージの場合、登録日時が新しいメッセージが表示されます。)

    その後、起動トリガーを再度満たすと次のメッセージが表示されます。

    下記が具体例となります。

    ■設定
    ・メッセージA:優先度10
    ・メッセージB:優先度1
    ・トリガー:メッセージABともに、 「アプリを開く」にする

    結果
    メッセージAが表示されます。
    また、メッセージAが表示された後に、再度アプリを開いたタイミングでメッセージBが表示されます。

    ※なお、メッセージAに「1日に配信する最大回数」を設定していた場合は、その回数分メッセージAが表示された後に、再度アプリを開いたタイミングでメッセージBが表示されます。


    参考|アプリ内メッセージの優先度について

  • アプリ内メッセージが表示されません

    アプリ内メッセージが表示されない場合は、以下をご確認ください。

     



    登録が間違っていませんか?

    • 条件に合致するか確認ください
    • イベント自体が発火していますか
    • 日時が間違っていませんか



    1日に1回のみの設定になっていませんか?

    • ユーザーに対して、最大何回アプリ内メッセージを表示するかなど、
      「配信する累計最大回数」と、「1日に配信する最大回数」を設定できます。



    セグメント配信を行っていませんか?

    • セグメント配信(条件指定)では、当日にアプリをインストールしたユーザーには届きません。
    • セグメント自体の更新は、翌日以降反映されます

    ※「ID指定」をファイルアップロードで行った場合は、反映に15~30分程度かかります。



    登録後「有効化」していますか?

    アプリ内メッセージは、本番配信を行ったあと、「有効化」する必要があります。
    登録したアプリ内メッセージより[有効化する]をクリックします。

    ____________________.png

     

     

     

  • アプリ内メッセージに登録したURLに遷移しないのですが

    対応には以下の実装が必要です。

    遷移しない場合、実装されているかご確認ください。

     

    ■組み込みガイド

    「8.3.3 デリゲート 」、特に「8.3.3.4 コンテンツ内のボタン押下時処理」に記載した実装。

    URLを開く実際の処理(組み込みガイドにおけるstartProcessUsing(url: url) に該当する部分の実装)については、アプリ側で適切なものを適宜選んで実装してください。

    参考:SDK組込みガイド(従来版)

     

    原則は以下のメソッドを利用するのを推奨しています。
    https://developer.apple.com/documentation/uikit/uiapplication/1648685-open


    シンプルな実装例)

      
      if #available(iOS 10.0, *) {
    UIApplication.shared.open(URL(string: url)!, options: [:], completionHandler: nil) } else {
    // iOS9以下をサポートしない場合は、この分岐は不要です
    UIApplication.shared.openURL(URL(string: url)!)
    }

     

     

     

  • アプリ内メッセージのテスト配信の仕様について教えてください
    • テスト配信を行った場合は、イベントが複数回発生する場合でも、一度しか表示されません。
      ※複数の起動トリガーを設定している場合は、その起動トリガー分表示がされます。
    • 「配信する累計最大回数=1」でテスト配信されるため、テスト配信を実施した回数だけ配信されます。
    • 管理画面で新たに登録したアプリ内メッセージを取得、更新するタイミングは、アプリがバックグラウンドからフォアグラウンドへ復帰した時になります。
      そのため、届かない場合は一度バックグラウンドを経由してください。
    • 配信期間は、自動的に登録時から10分間となります。
    • 表示頻度(累計最大表示回数)は、自動的に「1」になります。
  • 「メッセージタイプ:ポップアップ(画像のみ)」の画像表示が見切れてしまいます

    アプリ内メッセージでwebviewで表示されるhtmlは、以下の仕様となっています。

    画面全体の横幅に対して、画面中央から80%の割合で表示する

    「画像が横幅いっぱいに表示されて、右上の×ボタンが見切れてしまう」といった表示が見切れるような場合は、
    アプリ側で表示制御を行っている可能性があるため、HTMLをどのように表示させているかご確認ください。

  • アプリ内メッセージの配信結果の集計タイミングを教えてください

    アプリ内メッセージの配信結果は、プッシュの配信一覧と同様、翌朝8時までに集計されます。

     

    参考:
    管理画面のプッシュ通知「配信結果」は、リアルタイムで数値が反映されますか?

  • アプリ内メッセージの表示優先度について

    複数のアプリ内メッセージを同じタイミングで表示されるように設定した場合、優先度の高いメッセージが表示されます。
    また、起動トリガーのイベントが再度発生したタイミングで次のメッセージが表示されるため、連続でアプリ内メッセージが表示されることはありません。

    例)設定内容を以下とした場合

    • 優先順位1位のメッセージを1日に2回表示
    • 優先順位2位のメッセージを1日に1回表示
    • 起動トリガー:「test」を指定

    ■表示順

    1. 優先順位1位のメッセージ (登録日時が新しいもの)
    2. 優先順位1位のメッセージ  
    3. 優先順位2位のメッセージ 
    • 1回の起動トリガーでメッセージは1つしか表示されません。
    • 都度起動トリガーを踏んで上記順番で表示されます。

    ※「同じ期間・同じ起動トリガー・同じ優先度」の場合は、「登録日時が新しいもの」から表示されます。

  • アプリ内メッセージからお知らせ詳細に遷移する方法はありますか?

    各OS毎で以下のようにカスタマイズ実装いただくことで可能となります。

    ■前提
    既にお知らせを受け取っているエンドユーザーに対して有効な方法となりますので、事前に配信IDを知っている前提となります。
    お知らせを受け取っていないエンドユーザーに対して、アプリ内メッセージから遷移してお知らせを表示しようとした場合は「表示できません」という表示になります。

    ■サンプル
    例として遷移先URLを「popinfo.sample.link://1234567890」とした場合のサンプルとなります。
    ※「1234567890」は、配信IDとなります。

    Android

    1. AndroidManifest.xmlにディープリンクで開くクラスを記載します。

      <!-- カスタムURL「popinfo.sample.link://」から呼び出されるActivity -->
      <activity
      android:name=".LinkActivity"
      android:exported="true" >
      <intent-filter>
      <action android:name="android.intent.action.VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.BROWSABLE" />
      <data android:scheme="popinfo.sample.link" />
      </intent-filter>
      </activity>

    2. 組み込みガイド > 各種機能 > アプリ内メッセージ の「画面遷移のサンプル」箇所を参考に、アプリ内メッセージのボタン押下時にURLを開く処理を追加します。

      @Override
      protected void onInappMessageTapAction(String actionUrl) {
          try {
              Uri uri = Uri.parse(actionUrl);
              Intent intent = new Intent(Intent.ACTION_VIEW, uri);
              intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              startActivity(intent);
          } catch (ActivityNotFoundException e) {
          }
      }

    3. DeepLinkで開くクラスを新規追加します。
      LinkActivity.java

      public class LinkActivity extends Activity {
      @Override
      protected void onCreate(@Nullable Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      Intent intent = getIntent();
      Uri data = intent.getData();
      // 取得したURIからメッセージ詳細を開く処理
      if (!data.getHost().isEmpty()) {
      PopinfoUiUtils.showMessageView(LinkActivity.this, Long.parseLong(data.getHost()));
      finish();
      }
      }
      }

    4. アプリ内メッセージを作成し、ボタンの遷移先指定でpopinfo.sample.link://1234567890と指定します。

     

    iOS

    1. PROJECT -> TARGETS -> Info -> URL Types にディープリンクで使用するスキーマを登録します。

      00.urlscheme.png

    2. PopinfoEventActionReceiverDelegateにアプリ内メッセージで「遷移先指定」の指定がされたボタンをタップされた時のコールバックを実装し、URLを開くようにします。

      func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
      if let contexts = URLContexts.first {
      guard let host = contexts.url.host else { return }
      if let messageId = Int(host) {
      //お知らせを更新してからお知らせ詳細を表示する
      PopinfoReceiver.shared.updateMessages { isOk, errorMessage, newMessages in
      let detailVC = PopinfoDetailViewController(nibName: "PopinfoDetailViewController",
      bundle: Bundle.main)
      detailVC.messageId = messageId
      self.showViewController(viewController: detailVC)
      }
      }
      }
      }