캐시 연결된 콘텐츠 응답
연결된 콘텐츠 응답을 여러 캠페인이나 메시지(동일한 작업 공간에서)에 캐시하여 전송 속도를 최적화할 수 있습니다.
Braze는 연결된 콘텐츠 응답 본문을 영구적으로 기록하거나 저장하지 않습니다. 메시지 렌더링 과정에서 응답은 일시적으로 (예: 메모리 및 캐시 내) 보유될 수 있으며, 이를 통해 Braze는 Liquid를 렌더링하고 메시지를 전송할 수 있습니다.
캐싱을 방지하기 위해 :no_cache 을 지정하면 네트워크 트래픽을 증가시킬 수 있습니다. 시스템 문제 해결 및 상태 모니터링을 지원하기 위해 Braze는 성공 및 실패한 호출에 대해 연결된 콘텐츠 요청 메타데이터(완전히 렌더링된 요청 URL 및 응답 상태 코드 등)를 기록합니다. 이러한 로그는 최대 30일 동안 보관됩니다.
Connected Content rendering and data handling (advanced)
이 섹션에서는 Braze가 Liquid 및 연결된 콘텐츠를 렌더링하는 방법과 메시지 전송 전에 데이터가 일시적으로 존재할 수 있는 위치에 대한 보다 상세한 종단 간(end-to-end) 관점을 제공합니다. 이는 개인정보 보호 및 데이터 처리 검토에 도움이 될 수 있습니다.
저장되는 것과 저장되지 않는 것
- 연결된 콘텐츠 응답 본문: Braze에 영구적으로 저장되지 않습니다. 메모리에 일시적으로 보관될 수 있으며, 캐싱이 인에이블먼트된 경우 유지 시간(TTL)과 함께 캐시에 저장됩니다.
- 연결된 콘텐츠 요청 메타데이터: 요청 메타데이터(예: 완전히 렌더링된 URL, HTTP 상태 코드, 응답 소요 시간)는 문제 해결 및 모니터링을 위해 기록됩니다. 이러한 로그는 최대 30일 동안 보관됩니다.
- 최종 렌더링된 메시지: 렌더링 중에 메모리에 존재합니다. 구성 및 채널(예: 메시지 보관 또는 콘텐츠 카드)에 따라 다른 위치에 저장될 수도 있습니다.
렌더링 흐름 (상위 수준)
다음 흐름은 Braze가 이메일, SMS, 푸시와 같은 제공자 기반 채널을 위한 메시지를 렌더링하고 전송하는 방식을 설명합니다. 콘텐츠 카드와 같은 SDK 기반 채널은 동일한 기본 Liquid 및 연결된 콘텐츠 렌더링을 사용하지만, 콘텐츠 생성 시점과 전달 방식에서 차이가 있습니다.
- 배경 작업자는 메시지가 전달 준비 상태가 되면 해당 메시지의 Liquid 템플릿을 렌더링합니다.
- 연결된 콘텐츠 태그는 Liquid 렌더링 중에 평가됩니다.
- 각 연결된 콘텐츠 태그에 대해 Braze는 다단계 캐시를 확인합니다. 캐시된 값이 존재하지 않거나(또는 캐싱이 비활성화된 경우) Braze는 귀하의 엔드포인트를 호출하고 응답을 수신합니다.
- 응답이 Liquid 템플릿에 주입되고 메시지가 완전히 렌더링됩니다.
- 공급자 기반 채널의 경우, 렌더링된 메시지는 채널 공급자에게 전송된 후 사용자에게 전달됩니다. 콘텐츠 카드와 같은 SDK를 통해 제공되는 채널의 경우, 렌더링된 콘텐츠는 Braze SDK와 동기화되며 첫 노출 횟수 또는 표시 시점에 생성되어 사용자에게 표시됩니다.
연결된 콘텐츠 응답이 일시적으로 존재할 수 있는 위치
Braze는 연결된 콘텐츠 응답에 대해 다단계 캐시를 사용하며, TTL은 5분에서 4시간 사이로 설정됩니다. 이는 사용자의 설정:cache_max_age및 기타 캐싱 규칙에 따라 달라집니다:
- 프로세스 내 메모리 캐시: 작업자 프로세스 내의 일시적 캐시. 데이터는 작업이 진행되는 동안에만 존재할 수 있습니다(작업자 타임아웃 기준 최대 약 11분).
- 로컬 머신 캐시: 작업자별 캐시, 예를 들어 로컬 Memcached 인스턴스.
- 클러스터 전체 캐시: 작업자 간에 공유되는 분산 캐시, 예를 들어 Memcached 클러스터.
이러한 캐시 계층은 휘발성이며, 구성된 TTL보다 일찍 데이터를 제거할 수 있습니다.
사용하면 무엇이 달라지나요? :no_cache
Braze 인프라 외부에서 호스팅되는 엔드포인트의 경우, 를 사용하면 연결된 콘텐츠 응답 본문이 :no_cacheMemcached에 저장되지 않습니다. 이러한 경우 응답은 렌더링 작업이 진행되는 동안(최대 약 11분)에만 작업자 프로세스 메모리에 존재합니다. Braze 내부 호스트로 해결되는 엔드포인트의 경우에도 응답은 캐시 해제(Cache busting)에 설명된 대로 캐시될 수 있습니다.
최종 렌더링된 출력이 저장될 위치
- 메시지 보관: 메시지 아카이빙이 인에이블된 경우, 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가 모든 메시지에 대해 연결된 콘텐츠를 요청하기 때문에 전송 대기 시간(지연이 증가하거나 요청과 응답 사이의 시간 간격이 더 길어질 수 있습니다)이 늘어날 수 있습니다.
Braze는 POST 요청의 결과를 캐시하지 않으므로 POST를 사용하면 바스트를 캐시할 필요가 없습니다.
알아두어야 할 사항
- 캐싱은 중복된 커넥티드 콘텐츠 호출을 줄이는 데 도움이 됩니다. 그러나 사용자당 항상 하나의 커넥티드 콘텐츠 호출이 발생한다는 보장은 없습니다.
- 연결된 콘텐츠 캐싱은 URL 및 워크스페이스를 기반으로 합니다. 연결된 콘텐츠 호출이 동일한 URL로 연결되는 경우 캠페인과 캔버스에 걸쳐 캐시할 수 있습니다.
- 캐시는 사용자 ID나 캠페인이 아닌 고유 URL을 기반으로 합니다. 즉, URL이 동일한 경우 캐시된 버전의 커넥티드 콘텐츠 호출이 워크스페이스의 여러 사용자 및 캠페인에서 사용될 수 있습니다.
GitHub 에서 이 페이지를 편집합니다.