メインコンテンツへスキップ

概要

OneSignalは、大規模にメッセージコンテンツをパーソナライズするためのいくつかの方法を提供します。このガイドは、プッシュ、メール、SMSのためにOneSignalダッシュボードにあるCSVアップロード機能を備えたダイナミックコンテンツの使用に焦点を当てています。 主な利点:
  • CSVを使用して大規模にパーソナライズ – 1つのメッセージ、すべての人にカスタムエクスペリエンス
  • 多言語サポート – ユーザーごとに自動的に言語を切り替え
  • ダイナミックセグメンテーション – コンテンツはユーザープロパティ(言語、地域、キャンペーンID)に適応
  • チームコラボレーション – 非技術ユーザーがCSVファイルでコンテンツを編集
  • クロスチャネル互換性 – チャネル全体でCSVロジックを再利用
一般的なユースケース:
  • 多言語オンボーディングまたはマーケティング
  • 地域固有のプロモーション
  • 場所ごとのイベント発表
  • キャンペーンベースのパーソナライゼーション

CSVを使用したダイナミックコンテンツのセットアップ手順

クイックリファレンス:
  1. コンテンツのバリエーションを含むCSVファイルを作成します。
  2. Liquid構文のdynamic_contentプロパティを使用してCSVデータをメッセージにマッピングします。
  3. OneSignalダッシュボードから新しいメッセージまたはテンプレートを作成します。
  4. Dynamic ContentまたはPersonalizationボタンを選択します。
  5. CSVファイルをアップロードしてメッセージを送信します。

CSV要件と設定

  • ファイルサイズ: 200 KB未満
  • 列ヘッダー:
    • タグキーの最初の列ヘッダーを予約するか、セクションを参照するために空白のままにします
    • 英数字と下線のみ
    • スペースの代わりに下線(_)を使用します
  • エンコーディング: UTF-8
空白のCSVから始めるか、提供されたテンプレートを使用します。テンプレートは、メッセージおよびテンプレートエディターでDynamic ContentまたはPersonalizationボタンを選択すると提供されます。
利用可能なテンプレート:
  • 多言語 – 言語ごとにコンテンツをローカライズ
  • コンテンツパーソナライゼーション – データタグごとにコンテンツをカスタマイズ

CSVの例

このガイドでは、以下のCSVデータの例を使用します。
  • 列ヘッダーをサポートされている言語コードにマッピングします。
  • 各言語コードの各行に翻訳を追加します。
  • 複数のセクション(メールなど)がある場合は、最初の列をセクション名として指定します。
この例では:
  • 3つの言語があります:英語、スペイン語、フランス語。
  • 2つのセクションがあります:「section_1」と「section_2」。

CSVデータをメッセージコンテンツにマッピングする

Liquid構文を使用して、dynamic_contentプロパティを使用してメッセージ内のCSVデータを参照します:
{{dynamic_content.file_name.message_component[user_property]}}
または
{{dynamic_content.file_name[user_property].message_component}}
パラメータ:
  • dynamic_content – CSVデータを参照するために使用されるプロパティ名
  • file_name – CSVファイル名(.csv拡張子なし)
  • message_component – パーソナライズする特定のメッセージコンポーネント。これは、CSV列ヘッダーまたは最初の行の静的テキストです。
  • user_property – 参照するユーザープロパティ
フォールバックコンテンツ: CSVルックアップまたはダイナミックコンテンツが失敗した場合にメッセージがレンダリングされることを保証するために、常にハードコードされた文字列defaultフォールバックを使用してください。
フォールバックのためのLiquid構文
{{ dynamic_content.my_template.header[user.language] | default: "最新の更新へようこそ" }}
これは、CSVルックアップまたはダイナミックコンテンツが失敗した場合、メッセージがフォールバックテキスト"最新の更新へようこそ"をレンダリングすることを意味します。 これにより以下が保証されます:
  • 利用可能な場合はダイナミックコンテンツが使用されます
  • ダイナミックコンテンツが失敗した場合はハードコードされたメッセージが表示されます
  • ユーザーが空白のコンテンツを受け取ることはありません
translations.csv
,en,es,fr
section_1,Hello,Hola,Bonjour
section_2,Thanks for shopping with us...,Gracias por comprar con nosotros...,Merci pour votre achat avec nous...
  • file_nametranslations.csvです。
  • message_componentは最初の列の行section_1section_2にあります。
  • user_propertyは言語コードに一致する列ヘッダーです。user.languageプロパティを使用してユーザー上でこれを参照できます。
多言語メッセージの基本的なLiquid構文
{{dynamic_content.translations.section_1[user.language]}}
{{dynamic_content.translations.section_2[user.language]}}
(推奨)デフォルトフォールバック付き多言語メッセージのLiquid構文
{% assign supported_langs = "en,es,fr,de" | split: "," %}
{% assign lang = user.language | default: "en" %}

{% unless supported_langs contains lang %}
  {% assign lang = "en" %}
{% endunless %}

{{ dynamic_content.translations.section_1[lang] | default: "Hello" }}
{{ dynamic_content.translations.section_2[lang] | default: "Thanks for shopping with us..." }}
defaultフォールバック付きのLiquidを使用して、件名、プリヘッダー、ボタン ラベル、およびURLを更新します。

使用上の考慮事項

CSVを使用したダイナミックコンテンツをテストする方法は?

メッセージの複数のバリエーションをテストするには、メールの使用をお勧めします。
  • メールで+アドレッシングを使用して複数のバリエーションをテストできます:username+test@example.com
  • 上記の多言語およびコンテンツパーソナライゼーションの例に従ってタグを設定します。
  • 複数のユーザーとデータタグのアップロードについての詳細は、Importを参照してください。

CSVを使用したダイナミックコンテンツと他のパーソナライゼーションオプションのどちらを使用するか

  • ダッシュボードからメッセージを送信し、CSVファイルでユーザーデータにアクセスできる場合は、CSVを使用したダイナミックコンテンツを使用してください。
  • メッセージにダイナミックコンテンツを追加する他のオプションについては、**メッセージパーソナライゼーション**または多言語メッセージングオプションを参照してください。

テンプレートの更新

ダッシュボード経由でCSVを再アップロードするか、テンプレート更新APIdynamic_contentプロパティを使用します。

キーの特殊文字

ハッシュ表記(非英数字キーの場合):
{{ dynamic_content.file_name["!the_row!"]["&the_column&"] }}
ドット表記(標準キーの場合):
{{ dynamic_content.file_name.the_row.the_column }}

関連記事