먼저 플레이스먼트 이름과 함께 TJPlacement 클래스의 인스턴스를 생성합니다. 플레이스먼트 이름은 반드시 Tapjoy 대시보드에 등록한 플레이스먼트 이름과 정확히 일치해야 합니다. 추가로 플레이스먼트에 대한 콜백을 수신할 수 있도록 delegate method 를 구현합니다. (아래 설명 참고)
TJPlacement placement = await TJPlacement.getPlacement();
마지막으로 콘텐츠 요청 API 를 호출합니다.
placement.requestContent();
**참고: 콘텐츠 요청시 Tapjoy Connect 요청이 정상적으로 완료되었는지 확인합니다. onConnectSuccess 콜백을 통해 커넥션 성공 여부를 확인할 수 있습니다.
사용자의 UX 를 향상시키기 위해 콘텐츠 프리로딩 방식을 사용할 것을 권장합니다. 예를 들어 만약 메인메뉴에 플레이스먼트 버튼이 있다면, 앱 실행 직후 Tapjoy connect 가 성공한 후 미리 requestContent api 를 통해 콘텐츠를 미리 받아 지연 없이 해당 콘텐츠를 즉시 노출할 수 있습니다. 이러한 차이가 사용자의 이탈을 막고 광고 수익 증대에 기여할 수 있습니다.
콘텐츠 요청 및 노출에 대한 상태 피드백을 받으려면 아래와 같이 콜백을 구현합니다.
TJPlacement placement = await TJPlacement.getPlacement(placementName: 'placementName',
onRequestSuccess: (placement) {},
onRequestFailure: (placement, error) {},
onContentReady: (placement) {},
onContentShow: (placement) {},
onContentDismiss: (placement) {}
);
플레이스먼트를 보여주기 위해서는 placement.showContent();
호출합니다.
showContent() 를 호출하기 전 콘텐츠가 준비되었는지 확인합니다.
if (await placement.isContentReady()) {
placement.showContent();
}
참고: 비디오 콘텐츠를 보여주기 전 앱 자체의 오디오를 음소거 할 것을 권장합니다. 그렇지 않을 경우 비디오 콘텐츠의 오디오와 앱 자체의 오디오가 충돌할 수 있습니다.
사용자에게 콘텐츠를 보여주기 전 onContentReady
콜백을 받고 이를 보여주는 것을 권장합니다. 이 방법으로 사용자에게 지연 없이 콘텐츠를 보여줄 수 있습니다. 다른 방식으로 위의 예제와 같이 placement.isContentReady() 가 true 인 경우 showContent
를 호출하여 콘텐츠를 보여주는 방식이 있습니다
참고: 플레이스먼트의 정상적인 동작을 위해 반드시 Tapjoy connect API를 먼저 호출하여 커넥션이 성공한 것을 확인 후 플레이스먼트 객체를 생성하는 것을 권장합니다.
시용자들에게 콘텐츠의 노출이 완료되었다면 placement.requestContent()
를 호출하여 콘텐츠를 다시 받아와야 합니다. 콘텐츠 재 요청이 이루어지지 않은 상태에서 placement.showContent()
가 다시 호출되면 콘텐츠가 표시되지 않습니다.
선택사항으로 각 플레이스먼트 별로 진입 경로를 설정할 수 있습니다. 이를 위해 아래의 미리 설정된 값을 통해 설정할 수 있습니다.
TJEntryPoint.entryPointUnknown;
TJEntryPoint.entryPointOther
TJEntryPoint.entryPointMainMenu
TJEntryPoint.entryPointHUD
TJEntryPoint.entryPointExit
TJEntryPoint.entryPointFail
TJEntryPoint.entryPointComplete
TJEntryPoint.entryPointInbox
TJEntryPoint.entryPointInit
TJEntryPoint.entryPointStore
진입 경로는 플레이스먼트 오브젝트 생성 후, 콘텐츠를 요청하기 전에 호출합니다.
TJPlacement placement = await TJPlacement.getPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.entryPointMainMenu);
placement.requestContent();