기술 자료

지원

SDK

탭조이의 iOS SDK 참조 문서를 살펴보고 플레이스먼트 요청, 콜백 처리, 광고 콘텐츠 표시 및 핵심 SDK 기능 통합 방법을 알아봅니다.
읽는 시간 2분최근 업데이트: 2일 전

플레이스먼트 요청

먼저 파일 상단에서
TJPlacement.h
를 임포트합니다.
#import <tapjoy tjplacement.h>
그런 다음 TJPlacement 클래스의 인스턴스를 생성하고 플레이스먼트 이름으로 초기화합니다. 코드의 플레이스먼트 이름 문자열이 대시보드의 플레이스먼트 이름과 정확히 일치해야 합니다. 또한 콜백을 수신하기 위한 델리게이트를 구현할 수 있습니다(아래 설명 참고).
TJPlacement *p = [TJPlacement placementWithName:@"Main Menu" delegate:self];
마지막으로, 콘텐츠를 요청합니다.
[p requestContent];
콘텐츠를 요청하기 전에 탭조이 연결 호출이 성공해야 합니다. TJC_CONNECT_SUCCESS 알림을 확인하기 전에 요청을 보내지 마십시오.

콘텐츠 사전 캐싱

최적의 사용자 경험을 제공하려면 사용자에게 해당 콘텐츠가 표시되기 전에 콘텐츠를 요청합니다. 예를 들어 플레이스먼트가 메인 메뉴의 버튼이면 탭조이 연결 호출 성공 직후 애플리케이션이 시작될 때 해당 콘텐츠를 요청할 수 있습니다. 마지막 순간까지 대기하여 콘텐츠를 요청하면 사용자가 콘텐츠가 로드될 때까지 기다리고 로딩 스피너를 보게 될 수 있습니다. 이렇게 하면 광고에서 사용자가 광고와 상호 작용할 가능성이 감소하므로 사용자가 수익을 창출할 가능성 역시 줄어듭니다.

TJPlacement 콜백

콘텐츠 요청 상태에 대한 피드백을 받으려면 다음 TJPlacementDelegate 메서드를 구현합니다.
- (void)requestDidSucceed:(TJPlacement*)placement{} // Called when the content request returns from the Offerwall servers. Does not necessarily mean that content is available.- (void)requestDidFail:(TJPlacement*)placement error:(NSError*)error{}- (void)contentIsReady:(TJPlacement*)placement{} //This is called when the content is actually available to display.- (void)contentDidAppear:(TJPlacement*)placement{}- (void)contentDidDisappear:(TJPlacement*)placement{}

플레이스먼트 표시

콘텐츠를 실제로 표시하려면 show를 호출합니다.
[p showContentWithViewController: nil];
showContentWithViewController
에 'nil'을 전달하면 오퍼월 SDK가 광고 표시를 처리하기 위해 자체 보기 컨트롤러를 생성합니다. 대부분의 경우 이 방법이 가장 안전한 선택입니다. 복잡한 보기 계층 구조를 가지고 있고 어떤 이유로든 직접 표시를 관리하고 싶다면, 선택적으로
showContentWithViewController
에 자체 보기 컨트롤러를 전달할 수 있습니다. 이 메서드에 전달되는 ViewController는 최상위 보기여야 하며, 다른 보기에 의해 가려지지 않아야 합니다. 또한 탭조이 콘텐츠가 해제되기 전까지는 다른 보기가 이 보기 위에 배치되지 않도록 해야 합니다.
show를 호출하기 전에 콘텐츠가 준비되었는지 확인합니다.
if (p.isContentReady) { [p showContentWithViewController: nil];} else { //handle situation where there is no content to show, or it has not yet downloaded.}
동영상이 포함될 수 있는 플레이스먼트의 콘텐츠를 표시하기 전에 앱 오디오를 음소거로 설정하는 것이 좋습니다. 그렇지 않으면 동영상 오디오와 앱 오디오가 충돌할 수 있습니다. 사용자에게 콘텐츠를 표시하기 전에 contentIsReady 델리게이트가 호출될 때까지 기다리는 것이 종종 좋은 방법입니다. 이렇게 하면 콘텐츠가 실제로 디바이스에 있는지 확인할 수 있으며 사용자에게 지연 없이 표시할 수 있습니다. 다른 동등한 방법은 위의 예시와 같이
p.isContentReady
가 true인지 확인하는 것입니다.

콘텐츠 다시 요청

플레이스먼트에서 사용자에게 콘텐츠를 성공적으로 표시할 경우 다른 콘텐츠 단위로 플레이스먼트를 ‘재로드’하려면 콘텐츠를 다시 요청해야 합니다(예:
[p requestContent];
다시 호출).
[p showContentWithViewController: self];
를 다시 호출할 수 없습니다. 콘텐츠를 요청하기 전에 콘텐츠를 표시하려고 하면 콘텐츠가 표시되지 않습니다.

탭조이 콘텐츠 액션 요청 처리

보상과 IAP Promo 등의 일부 탭조이 콘텐츠 유형에서는 해당 콘텐츠 단위가 전달한 파라미터에 따라 코드를 통해 조치를 취해야 합니다. 예를 들어 보상 콘텐츠 단위는 사용자에게 지정할 항목 이름(문자열)과 수량(정수)을 지정합니다. 애플리케이션에서는 보상을 반영하도록 사용자의 인벤토리를 실제로 조정해야 합니다. 다음 TJActionRequestDelegate 메서드가 호출되고 콘텐츠 단위에서 적절한 정보로 전달됩니다.
- (void)placement:(TJPlacement*)placement didRequestPurchase:(TJActionRequest*)request productId:(NSString*)productId { //called when user clicks the product link in IAP promotion content //implement code here to trigger IAP purchase flow for item here}- (void)placement:(TJPlacement*)placement didRequestReward:(TJActionRequest*)request itemId:(NSString*)itemId quantity:(int)quantity { //called when the reward content is closed by the user //implement code here to give the player copies of item}

엔트리 포인트 설정

필요에 따라 각 플레이스먼트의 ‘엔트리 포인트’를 탭조이에 제공할 수 있습니다. 선택 가능한 다양한 프리셋 값은 다음과 같습니다.
TJEntryPointUnknown //Not set, but removes any value that was already setTJEntryPointOtherTJEntryPointMainMenuTJEntryPointHudTJEntryPointExitTJEntryPointFailTJEntryPointCompleteTJEntryPointInboxTJEntryPointInitialisationTJEntryPointStore
플레이스먼트 오브젝트를 생성한 후, 콘텐츠를 요청하기 전에 엔트리 포인트를 설정합니다.
TJPlacement *placement = [TJPlacement placementWithName:@"myPlacement" delegate:nil];[placement setEntryPoint:TJEntryPointMainMenu];[placement requestContent];

SDK • Unity Grow • Unity Docs