글

라벨이 AD Fresca인 게시물 표시

cocos2d-x iOS용 AD fresca 연동시 orientation 문제 해결하기

이미지
  ADFresca iOS버전을 cocos2d-x에 연동 했을 때 스샷과 같이 Simulator에서 orientation문제가 발생했었죠.  ADFresca에 문의결과 해결할 수 있었는데, 개발중인 App의 Info.plist에 아래와 같이 Add Row 해주시면 일단 됩니다. Key - Initial interface orientation String Value - Landscape (left home button) 또는 Landscape (right home button)  잘 되네요!? 근데 위에서 일단이라고 한 건 Simulator에서만 잘 되기때문이었습니다. 요즘 개발 일정 막바지라 Device로 테스트를 하고 있는데 iPhone 4에서는 처음과 동일한 문제가 발생을 하더군요.  제차문의결과 Info.plist 에 이번에는 Supported interface orientations 설정에 Landscape (right home button) 값이 추가되어있는지 확인하라고 해서 해봤지만 해결이 안되더군요. 한가지 해결방법이 더 있었는데, iOS Device들이 정확히 수평으로 놓여져 있는데도 세로모드로 인식되기도 한다는 피드백을 받으신 적이 있어서 이를 해결하기 위해 ADFresca에서 관리자 사이트에서 웹상의 설정변경으로 App의 Orientation을 Fix 할 수 있다고 하더군요.  먼저 ADFresca admin 사이트에 로그인 을 한 후 Orientation을 Fix할 App의 오른쪽에 View를 클릭합니다.  App 정보 페이지에서 상단 메뉴중 AD Display를 클릭합니다.  AD Display화면에서 Display Logic의 Set을 클릭합니다.  그러면 팝업창이 뜨는데 Orientation -> Fix AD Display Orientation에서 원하시는 설정으로 변경 ...

cocos2d-x JNI작업시 Activity UI Thread와 GLSurfaceView의 GLThread간 ThreadSafe하게 메세지 통신하기

지난번에 AD fresca Android용을 cocos2d-x에 붙이는 것 과  cocos2d-x에 JNI를 사용하는 간단한 샘플 을 정리 했었습니다. 이제는 샘플 단계를 넘어 현재 작업중인 C++ Framework에 통합을 해야했는데 아래와 같은 문제가 저를 괴롭혔습니다. Fatal signal 11 (SIGSEGV) at 0x00000232 (code=1) FATAL EXCEPTION: GLThread 593 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() threadid=13: thread exiting with uncaught exception (group=0x40a511f8) FATAL EXCEPTION: GLThread 461 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.  at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4039)  at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:709)  at android.view.View.requestLayout(View.java:12675)  at android.view.View.requestLayout(View.java:12675)  at android.view.View.requestLayout(View.java:12675)  at android.view.ViewGroup.addView(ViewGroup.java:3206)  at android.view.ViewGroup.ad...

AD fresca에 광고 노출 할 App 등록, API key 발급받기

이미지
 먼저  관리자용 AD fresca 웹페이지 에 로그인을 합니다. 로그인 후 대쉬보드에서 Add App나 Click here to add a new app.을 클릭합니다.  Select Status에서 기존에 App이 이미 App Store등에 있다면 This app is launched and is available on App Store.를 선택하시고 아직 런칭되지 않은 App이라면 This App is not launched yet을 선택합니다. 여기서는 후자를 선택합니다. Name에는 필수로 App의 이름을 입력하시고 Description에는 설명을 기입합니다. App Store에 반영되는 것이 아닌 관리차원에서 기입하는 것입니다. App Store는 등록예정에 있거나 등록되어 있는 App Store를 선택합니다. 마지막으로 Create App을 클릭합니다. 신규 App을 AD fresca에 등록했습니다. API key도 발급이 되었습니다.해당 키로  iOS 나  Android 에 작업을 진행하면 됩니다.

cocos2d-x Android용 AD fresca 붙여보자

이미지
AD fresca Android SDK 다운  받아 적절한 위치에 압축을 해제합니다. 저는 진행 프로젝트의 proj.android에 풀었습니다. Project -> Properties -> Java Build Path의 Libraries탭에서 Add External JARs를 선택후 AdFresca.jar 파일을 선택합니다 이제 Permission을 추가해야합니다. Uses Permission 추가 는 링크를 참고하시어 ACCESS_NETWORK_STATE와 INTERNET 2개의 Permission을 추가해줍니다. AD fresca에서 사용자의 네트워크 접속 상태, 기기ID를 수집해 광고 매칭에 사용한다고 하네요. 수집된 데이터는 암호화 처리되어 전송되고 광고 매칭 이외에는 사용되지 않는다고 합니다. 준비과정이 끝났습니다. 이제 java 소스 파일을 수정해야 합니다. src안에 진행 중인 프로젝트의 java 소스파일을 더블클릭해 엽니다. //먼저 adfresca를 import해주고 import com.adfresca.ads.*; public class projectxxx extends Cocos2dxActivity{ private Cocos2dxGLSurfaceView mGLView; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); if (detectOpenGLES20()) { ..... ..... // Set framelayout as the content view setContentView(framelayout); //AdFrescaView 객체를 생성합니다. YOUR_APIKEY는 해당 App용으로 발급받은 키 AdFrescaView adView = AdFrescaView.sharedAdView(this, "YOUR_APIKEY"); ...

