Skip to content

연결된 콘텐츠 응답 캐시하기

연결된 콘텐츠 응답을 여러 캠페인이나 메시지(동일한 작업 공간에서)에 캐시하여 전송 속도를 최적화할 수 있습니다.

Braze는 연결된 콘텐츠 응답 본문을 영구적으로 기록하거나 저장하지 않습니다. 메시지 렌더링 중에 응답을 메모리와 캐시에 일시적으로 보관하여 Braze가 Liquid를 렌더링하고 메시지를 전송할 수 있도록 할 수 있습니다.

캐싱을 방지하기 위해 :no_cache 을 지정하면 네트워크 트래픽을 증가시킬 수 있습니다. 시스템 상태를 모니터링하고 문제 해결을 돕기 위해 Braze는 연결된 콘텐츠 요청 메타데이터(예: 완전히 렌더링된 요청 URL 및 응답 상태 코드)를 성공 및 실패 호출에 대해 기록합니다. 이러한 로그는 최대 30일 동안 보관됩니다.

Connected Content rendering and data handling (advanced)

이 섹션에서는 Braze가 Liquid 및 연결된 콘텐츠를 렌더링하는 방법과 메시지를 전송하기 전에 데이터가 일시적으로 존재할 수 있는 위치에 대한 자세한 엔드투엔드 보기를 제공합니다. 이는 데이터 프라이버시 및 데이터 취급 검토에 도움이 될 수 있습니다.

저장되는 항목과 저장되지 않는 항목

  • 연결된 콘텐츠 응답 본문: Braze에서 영구적으로 저장하지 않습니다. 메모리에 임시로 보관할 수 있으며, 캐싱이 인에이블먼트된 경우 TTL(Time-to-Live)이 설정된 캐시에 저장됩니다.
  • 연결된 콘텐츠 요청 메타데이터: 문제 해결 및 모니터링을 위해 완전히 렌더링된 URL, HTTP 상태 코드, 응답 시간 등의 요청 메타데이터가 기록됩니다. 이러한 로그는 최대 30일 동안 보관됩니다.
  • 최종 렌더링된 메시지입니다: 렌더링 중 메모리에 존재합니다. 또한 구성 및 채널(예: 메시지 보관 또는 콘텐츠 카드)에 따라 다른 곳에 저장될 수도 있습니다.

렌더링 흐름(고급 수준)

다음 흐름은 이메일, SMS, 푸시 등 공급자 기반 채널에 대해 Braze가 메시지를 렌더링하고 전송하는 방법을 설명합니다. 콘텐츠 카드와 같은 SDK 제공 채널은 동일한 기본 Liquid 및 연결된 콘텐츠 렌더링을 사용하지만 콘텐츠가 생성되는 시기와 전달 방식이 다릅니다.

  1. 백그라운드 워커는 메시지가 전달될 준비가 되면 메시지에 대한 Liquid 템플릿을 렌더링합니다.
  2. 연결된 콘텐츠 태그는 Liquid 렌더링 중에 평가됩니다.
  3. 각 연결된 콘텐츠 태그에 대해 Braze는 다중 계층 캐시를 확인합니다. 캐시된 값이 존재하지 않거나 캐싱이 비활성화되어 있으면 Braze는 엔드포인트를 호출하고 응답을 수신합니다.
  4. 응답이 Liquid 템플릿에 주입되고 메시징이 완전히 렌더링됩니다.
  5. 공급자 기반 채널의 경우 렌더링된 메시지가 채널 공급자에게 전송된 다음 사용자에게 전송됩니다. 콘텐츠 카드와 같은 SDK 제공 채널의 경우 렌더링된 콘텐츠가 Braze SDK에 동기화되어 첫 노출 횟수 또는 표시 시점에 생성되어 사용자에게 표시될 수 있습니다.

연결된 콘텐츠 응답이 일시적으로 살 수 있는 위치

Braze는 :cache_max_age 및 기타 캐싱 규칙의 사용에 따라 5분에서 4시간 사이의 TTL로 연결된 콘텐츠 응답에 다중 계층 캐시를 사용합니다:

  • 진행 중인 메모리 캐시: 작업자 프로세스 내 임시 캐시. 데이터는 작업 시간 동안만 보관할 수 있습니다(작업자 시간 제한에 따라 최대 최대 11분).
  • 로컬 머신 캐시: 로컬 멤캐시드 인스턴스와 같은 워커별 캐시입니다.
  • 클러스터 전체 캐시: 멤캐시드 클러스터와 같이 작업자 간에 공유되는 분산 캐시입니다.

이러한 캐시 레이어는 휘발성이 있으며 설정된 TTL보다 일찍 데이터를 제거할 수 있습니다.

사용 시 변경되는 사항 :no_cache

