メインコンテンツへスキップ
OneSignalは、大規模にメッセージコンテンツをパーソナライズするためのいくつかの方法を提供します。このガイドは、プッシュ、メール、SMSのためにOneSignalダッシュボードにあるCSVアップロード機能を備えたダイナミックコンテンツの使用に焦点を当てています。 主な利点:
  • CSVを使用して大規模にパーソナライズ – 1つのメッセージ、すべての人にカスタムエクスペリエンス
  • 多言語サポート – ユーザーごとに自動的に言語を切り替え
  • ダイナミックパーソナライゼーション – コンテンツはユーザープロパティ(言語、地域、キャンペーンID)に適応
  • チームコラボレーション – 非技術ユーザーがCSVファイルでコンテンツを編集
  • HTML インジェクション(メール) – CSVセルにHTMLマークアップを含めて、リッチなメールコンテンツを動的に構築
  • クロスチャネル互換性 – チャネル全体で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ボタンを選択すると提供されます。
OneSignalメッセージエディターのDynamic Contentボタン
利用可能なテンプレート:
  • 多言語 – 言語ごとにコンテンツをローカライズ
  • コンテンツパーソナライゼーション – データタグごとにコンテンツをカスタマイズ
多言語とコンテンツパーソナライゼーションテンプレートを示すCSVテンプレートオプション

CSVの例

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

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

Liquid構文を使用して、dynamic_contentプロパティを使用してメッセージ内のCSVデータを参照します:
<!-- オプション1:コンポーネントから先にアクセス -->
{{dynamic_content.file_name.message_component[user_property]}}

<!-- オプション2:ユーザープロパティから先にアクセス -->
{{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..." }}
多言語ダイナミックコンテンツのLiquid構文を含むOneSignalメールエディター
defaultフォールバック付きのLiquidを使用して、件名、プリヘッダー、ボタン ラベル、およびURLを更新します。

CSVセルでのHTMLの使用(メールのみ)

CSVセルにHTMLマークアップを直接含めて、リッチコンテンツをメールに注入することができます。これは、ユーザープロパティに基づいてメールのセクション全体(バナー、CTAなど)を入れ替えるのに便利です。
promo_banners.csv
campaign_id,banner_html
spring_sale,<div style="background:#4CAF50;padding:16px;text-align:center;"><a href="https://example.com/spring" style="color:#fff;font-size:18px;">Shop the Spring Sale</a></div>
default,<div style="background:#333;padding:16px;text-align:center;"><a href="https://example.com" style="color:#fff;font-size:18px;">See What's New</a></div>
メールテンプレートでHTMLセルを参照します:
{{ dynamic_content.promo_banners[campaign_id].banner_html | default: "<p>Check out our latest offers</p>" }}
HTMLはメール本文に直接レンダリングされるため、メールクライアントがサポートするインラインスタイルとマークアップを使用できます。
CSVセルのHTMLはメールでのみサポートされています。プッシュとSMSチャネルはコンテンツをプレーンテキストとしてレンダリングし、HTMLマークアップを解釈しません。

参考

テンプレートの更新

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

キーの特殊文字

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

よくある質問

CSVを使用したダイナミックコンテンツをテストするにはどうすればよいですか?

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

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

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

関連ページ

メッセージパーソナライゼーション

OneSignalで利用可能なすべてのパーソナライゼーションオプションの概要。

Liquid構文の使用

OneSignalメッセージの完全なLiquid構文リファレンス。

インポート

ユーザーデータとセグメントをOneSignalにアップロードします。

テンプレート

再利用可能なメッセージテンプレートを作成します。