콘텐츠로 이동

RCS 메시지

RCS(Rich Communication Services)는 Android 장치를 위한 차세대 메시징으로, 기존 SMS를 뛰어넘는 리치 미디어, 상호작용성 및 고급 기능을 제공합니다.

개요

RCS는 향상된 메시징 기능을 제공합니다.

  • 리치 미디어(이미지, 비디오, GIF)
  • 대화형 버튼 및 캐러셀
  • 읽음 확인 및 입력 표시
  • 더 높은 문자 제한(최대 3072자)
  • 배송 추적 개선
  • 브랜드가 있는 발신자 식별

가용성

  • 플랫폼: Android 기기 전용
  • 네트워크: 이동통신사 RCS 지원이 필요합니다.
  • 대체: RCS를 사용할 수 없는 경우 자동으로 SMS로 대체합니다.

기본 RCS 메시지

RCS 예

요청

{
  "from": "YourBrand",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Your RCS message text with rich formatting"
}

매개변수

매개변수 유형 필수 설명
'에서' 문자열 영숫자 발신자 ID
'에' 문자열 수신자 전화번호(E.164)
'유형' 문자열 "rcs"로 설정
텍스트 문자열 메시지 내용(최대 3072자)
메시지데이터 개체 아니요 리치 미디어 및 버튼

메시지 유형

텍스트만

글자 수 제한이 확장된 간단한 문자 메시지:

{
  "from": "YourBrand",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Welcome to our service! RCS allows us to send much longer messages with rich formatting and interactive elements."
}

텍스트 + 이미지

{
  "from": "YourBrand",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Check out our new product!",
  "messageData": {
    "media": {
      "url": "https://example.com/product.jpg",
      "type": "image/jpeg",
      "height": 600,
      "width": 800
    }
  }
}

텍스트 + 이미지 + 버튼

{
  "from": "YourStore",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Summer Sale - Up to 50% off!",
  "messageData": {
    "media": {
      "url": "https://example.com/sale-banner.jpg",
      "type": "image/jpeg"
    },
    "buttons": [
      {
        "text": "Shop Now",
        "action": {
          "type": "openUrl",
          "url": "https://example.com/sale"
        }
      }
    ]
  }
}

텍스트 + 비디오

{
  "from": "YourBrand",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Watch our product demo",
  "messageData": {
    "media": {
      "url": "https://example.com/demo.mp4",
      "type": "video/mp4",
      "thumbnail": "https://example.com/thumbnail.jpg"
    }
  }
}

텍스트 + 여러 버튼

{
  "from": "YourService",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Your order #12345 is ready for pickup",
  "messageData": {
    "buttons": [
      {
        "text": "Track Order",
        "action": {
          "type": "openUrl",
          "url": "https://example.com/track/12345"
        }
      },
      {
        "text": "Contact Support",
        "action": {
          "type": "dial",
          "phoneNumber": "+380XXXXXXXXX"
        }
      },
      {
        "text": "Cancel Order",
        "action": {
          "type": "openUrl",
          "url": "https://example.com/cancel/12345"
        }
      }
    ]
  }
}

RCS 캐러셀

스크롤 가능한 캐러셀에 여러 항목을 표시합니다.

{
  "from": "YourStore",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Featured Products",
  "messageData": {
    "carousel": {
      "cards": [
        {
          "title": "Product A",
          "description": "Premium quality product",
          "media": {
            "url": "https://example.com/product-a.jpg",
            "type": "image/jpeg"
          },
          "buttons": [
            {
              "text": "Buy Now",
              "action": {
                "type": "openUrl",
                "url": "https://example.com/product-a"
              }
            },
            {
              "text": "Details",
              "action": {
                "type": "openUrl",
                "url": "https://example.com/product-a/details"
              }
            }
          ]
        },
        {
          "title": "Product B",
          "description": "Best seller",
          "media": {
            "url": "https://example.com/product-b.jpg",
            "type": "image/jpeg"
          },
          "buttons": [
            {
              "text": "Buy Now",
              "action": {
                "type": "openUrl",
                "url": "https://example.com/product-b"
              }
            }
          ]
        }
      ]
    }
  }
}

버튼 동작

URL 열기

{
  "text": "Visit Website",
  "action": {
    "type": "openUrl",
    "url": "https://example.com"
  }
}

전화번호로 전화 걸기

{
  "text": "Call Us",
  "action": {
    "type": "dial",
    "phoneNumber": "+380XXXXXXXXX"
  }
}

위치 보내기

{
  "text": "Share Location",
  "action": {
    "type": "shareLocation"
  }
}

캘린더 이벤트

