메인 콘텐츠로 건너뛰기

개요

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

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

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

CSV 요구 사항 및 설정

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

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를 다시 업로드하거나 템플릿 업데이트 API dynamic_content 속성을 사용하세요.

키의 특수 문자

해시 표기법(영숫자가 아닌 키의 경우):
{{ dynamic_content.file_name["!the_row!"]["&the_column&"] }}
점 표기법(표준 키의 경우):
{{ dynamic_content.file_name.the_row.the_column }}

관련 문서