์๋ ์ฐ๋
SDK๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๊ณ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ์ฌ ์คํผ์ ๊ธฐ๋ฅ์ ํ์ฑํํ๋ฉด ํญ์กฐ์ด ์คํผ์์ iOS ์ฑ์ ์ฐ๋ํ ์ ์์ต๋๋ค.
์ฝ๋ ์๊ฐ 2๋ถ์ต๊ทผ ์
๋ฐ์ดํธ: 4๋ฌ ์
SDK ๋ค์ด๋ก๋
์ฑ๊ณผ ํตํฉํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ iOS SDK๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์
๋๋ค.
ํ๋ก์ ํธ์ SDK ์ถ๊ฐ
SDK ์์ถ์ ํด์ ํ๋ฉด ๋ฌธ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ TapjoyEasyApp์ ์ฐพ์ ์ ์์ต๋๋ค.
โTapjoyEasyAppโ์ ํญ์กฐ์ด ์ฐ๋์ ๋ณด์ฌ ์ฃผ๋ ์ํ ํ๋ก์ ํธ์
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ํญ์กฐ์ด๋ฅผ ์ฐ๋ํ๋ ๋ฐ ์ด ํ๋ก์ ํธ๊ฐ ํ์ํ ๊ฒ์ ์๋์ง๋ง ์ ์ฉํ ์ฐธ๊ณ ์๋ฃ๊ฐ ๋ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ํ์ผ์ ์ถ๊ฐํ๋ ค๋ฉด โFileโ ๋ฐ โAdd files to Projectโ๋ฅผ ์ ํํฉ๋๋ค. 'Libraries' ํด๋๋ก ์ด๋ํ์ฌ ๋ฅผ ์ ํํฉ๋๋ค. ๋ค์ด์ผ๋ก๊ทธ์์ 'copy items if needed'๋ฅผ ์ ํํ ๋ค์ 'Add'๋ฅผ ํด๋ฆญํฉ๋๋ค.
Tapjoy.xcframework๊ทธ๋ฐ ๋ค์ ๋น๋ ์ค์ ์์ ๋ก ์ด๋ํ์ฌ ํ๋๊ทธ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
Other Linker Flags (OTHER_LDFLAGS)-ObjCํ์ ํ๋ ์์ํฌ ์ถ๊ฐ
๋ค์ ๋จ๊ณ๋ ํ๋ก์ ํธ์ ํ์ํ ํ๋ ์์ํฌ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์
๋๋ค. ์ด๋ฅผ ์ํด ํ๋ก์ ํธ ํ์๊ธฐ์์ ํ๋ก์ ํธ ์์ด์ฝ์ ํด๋ฆญํ ํ โBuild Phasesโ๋ฅผ ์ ํํ๊ณ , โLink Binary With Librariesโ๋ฅผ ํ์ฅํ ๋ค์ ํด๋น ์น์
์ ์ผ์ชฝ ํ๋จ์ ์๋ โ+โ ๊ธฐํธ๋ฅผ ํด๋ฆญํฉ๋๋ค. ํ๋ ์์ํฌ๋ ์ํ๋ฒณ์์ผ๋ก ๋์ด๋๋ฉฐ, CMD ํค๋ฅผ ๋๋ฅธ ์ํ์์ ์ฌ๋ฌ ํ๋ ์์ํฌ๋ฅผ ์ ํํ์ฌ ํ ๋ฒ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
ํ๋ก์ ํธ์ ๋ค์ ํ๋ ์์ํฌ๋ฅผ ๋ชจ๋ ์ถ๊ฐํฉ๋๋ค.
- AdSupport
- CFNetwork
- CoreTelephony
- StoreKit
- SystemConfiguration
- UIKit
- WebKit
- libc++
- libz
์ฑ ํธ๋ํน ํฌ๋ช ์ฑ ์น์ธ ์์ฒญ
์ ํ๋ฆฌ์ผ์ด์
์ด ์ฑ ํธ๋ํน ํฌ๋ช
์ฑ์ ์ฌ์ฉํ๋๋ก ์ค๊ณ๋ ๊ฒฝ์ฐ IDFA์ ๋ํ ์ก์ธ์ค ๊ถํ์ ์์ฒญํ๋ ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ํ์ํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์์ IDFA ์ฌ์ฉ ๊ถํ์ ์ค๋ช
ํ๋ ์ปค์คํ
๋ฉ์์ง์ ํจ๊ป ํค๋ฅผ ํฌํจํ์ฌ Info.plist๋ฅผ ์
๋ฐ์ดํธํฉ๋๋ค.
NSUserTrackingUsageDescription์์:
<key>NSUserTrackingUsageDescription</key><string>์ด๋ ๊ฒ ํ๋ฉด ๊ฐ์ธํ๋ ๊ด๊ณ ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.</string>

