Contentful과 함께 Split을 사용하는 가장 좋은 방법
5386 단어 featureflagscms
Split은 최고의 기능 제공 플랫폼입니다. Contentful은 인기 있는 헤드리스 콘텐츠 관리 시스템입니다. 고객은 분명히 두 제품을 결합하기를 원합니다. Split은 제어된 릴리스 또는 실험을 위한 기능 플래그를 구현할 수 있으며 Contentful은 페이지에 올바른 콘텐츠를 제공합니다.
"API를 사용하세요, 루크"
Contentful은 콘텐츠를 페이지에 전달하기 위한 API를 제공합니다. 이 문서는 Contentful Javascript API 에서 작동합니다. Split에는 Javascript SDK도 있습니다. PHP, Android, iOS, Java, Python, Ruby 또는 .NET에서 모두 코딩할 수도 있습니다.
앞을 내다보고 싶다면 full example HTML/js for this article 을 확인할 수 있습니다.
API 및 SDK 초기화
먼저 API와 SDK를 포함합니다.
<!-- wp:paragraph -->
<p><script src="https://cdn.jsdelivr.net/npm/contentful@latest/dist/contentful.browser.min.js"></script></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><script src="//cdn.split.io/sdk/split-10.19.0.min.js"></script></p>
<!-- /wp:paragraph -->
이전 섹션의 API 및 SDK 설명서 링크를 방문하여 최신 링크 및 버전을 얻을 수 있습니다.
Contentful은 간단하게 초기화됩니다.
var client = contentful.createClient({
space: ‘<your contentful space>’,
accessToken: ‘<your contentful access token>’,
});
Contentful 콘솔에서 공간과 액세스 토큰을 가져와야 합니다.
분할 초기화에도 키가 필요합니다.
<!-- wp:paragraph -->
<p>var factory = splitio({</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>core: {</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>authorizationKey: '<your split client sdk key>',</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>key: 'user_id' // unique identifier for your user</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>},</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>schedule: {</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>eventsPushRate: 5</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>}</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>});</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>var splitClient = factory.client();</p>
<!-- /wp:paragraph -->
권한 부여 키는 분할 기능 플래그 규칙 구성 화면의 구문 버튼을 사용하여 가장 쉽게 얻을 수 있습니다. 이 튜토리얼에서는 기능 플래그 생성 및 구성에 대해 자세히 다루지 않지만 코칭을 위해 항상 할 수 있습니다visit Split’s help pages.
위의 예에서 사용자의 실제 사용자 ID를 자리 표시자 'user_id'로 대체합니다.
factory.client()를 호출하면 Split이 기능 플래그 다운로드를 시작합니다.
나는 "그려!" 카우보이!
splitClient.on(splitClient.Event.SDK_READY, function() {
console.log('SDK_READY');
draw();
});
splitClient.on(splitClient.Event.SDK_UPDATE, function() {
console.log('SDK_UPDATE');
draw();
});
Contentful은 어린이와 성인의 두 저자 목록을 유지하고 있습니다. 먼저 Split은 getTreatment를 호출하여 사용자가 이 기능 플래그 'contentful_books'에서 "on"또는 "off"처리를 받는지 결정합니다. 기능 플래그는 하나를 제공하거나 무작위로 답변을 제공하도록 설정할 수 있습니다(아마도 A/B 테스트의 경우).
Split이 제공할 처리를 결정하면 if-then-else 문은 수행할 Contentful API 호출을 결정합니다. 한 호출은 아동 도서 작가를 끌어오고 다른 하나는 성인 도서 저자를 끌어옵니다.
끝에 있는 else 문은 제어 블록의 예입니다. 제어 블록을 구현하는 올바른 방법은 없습니다. Split에 도달할 수 없을 때의 기본 동작입니다. 이 경우 어린이 고딕 작가 목록을 전달합니다(Eddings는 자격이 없을 수 있지만 아이디어는 얻습니다).
목록을 어떻게 동적으로 업데이트합니까?
약간의 DOM 조작으로…
function drawBooks(list) {
let options = '<optgroup>';
for(const option of list) {
options += '<option>' + option + '</option>';
}
options += '</optgroup>';
분할 실행은 어떻게 A/B 테스트를 수행할 수 있습니까?
function clickRead() {
const e = document.getElementById('books');
const author = e.options[e.selectedIndex].text;
const properties = {
author: author
};
const result = splitClient.track('user', 'readClick', 0, properties);
console.log(result);
}
전체 예제에는 몇 가지 추가 속성 필드가 있습니다. 단순화를 위해 이 예제에서는 작성자 속성만 남겼습니다.
읽기 버튼을 클릭하면 이 클릭 핸들러가 선택한 작성자의 이름을 포함하는 속성을 생성합니다. 그런 다음 속성은 Split 클라우드에 대한 추적 호출을 통해 전송됩니다. Split SDK는 이벤트 버퍼링 및 전송을 처리합니다.
Split은 사용자가 보고 있는 작성자를 알고 있습니다(draw()에서 getTreatment가 호출될 때 생성된 Split 인상 사용). 어린이 대 성인 저자의 클릭 수를 집계하고 저자에 대한 집계를 개별적으로 생성할 수 있습니다.
아래 차트에서 아동 작가의 클릭 수와 성인 작가의 클릭 수를 비교했습니다. 초기 갭은 좁은 여백이 됩니다. 이 경우 Split은 통계적으로 유의미한 차이를 찾지 못할 것입니다. 어린이 고딕 작가를 비교했다면 어떨까요? A/B/C 테스트를 위한 작업처럼 들립니다!
Reference
이 문제에 관하여(Contentful과 함께 Split을 사용하는 가장 좋은 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/split/the-best-ways-to-use-split-with-contentful-5f8e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)