메인 콘텐츠로 건너뛰기
OneSignal은 대규모로 메시지 콘텐츠를 개인화하는 여러 방법을 제공합니다. 이 가이드는 푸시, 이메일 및 SMS용 OneSignal 대시보드에 있는 CSV 업로드 기능을 갖춘 동적 콘텐츠 사용에 중점을 둡니다. 주요 이점:
  • CSV를 사용하여 대규모로 개인화 – 하나의 메시지, 모두를 위한 맞춤형 경험
  • 다국어 지원 – 사용자별로 자동 언어 전환
  • 동적 개인화 – 사용자 속성(언어, 지역, 캠페인 ID)에 따라 콘텐츠 조정
  • 팀 협업 – 비기술 사용자가 CSV 파일에서 콘텐츠 편집
  • HTML 삽입(이메일) – CSV 셀에 HTML 마크업을 포함하여 풍부한 이메일 콘텐츠를 동적으로 구성
  • 크로스 채널 호환성 – 채널 전반에서 CSV 로직 재사용
일반적인 사용 사례:
  • 다국어 온보딩 또는 마케팅
  • 지역별 프로모션
  • 위치별 이벤트 공지
  • 캠페인 기반 개인화

CSV를 사용한 동적 콘텐츠 설정 단계

빠른 참조:
  1. 콘텐츠 변형이 포함된 CSV 파일을 만듭니다.
  2. Liquid 구문의 dynamic_content 속성을 사용하여 CSV 데이터를 메시지에 매핑합니다.
  3. OneSignal 대시보드에서 새 메시지 또는 템플릿을 만듭니다.
  4. 동적 콘텐츠 또는 개인화 버튼을 선택합니다.
  5. CSV 파일을 업로드하고 메시지를 전송합니다.

CSV 요구 사항 및 설정

  • 파일 크기: 200 KB 미만
  • 열 헤더:
    • 태그 키를 위해 첫 번째 열 헤더를 예약하거나 섹션을 참조하기 위해 비워 둡니다
    • 영숫자 문자 및 밑줄만
    • 공백 대신 밑줄(_) 사용
  • 인코딩: UTF-8
빈 CSV로 시작하거나 제공된 템플릿을 사용합니다. 메시지 및 템플릿 편집기에서 동적 콘텐츠 또는 개인화 버튼을 선택하면 템플릿이 제공됩니다.
OneSignal 메시지 편집기의 동적 콘텐츠 버튼
사용 가능한 템플릿:
  • 다국어 – 언어별로 콘텐츠 현지화
  • 콘텐츠 개인화 – 데이터 태그별로 콘텐츠 사용자 지정
다국어 및 콘텐츠 개인화 템플릿을 보여주는 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를 다시 업로드하거나 템플릿 업데이트 API dynamic_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에 사용자 데이터와 세그먼트를 업로드합니다.

템플릿

재사용 가능한 메시지 템플릿을 만듭니다.