{
  "text": "Add to Calendar",
  "action": {
    "type": "createCalendarEvent",
    "title": "Appointment",
    "startTime": "2025-01-25T14:00:00Z",
    "endTime": "2025-01-25T15:00:00Z"
  }
}

미디어 사양

이미지

  • 형식: JPEG, PNG, GIF
  • 최대 크기: 2MB
  • 권장 해상도: 800x600 또는 1200x800
  • 가로세로 비율: 16:9 또는 4:3

동영상

  • 형식: MP4, 3GP
  • 최대 크기: 10MB
  • 최대 지속 시간: 2분
  • 권장 해상도: 1280x720

오디오

  • 형식: MP3, AAC
  • 최대 크기: 5MB
  • 최대 지속 시간: 5분

SMS로 대체

다음과 같은 경우 RCS가 자동으로 SMS로 대체됩니다.

  • 수신자에게 RCS가 없습니다.
  • 수신 장치에서 RCS가 비활성화되었습니다.
  • 네트워크가 RCS를 지원하지 않습니다.
{
  "from": "YourBrand",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Check out our new product!",
  "messageData": {
    "media": {
      "url": "https://example.com/product.jpg",
      "type": "image/jpeg"
    },
    "buttons": [
      {
        "text": "Shop Now",
        "action": {
          "type": "openUrl",
          "url": "https://example.com/shop"
        }
      }
    ]
  },
  "fallback": {
    "type": "sms",
    "text": "Check out our new product! Visit: https://example.com/shop"
  }
}

사용 사례

전자상거래

{
  "from": "YourStore",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Your order has been shipped!",
  "messageData": {
    "media": {
      "url": "https://example.com/package.jpg",
      "type": "image/jpeg"
    },
    "buttons": [
      {
        "text": "Track Package",
        "action": {
          "type": "openUrl",
          "url": "https://example.com/track/ABC123"
        }
      },
      {
        "text": "Contact Support",
        "action": {
          "type": "dial",
          "phoneNumber": "+380XXXXXXXXX"
        }
      }
    ]
  }
}

은행

{
  "from": "YourBank",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Low balance alert: Your account balance is $50",
  "messageData": {
    "buttons": [
      {
        "text": "View Balance",
        "action": {
          "type": "openUrl",
          "url": "https://bank.example.com/balance"
        }
      },
      {
        "text": "Transfer Money",
        "action": {
          "type": "openUrl",
          "url": "https://bank.example.com/transfer"
        }
      }
    ]
  }
}

여행

{
  "from": "YourAirline",
  "to": "+380XXXXXXXXX",
  "type": "rcs",
  "text": "Your flight is departing in 3 hours",
  "messageData": {
    "media": {
      "url": "https://example.com/boarding-pass.jpg",
      "type": "image/jpeg"
    },
    "buttons": [
      {
        "text": "Check-in",
        "action": {
          "type": "openUrl",
          "url": "https://airline.example.com/checkin"
        }
      },
      {
        "text": "Add to Calendar",
        "action": {
          "type": "createCalendarEvent",
          "title": "Flight Departure",
          "startTime": "2025-01-25T10:00:00Z"
        }
      }
    ]
  }
}

모범 사례

내용

  • ✅ 고품질 이미지 사용(최소 800x600)
  • ✅ 버튼 텍스트를 짧게 유지하세요(2-3단어)
  • ✅ 리치 콘텐츠에 대한 SMS 대체 제공
  • ✅ 다양한 Android 기기에서 테스트
  • ❌ 메시지당 버튼 수는 4~5개를 초과하지 마세요.
  • ❌ 대용량 동영상 파일(>5MB)은 피하세요.

미디어

  • 모든 미디어에 HTTPS URL을 사용하세요.
  • 모바일용 이미지 최적화
  • 접근성을 위한 대체 텍스트 포함
  • 보내기 전에 미디어 URL을 테스트하세요.

버튼

  • 메시지당 최대 4개의 버튼
  • 명확한 클릭 유도 문구 텍스트
  • 모든 버튼 동작 테스트
  • 사용할 수 없는 작업에 대한 대체 고려

브랜딩

  • 일관된 발신자 ID 사용
  • 적절한 경우 브랜드 로고를 포함합니다.
  • 브랜드 보이스와 톤 유지
  • 시각적 일관성 보장

배송상태

RCS는 향상된 배송 추적 기능을 제공합니다.

  • 전송됨: 이동통신사로 전송된 메시지
  • 전달됨: 메시지가 기기로 전달되었습니다.
  • 읽기: 수신자가 메시지를 열었습니다.
  • 실패: 전달 실패, 대체 실행됨

상태 엔드포인트를 사용하여 상태를 확인하세요.

다음 단계