Braze 인프라 내부에서 호스팅되지 않는 엔드포인트의 경우 :no_cache 을 사용하면 연결된 콘텐츠 응답 본문이 Memcached에 저장되지 않습니다. 이러한 경우 응답은 렌더링 작업 기간 동안(최대 ~11분) 작업자 프로세스 메모리에만 저장됩니다. Braze 내부 호스트로 리졸브하는 엔드포인트의 경우 캐시 버스팅에 설명된 대로 응답이 계속 캐시될 수 있습니다.

최종 렌더링된 결과물이 저장될 수 있는 위치

  • 메시지 보관: 메시지 보관이 인에이블먼트된 경우, Braze는 최종 렌더링된 메시지를 사용자가 구성한 클라우드 스토리지 버킷에 기록할 수 있습니다. 연결된 콘텐츠 응답이 렌더링된 메시지에 포함되어 있으면 보관된 사본에 포함됩니다.
  • 사용자 기기: 전달 후에는 완전히 렌더링된 메시지 콘텐츠가 사용자 기기에 알 수 없는 시간 동안 지속될 수 있습니다.
  • Content Cards: 콘텐츠 카드에 렌더링된 콘텐츠는 카드가 만료될 때까지 Braze 데이터베이스에 저장됩니다.

기본 캐시 설정

캐시 기간은 최대 5분(300초)입니다. 연결된 콘텐츠 호출에 :cache_max_age 매개 변수를 추가하여 이를 업데이트할 수 있습니다. 예를 들면 다음과 같습니다:

1
{{ {% connected_content [https://example.com/webservice.json] :cache_max_age 900 %}}}

GET 요청은 캐시됩니다. 연결된 콘텐츠 호출에 :no_cache 매개 변수를 추가하여 이를 구성할 수 있습니다.

POST 요청은 캐시되지 않습니다. 이는 연결된 콘텐츠 호출에 :cache_max_age 매개 변수를 추가하여 강제로 적용할 수 있습니다. 최소 캐시 시간은 5분, 최대 캐시 시간은 4시간입니다.

캐시 크기 제한

커넥티드 콘텐츠 응답 본문은 최대 1MB까지 가능합니다. 응답 본문이 1MB보다 크면 캐시되지 않습니다.

캐시 시간

연결된 콘텐츠는 GET 엔드포인트에서 반환하는 값을 최소 5분 동안 캐시합니다. 캐시 시간을 지정하지 않으면 기본 캐시 시간은 5분입니다.

연결된 콘텐츠 캐시 시간은 다음 예시와 같이 :cache_max_age, 을 사용하여 더 길게 구성할 수 있습니다. 최소 캐시 시간은 5분, 최대 캐시 시간은 4시간입니다. 연결된 콘텐츠 데이터는 Memcached와 같은 휘발성 캐시 시스템을 사용하여 인메모리에 캐시됩니다.

따라서 지정된 캐시 시간에 관계없이 커넥티드 콘텐츠 데이터는 지정된 시간보다 일찍 Braze의 인메모리 캐시에서 제거될 수 있습니다. 즉, 캐시 기간은 제안 사항이며 실제로 Braze에서 데이터가 캐시되는 기간을 나타내지 않을 수 있으며, 주어진 캐시 기간으로 예상보다 더 많은 연결된 콘텐츠 요청이 표시될 수 있습니다.

지정된 초 동안 캐시

이 예제는 900초(또는 15분) 동안 캐시됩니다.

1
{% connected_content https://example.com/webservice.json :cache_max_age 900 %}

캐시 버스팅

연결된 콘텐츠가 GET 요청에서 반환하는 값을 캐싱하지 않도록 하려면 :no_cache 구성을 사용하면 됩니다. 그러나 Braze 내부 호스트의 응답은 계속 캐시됩니다.

1
{% connected_content https://example.com/webservice.json :no_cache %}

Braze는 POST 요청의 결과를 캐시하지 않으므로 POST를 사용하면 바스트를 캐시할 필요가 없습니다.

알아두어야 할 사항

  • 캐싱은 중복된 커넥티드 콘텐츠 호출을 줄이는 데 도움이 됩니다. 그러나 사용자당 항상 하나의 커넥티드 콘텐츠 호출이 발생한다는 보장은 없습니다.
  • 연결된 콘텐츠 캐싱은 URL 및 워크스페이스를 기반으로 합니다. 연결된 콘텐츠 호출이 동일한 URL로 연결되는 경우 캠페인과 캔버스에 걸쳐 캐시할 수 있습니다.
  • 캐시는 사용자 ID나 캠페인이 아닌 고유 URL을 기반으로 합니다. 즉, URL이 동일한 경우 캐시된 버전의 커넥티드 콘텐츠 호출이 워크스페이스의 여러 사용자 및 캠페인에서 사용될 수 있습니다.
New Stuff!