๊ทธ๋ฌ๋ฉด ์๋ ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด ์ฌ์ฉ ์ค๋ช
ํ
์คํธ๊ฐ ์ฑ ํธ๋ํน ํฌ๋ช
์ฑ ๊ถํ ๋ค์ด์ผ๋ก๊ทธ์ ์ผ๋ถ๋ก ํ์๋ฉ๋๋ค.

ํ๋ก์ ํธ์ ํ๋ ์์ํฌ๋ฅผ ์ถ๊ฐํ ๋ค์ ๋ฅผ ํธ์ถํ์ฌ ์ธ์ฆ ํ๋กฌํํธ๋ฅผ ํ์ํฉ๋๋ค. ๋ฒ ์คํธ ํ๋ํฐ์ค๋ก ํญ์กฐ์ด์ ์ฐ๊ฒฐํ๊ธฐ ์ ์ ์๋ฃ ํธ๋ค๋ฌ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ชจ๋ ์์ฒญ์์ ์์ IDFA ๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
AppTrackingTransparencyrequestTrackingAuthorizationWithCompletionHandler:requestTrackingAuthorization#import <apptrackingtransparency apptrackingtransparency.h>... - (void)fetchTrackingAuthorization { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { // Call the Offerwall connect function here. }]; } ```</Tab><Tab title="Swift">```swiftimport AppTrackingTransparency...func fetchTrackingAuthorization() { ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in // Call the Offerwall connect function here. })}
ํญ์กฐ์ด์ ์ฐ๊ฒฐ
๋ค์ ๋จ๊ณ๋ก, ์ ํ๋ฆฌ์ผ์ด์
์ ํญ์กฐ์ด ์ฐ๊ฒฐ ์ฝ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด ์ฝ๋์ ํค ๋นํธ๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ์คํผ์ SDK๋ฅผ โํ์ฑํโํฉ๋๋ค.
ํญ์กฐ์ด ์ฐ๊ฒฐ ํธ์ถ์ ๊ตฌํํ๋ ค๋ฉด ์ฐ๋ํ๋ ค๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํผ์ SDK ํค๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ด ํค๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ํญ์กฐ์ด ๋์๋ณด๋์์ ์ ํ๋ฆฌ์ผ์ด์
์ผ๋ก ์ด๋ํ์ฌ ์๋จ ๋ด๋น๊ฒ์ด์
๋ฐ์์ โSettingsโ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. โApp Settingsโ๋ก ์ด๋ํ๋ฉด ํ์ด์งํ๋จ์
SDK ํค๊ฐ ํ์๋ฉ๋๋ค.
์ด์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ฑ ๋ธ๋ฆฌ๊ฒ์ดํธ ํ์ผ์ ๋ฉ์๋์ ๋ค์ ์ฝ๋ ์ค๋ํ์ ํฌํจํฉ๋๋ค.
application:didFinishLaunchingWithOptions- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectSuccess:) name:TJC_CONNECT_SUCCESS object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectFail:) name:TJC_CONNECT_FAILED object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectWarning:) name:TJC_CONNECT_WARNING object:nil]; //Turn on Tapjoy debug mode [Tapjoy setLoggingLevel:TJLoggerLevelDebug]; //Only enable debug mode for development. ์ฑ์ ํผ๋ธ๋ฆฌ์ฑํ๊ธฐ ์ ์ ๋นํ์ฑํํฉ๋๋ค. //If you are using Self-Managed currency, you need to set a user ID using the connect flags. NSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"<USER_ID_HERE>"}; [Tapjoy connect:@"SDK_KEY_GOES_HERE" options:connectFlags]; //If you are not using connect flags, you can omit them [Tapjoy connect:@"SDK_KEY_GOES_HERE"]; return YES;}
์ฐ๊ฒฐ ํธ์ถ ์ ์ ๋ฉ์๋๋ฅผ ์ ์ํด์ผ ํฉ๋๋ค. ์ฐ๊ฒฐ ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ID๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด AppLaunch ํ๋ ์ด์ค๋จผํธ์์๋ ํธ์ถ ์ ์ ์ ํ ์ฌ์ฉ์ ID๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค.
setLoggingLevel์์ธํ ๋ด์ฉ์ Unity SDK ๋ ํผ๋ฐ์ค์์ ํ์ธํ ์ ์์ต๋๋ค. Objective-C์ C++.
์ฐ๊ฒฐ ์๋ฆผ
ํญ์กฐ์ด๊ฐ ์ฐ๊ฒฐ์ ์๋ฃํ๊ฑฐ๋, ๊ฒฝ๊ณ ๋ก ์ฐ๊ฒฐ๋์๊ฑฐ๋, ์ฐ๊ฒฐ์ ์คํจํ์ ๋ ์๋ฆผ์ ๋ฐ์ผ๋ ค๋ฉด ์ด์ ์ ์ ํ์๋ก ์ค์ ํ ๋ฉ์๋๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ฐ๊ฒฐ ์ค์ ๋ธ๋กํน ์ด์ธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด(๋๋ ์ดํ์๋) ์ฝ๋ฐฑ์ด ์๋ํฉ๋๋ค. ํ์ฌ ์ด ๊ธฐ๋ฅ์ ConnectFlags์์ ์ ์ก๋ ๊ฒฝ์ฐ์๋ง UserId ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๊ฐ์งํฉ๋๋ค.
connectSuccessconnectWarning- (void)tjcConnectSuccess:(NSNotification *)notifyObj { NSLog(@"Tapjoy connect succeeded");}- (void)tjcConnectFail:(NSNotification *)notifyObj { NSLog(@"Tapjoy connect failed");}- (void)tjcConnectWarning:(NSNotification *)notifyObj { NSError *error = notifyObj.userInfo[TJC_CONNECT_USER_INFO_ERROR]; NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey];}
์ด์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ปดํ์ผํ๊ณ ์คํํฉ๋๋ค. ๋ชจ๋ ์์
์ ์ฌ๋ฐ๋ฅด๊ฒ ์ํํ๋ค๋ฉด ์ฝ์ ๋ก๊ทธ์ ๋ค์๊ณผ ์ ์ฌํ ๋ด์ฉ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
2020-01-29 16:01:55.422 Storyteller Roller[25869:1433019] [TJLog level: 4] Connect success with type:0
ํญ์กฐ์ด ๋์๋ณด๋์ ์๋จ ๋ด๋น๊ฒ์ด์
๋ฐ์์ โAnalyticsโ๋ฅผ ํด๋ฆญํ ๋ค์, ์ผ์ชฝ ๋ด๋น๊ฒ์ด์
๋ฐ์์ โReal-timeโ ํญ์ ํด๋ฆญํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์คํ ์งํ์ ์ ํ๋ฆฌ์ผ์ด์
์ ํ๋์ด ํ์๋ฉ๋๋ค.