cocos2d-x iOS용 AD fresca 붙여보자

이미지
AD fresca는 iOS와 Android 둘다 지원하고 있습니다. 먼저 cocos2d-x에 iOS용 AD fresca를 붙이는 것을 정리해봅니다. iOS AD fresca SDK Download 먼저 iOS용 AD fresca SDK를 다운받습니다. 아직 압축해서 1메가도 안되는 무지 작은 용량이네요. 적당한 위치에 압축을 풀어 역시나 정당한 위치에 SDK를 옮겨줍니다. 저는 일단 진행중인 프로젝트의 cocos2d-x ios xcode template로 만들면 자동으로 생성되는 libs폴더에 넣었습니다. 이제 SDK폴더를 진행중인 프로젝트의 Frameworks 폴더에 드래그&드롭 시켜서 추가시켜줍니다. Project -> TARGETS -> Build Phases -> Link Binary With Libraries에서 +를 눌러 SystemConfiguration.framework 검색해 찾아 추가해줍니다. 마지막으로 TARGETS -> Build Settings -> Linking -> Other Linker Flags에 -ObjC를 추가해줍니다. 만약 -ObjC를 넣지 않으시면 추후 런타임시 AdFrescaView관련 소스 부분에서 위와 같이 문제가 발생할 수 있습니다. 준비작업은 이것으로 끝입니다. 이제 코딩작업을 진행합니다. 간단하게 AppController.mm에 작업해보겠습니다. ///< SDK h를 import해줍니다. #import <AdFresca/AdFrescaView.h> ///< AD FrescaView를 초기화 합니다. - ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {     [ AdFrescaView star...

AD Fresca? App개발자들끼리 누이좋고 매부좋게 해주는 국산 AD 플랫폼

이미지
만든 App을 광고하거나 홍보를 하려면 어떻게 해야할까요? 예전 같으면 피처폰 시절부터 있던 자뻑(자신, 만든회사에서 알바나 아는 모든 지인들을 동원해 직접 다운로드를 많이해 다운로드수를 늘리는 것)을 하던가 돈을 들여 포털 배너 광고를 하던가 했겠죠? 아니면 동영상을 만들어 올리던가 기사를 배포할 수도 있겠구요. 먼저 나열했던 것들은 뭐랄까 아날로그적 접근 방식이라고 개인적으로 생각이 되네요. 구시대적이라는 것이죠. 뭐 그렇다고 그게 잘 못되었다 라는건 아니죠. 하지만, 요즘은 어떤가요? 해외에는 Facebook, 국내에서는 카카오톡 등의 엄청난 유저풀을 자랑하고 있는 이용자기반 플랫폼들이 이미 준비되어있죠. 특히나 요즘은 카카오톡 게임 플랫폼의 힘을 직감할 수 있습니다. 그외에도 성격은 조금 다르지만 iOS의 Game Center, GREE, Scoreloop등도 있고 아니면 컴투스 Hub나 게임빌의 LIVE, CIRCLE와 같이 각 회사 자체개발 플랫폼이 있을 수 있겠죠. 아날로그적 접근 방식이었던 발로 뛰어야만 하는 광고 전략에서 벗어나 이런 소셜 네트워크의 이용자기반 플랫폼의 장점은 유저들에 의해 자동으로 광고 버프를 받을 수 있다는게 장점이 아닐까 생각합니다. 이용자들이 알아서 자신의 게임 진행상황을 자랑? 하기위해 서로 공유하다보면 소셜 네트워크의 장점을 활용해 게임은 자동으로 노출이 기하급수적으로 늘어나게 되는거죠. 여기서 물론 게임 자체도 재미가 있고 스마트인 만큼 짧은 시간에 쉽게 즐길 수 있게 접근성과 조작감도 좋아야 한다는 전제가 있겠죠. 꼭 이렇게 해야지만 성공하는 게임은 아니니 이것은 여기서 그만 논외로 하구요. 자 이제 이번 포스팅의 본론으로 들어가보면, 이와 관련된 플랫폼중에 하나가 AD fresca입니다. 본론에 들어가기에 앞서 전 절대 AD fresca직원이 아닙니다. 알아보니 제가 지금 속한 회사가 AD fresca와 협력업체네요. 그래서 AD fresca관련 작업을 제가...