cocos2d-x iOS Tapjoy SDK 각종 광고 및 탭조이 마켓플레이스 연동
탭조이 Connect까지 연동을 했다면 이제 탭조이에서 지원하는 여러 광고기능을 연동해야합니다. 풀스크린 광고, 배너 광고, 탭조이 마켓플레이스, 동영상 광고가 있습니다.
먼저 Tapjoy.h 와 Tapjoy.mm 을 추가하시고 아래 나오는 소스를 확인하시면 되겠습니다. 샘플 수준이라 전부 + 함수로 만들었네요. 설명은 간단하게 주석으로 대체하겠습니다.
///< 기본적인 Tapjoy.h, mm 파일 내용. 추가 사항은 아래에서
///< AppController.mm
위에 것은 배너광고 첫 화면이고 이것을 터치하면 밑에 처럼 바뀌네요. 그런데 사라지진 않습니다.
[TapjoyConnect getDisplayAdView];
이게 있던데 이걸 사용해서 얻어와서 superview로부터 없애줘야 하지 않을까 생각되네요.
///< AppController.mm
///< h
탭조이 4가지 기능을 연동해봤습니다. 이제 빌드 후 실행해보시면 아마 제대로 작동을 안할텐데요, 테스트 하려면 탭조이 대쉬보드에 Test devices의 UDID를 입력해줘야 합니다. 이는 탭조이 Currency 관련 연동을 정리하면서 다른 포스팅에서 간단히 정리해보도록 하겠습니다.
먼저 Tapjoy.h 와 Tapjoy.mm 을 추가하시고 아래 나오는 소스를 확인하시면 되겠습니다. 샘플 수준이라 전부 + 함수로 만들었네요. 설명은 간단하게 주석으로 대체하겠습니다.
///< 기본적인 Tapjoy.h, mm 파일 내용. 추가 사항은 아래에서
#import "TapjoyConnect.h"
@interface Tapjoy : NSObject<
///< 배너 광고에 쓰이는 딜리게이트
TJCAdDelegate,
///< 동영상 캐쉬에 쓰이는 딜리게이트
TJCVideoAdDelegate
>
@end
///< mm
///< mm
#import "Tapjoy.h"
#import "EAGLView.h"
@implementation Tapjoy
@end
- 피처드 앱(Fullscreen Ads)
///< h 에 추가
+ (void) showFullScreenAd;
+ (void) getFullScreenAd:(NSNotification*)notifyObj;
+ (void) fullscreenAdClosed:(NSNotification*)notifyObj;
///< mm
+ (void) showFullScreenAd
{
///< 탭조이 서버에 풀스크린 광고 요청
[TapjoyConnect getFullScreenAd];
///< FullScreen광고 통지
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(getFullScreenAd:)
name:TJC_FULL_SCREEN_AD_RESPONSE_NOTIFICATION
object:nil];
///< 풀스크린 광고창 닫힘 통지
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(fullscreenAdClosed:)
name:TJC_VIEW_CLOSED_NOTIFICATION
object:nil];
}
+ (void) getFullScreenAd:(NSNotification*)notifyObj
{
///< 풀스크린 광고 보기
UIViewController* pRootViewController = (UIViewController*)[[[[[EAGLView sharedEGLView] window] subviews]objectAtIndex:0] nextResponder];
[TapjoyConnect showFullScreenAdWithViewController:pRootViewController];
}
+ (void) fullscreenAdClosed:(NSNotification*)notifyObj
{
NSLog(@"Fullscreen Ad closed");
- 배너 광고(Display Ads)
///< h에 추가
+ (void) showDisplayAd;
///< mm
+ (void) showDisplayAd
{
[TapjoyConnect getDisplayAdWithDelegate:self];
}
///< 탭조이로부터 광고를 받는 함수. 인자로 넘어온 걸 붙여준다.
+ (void) didReceiveAd:(TJCAdView *)adView
{
NSLog(@"Tapjoy Display Ad Received");
UIView* pUIView = (UIView*)adView;
///< position을 바꾸려면 frame 프로퍼티를 변경하면된다.
//[pUIView frame] = CGRectMake(0, 50, 640, 100);
[[EAGLView sharedEGLView] addSubview: pUIView];
}
+ (void) didFailWithMessage:(NSString *)msg
{
NSLog(@"No Tapjoy Display Ads available");
}
///< 설정할 광고 사이즈를 리턴한다.
///< TapjoyConnect getDisplayAdWithDelegate 해주면 SDK 내부에서 호출된다
+ (NSString*) adContentSize
{
///< 탭조이가 지원하는 사이즈들
return TJC_DISPLAY_AD_SIZE_640X100;
//TJC_DISPLAY_AD_SIZE_768X90
//TJC_DISPLAY_AD_SIZE_320X50;
}
///< 탭조이로부터 결과(didReceiveAd)가 온 후 SDK 내부에서 호출 된다.
+ (BOOL) shouldRefreshAd
{
return YES;
}
///< AppController.mm
///< 배너 광고 보기
[Tapjoy showDisplayAd];
[TapjoyConnect getDisplayAdView];
이게 있던데 이걸 사용해서 얻어와서 superview로부터 없애줘야 하지 않을까 생각되네요.
- 탭조이 마켓플레이스(Offerwall)
///< h
+ (void) showOfferwall;
///< mm
///< 탭조이 마켓플레이스 보기. TJC_VIEW_CLOSED_NOTIFICATION 처리해서 창이 닫힌 것 확인 가능
+ (void) showOfferwall
{
UIViewController* pRootViewController = (UIViewController*)[[[[[EAGLView sharedEGLView] window] subviews]objectAtIndex:0] nextResponder];
[TapjoyConnect showOffersWithViewController:pRootViewController];
}
///< AppController.mm
///< 탭조이 마켓플레이스 보기
[Tapjoy showOfferwall];
- 동영상 광고(Video Ads)
///< h
+ (void) enableCacheVideo;
+ (void) setCacheCount:(int) count;
///< mm
///< 비디오 재생을 캐쉬로 하는것을 활성화한다.
+ (void) enableCacheVideo
{
[TapjoyConnect cacheVideosWithDelegate:self];
}
///< 기본적으로 5개의 동영상이 디바이스에 캐쉬되어 진다. 갯수 설정 가능
+ (void) setCacheCount:(int) count
{
[TapjoyConnect setVideoCacheCount:count];
}
///< 영상이 재생 시작하면 호출되어지는 함수. 개발중인 App의 애니메이션이나 사운드등을 pause 처리 해주면 될 듯.
+ (void) videoAdBegan
{
NSLog(@"Video Ad Began Playing");
}
///< 영상이 끝나고 창이 닫힐 때 호출되어지는 함수. App의 애니메이션이나 사운드등을 resume 처리 해주면 될 듯.
+ (void) videoAdClosed
{
NSLog(@"Video Ad View Closed");
}
+ (void) videoAdError
{
NSLog(@"Video Ad Error");
}
탭조이 4가지 기능을 연동해봤습니다. 이제 빌드 후 실행해보시면 아마 제대로 작동을 안할텐데요, 테스트 하려면 탭조이 대쉬보드에 Test devices의 UDID를 입력해줘야 합니다. 이는 탭조이 Currency 관련 연동을 정리하면서 다른 포스팅에서 간단히 정리해보도록 하겠습니다.
댓글
댓글 쓰기