コンテンツにスキップ

プレビューでモック JSON を使用してメッセージをテストする

capture と json_parse を使用して、メッセージ内でAPIやエントリスタイルのJSONをモックすることで、キャンペーンの起動、キャンバスのトリガー、Connected Contentのライブ呼び出しを行う前に、メッセージ作成画面のプレビューでLiquidとレイアウトを検証できます。

この例について

架空の衣料品小売ブランド「Flash & Thread」は、Connected Content のレスポンス、キャンバスのコンテキスト変数、またはオブジェクトの配列のプロファイルデータに依存するメッセージを作成しています。イテレーションのたびに実際の API 呼び出しをトリガーしたりキャンペーンを開始したりすると、開発が遅くなります。

このシナリオでは、メッセージ本文にモックの JSON ペイロードを埋め込み、capture で保存してから json_parse で解析します。これにより、Liquid はプレビューセクションで構造化されたフィールドを参照できます。ライブの Connected Content 呼び出し、API トリガーによるキャンバスへのエントリ、テスト送信は必要ありません。

この方法はメッセージの開発中に使用してください。実際のトリガー、テスト送信、またはキャンバスのユーザーパスのプレビューを使用したエンドツーエンドのテストの代わりになるものではありません。

考慮事項

  • この方法を使うと、開発中にメッセージ作成画面でプレビューを確認できます。顧客向けにローンチする前に、テスト送信と実際のパスでの確認を行ってください。
  • capture ブロックだけでは、JSON は文字列として保存されます。フィールドを参照するのは json_parse を適用した後にしてください。そうしないと、プレビューの出力が空白になる場合があります。
  • モック JSON は有効な形式である必要があります。無効な JSON を使用すると、json_parse が失敗したり、予期しない構造が返されたりします。
  • ローンチ前にモックブロックを置き換えるか削除してください。または、モックデータがプレビューでのみ使用されるように本番用の Liquid を保護してください (たとえば、本番公開前に削除するコメントフラグを使用します)。
  • この記事の Liquid スニペットは一例です。実際のチャネルと実際のペイロード構造でテストしてください。
  • 本番環境で Connected Content を使用する場合は、モックブロックを削除し、実際の URL タグを使用してください。API 呼び出しの実行を参照してください。

設定

この例では、listings をループ処理するメール向けに、Connected Content 形式の商品リストのレスポンスをモックします。

ステップ 1: メッセージ内でモック JSON をキャプチャする

capture を使用して JSON 文字列を保持します。ブロック内では有効な JSON 構文を使用してください (キーと文字列値にはダブルクォートを使用します)。

{% capture mock_response %}
{
  "success": true,
  "listings": [
    {
      "id": 45731,
      "name": "Summit Trail Jacket",
      "image_url": "https://example.com/images/trail-jacket.png",
      "price": {
        "actual": "89.00",
        "currency": "USD"
      },
      "link": "https://example.com/products/trail-jacket",
      "product_category": "Outerwear",
      "properties": {
        "size": "L",
        "colour": "Navy",
        "limited_edition": false
      },
      "out_of_stock": false
    }
  ]
}
{% endcapture %}

ステップ 2: json_parse で JSON を解析する

解析した構造を変数に代入し、メッセージの残りの部分でその変数を参照します。

{% assign response_json = mock_response | json_parse %}

json_parse を使用しない場合、キャプチャした文字列に対するドット表記 (例: {{ mock_response.listings }}) は、通常プレビューで空白として表示されます。

ステップ 3: Liquid で解析したフィールドを参照する

解析した配列をループ処理し、実際の API レスポンスと同じようにフィールドをレンダリングします。

{% for listing in response_json.listings %}
{{ listing.name }} — {{ listing.price.actual }} {{ listing.price.currency }}
{% endfor %}

メッセージ作成画面のプレビューセクションに移動し、フィールドが正しくレンダリングされることを確認します。

ステップ 4: 他の JSON 形式にも同じパターンを適用する

同じ capture + json_parse のフローを使用して、以下をモックできます。

テストしたいデータ モック JSON の形式
キャンバスコンテキスト変数 メッセージで想定しているプロパティキーを持つオブジェクト
プロファイル上のオブジェクトの配列 カスタム属性と同じキーを持つオブジェクトの JSON 配列
Connected Content のレスポンス 以前に成功した呼び出しから保存したサンプル API JSON

ローンチする前に、モック変数を本番用の Liquid (キャンバスコンテキスト変数、カスタム属性、または Connected Content タグ) に置き換えてください。

New Stuff!