MobilePush SDK 9系以降では、受信トレイ(Inbox)メッセージの取得方式やメッセージのプロパティが8系以前から変更されています。これからSDKを8系以前から9系以降にアップデートする際は、本記事に記載の動作特性や変更点に留意してください。
主な違いとして、SDK 9系以降ではメッセージの差分取得を行います。SDKは前回取得したメッセージ群に関するタイムスタンプを保持し、次回のメッセージ取得リクエスト時には、その値以降に更新されたメッセージのみを取得します。
一方、SDK 8系以前では、対象デバイスに紐づくアクティブな受信トレイメッセージをすべて再ダウンロードする方式です。
SDK 9系以降の差分取得方式により、以降のセクションで解説するパーソナライズへの影響が発生します。
受信トレイメッセージにおけるAMPScriptやパーソナライズ文字列の評価は、SDKがメッセージをダウンロードするタイミングで行われます。つまり対象デバイスでアプリを起動したタイミングや、メッセージのリフレッシュを要求 (refreshInbox/refreshMessagesの実行) したタイミングで評価・展開されます。
ここで、SDK 9系以降では差分のメッセージを取得するため、すでにダウンロード済みのメッセージに対してはAMPScript やパーソナライズ文字列が再評価されません。一度ダウンロードした後は、Marketing Cloud Engagement側でコンテンツやData Extensionのデータを更新しても、端末上では初回受信時に評価された値が表示され続けます。(※ただし下記の「タイムスタンプ境界のメッセージ再取得について」の例外動作も確認してください。)
SDK 8系以前では、受信トレイメッセージを常にすべて再ダウンロードするため、ダウンロードのたびに全てのメッセージでAMPScriptやパーソナライズ文字列が再評価されていました。よって Data Extension等のデータが更新された場合、次回ダウンロード時にすべてのメッセージの参照値が最新のデータに基づいて再度評価されます。
SDK 9系以降の差分を取得する方式では、メッセージダウンロード時点のデータを保持しやすい反面、Data ExtensionなどMCE上のデータに基づいて動的にコンテンツを変化させるユースケースでは、8系以前と異なるデータ管理が必要になる場合があります。
そのため8系以前において、この都度全メッセージが評価される挙動に基づいて行われていたパーソナライズを行っている場合は、9系への移行において、該当するユースケースが9系以降でも期待どおりに機能するかを検証・評価することを推奨します。
SDK 9 系では差分のみを取得しますが、具体的には端末側で保持する基準のタイムスタンプ以降のメッセージのみを取得・再評価します。
この基準タイムスタンプには「前回取得時点で最新のメッセージを基準にしたタイムスタンプ」が設定されます。そして次回以降はタイムスタンプ "以降の" メッセージが取得されます。つまり最新のメッセージ自身が毎回取得対象に含まれます。
この結果、次の挙動になります。
例) 下記の通り、10:45 のメッセージダウンロードを最後にメッセージ A はそれ以降ダウンロード対象にはならず、AMPScriptの再評価などもされません。
| 時刻 | イベント | ダウンロード対象のメッセージ |
| 10:00 | メッセージ A のジョブ完了 | A |
| 10:05 | アプリ起動/メッセージダウンロード | A (AMPScript評価) |
| 10:10 | アプリ起動/メッセージダウンロード | A (AMPScript評価) |
| 10:30 | メッセージ B のジョブ完了 | A, B |
| 10:45 | アプリ起動/メッセージダウンロード | A, B(AMPScript評価) |
| 10:50 | アプリ起動/メッセージダウンロード |
B (AMPScript評価) *これ以降は Aがダウンロード対象でなくなり、Bが毎度ダウンロード対象となる。 |
Q3. 受信トレイメッセージをタップした際に、ターゲットの URL への遷移が想定した動作にならない(例:WebView やブラウザが開かない、ディープリンクが想定通り動作しない等)
A. まずはアプリをデバッグし、タップ時の遷移の処理やその際にアプリ側で遷移しようとしている URL を確認します。
これらの挙動は多くの場合アプリ側の実装に依存します。受信トレイメッセージに含まれる URL 情報をどのように処理するか(WebView で開く、外部ブラウザで開く、ディープリンクとして処理する等)はアプリ側の実装で決定されるためです。そのため、本事象が見られたらまずはアプリ開発チームへのデバッグ依頼を最初のステップとして推奨します。その上で、Marketing Cloud Engagement が送信するデータや SDK が扱うデータの内容に誤りがある、または不明瞭な点がある場合は、切り分けやデバッグ内容の詳細を添えて Salesforce サポートへお問い合わせください。
*上記挙動は本記事作成時点です。SDK の挙動はバージョンによって異なる場合があります。
005387380

We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to change the default settings.
Privacy Statement
Required cookies are necessary for basic website functionality. Some examples include: session cookies needed to transmit the website, authentication cookies, and security cookies.
Functional cookies enhance functions, performance, and services on the website. Some examples include: cookies used to analyze site traffic, cookies used for market research, and cookies used to display advertising that is not directed to a particular individual.
Advertising cookies track activity across websites in order to understand a viewer’s interests, and direct them specific marketing. Some examples include: cookies used for remarketing, or interest-based advertising.