본문으로 건너뛰기

SDK 수동 초기화


정보

4.0.0 버전부터 Content Provider 를 활용한 자동 초기화를 지원합니다. 이하 내용은 앱 구동 초기에 자동 초기화를 원하지 않는 경우에 대한 가이드입니다.

광고를 로드하기 전, NAM SDK 초기화가 반드시 필요합니다.
초기화 과정을 통해 NAM 또는 Mediation 파트너 SDK 의 초기화를 미리 수행하게 됩니다.

이하 내용은 앱 구동 초기에 자동 초기화를 원하지 않는 경우에 대한 가이드입니다.

원활한 NAM 초기화를 위해 Application 레벨에서의 초기화 호출을 권장합니다.
또한, 이 작업은 앱 실행시 한번만 처리하면 됩니다.


자동 초기화 Off 설정

기본적으로 자동 초기화를 수행하게 됩니다. 수동으로 초기화 하기 위해 Manifest 파일에 아래 설정이 추가 되어야 합니다.

<!-- 기본 값은 true = 자동 초기화 -->
<meta-data
android:name="com.naver.gfpsdk.AUTO_INIT"
android:value="false" />

초기화 수행

GfpSdk 를 통해 초기화 여부와 초기화를 진행 할 수 있습니다. 또한 GfpSdk.InitializationCallback를 통해서 초기화 수행 이후 상태 값을 알 수 있습니다.

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
if (!GfpSdk.isInitialized()) {
GfpSdk.initialize(applicationContext,
object: GfpSdk.InitializationCallback {
override fun onInitializationComplete(initializationResult: GfpSdk.InitializationResult) {
// 성공 여부: initializationResult.success
// (참고용) 성공/실패시 내부 메시지: initializationResult.message
}
})
}
}
}
정보

광고 요청 전에 호출 했을 때, 초기화 응답 콜백에서 실패를 수신해도 광고를 요청하는데 이슈가 발생하지 않습니다.
하지만 효과적인 광고 요청을 위해 정확한 Publisher code 값과 Ad Unit ID 가 제공 되어야 합니다.

Unity 수동 초기화

NAM SDK 의 3.1.0 버전부터 UnityAds를 지원합니다.

유니티 광고 사용시 초기화 과정이 필요하고, 이는 NAM SDK 초기화 과정에 수행 됩니다.

필요시 초기화 과정을 별도로 수행 할 수 있는데요.

아래는 별도의 초기화 과정을 안내합니다.

정보

직접 초기화 하는 경우 반드시 NAM SDK 초기화 (GfpSdk.initialize) 보다 먼저 수행 되어야 합니다.

import com.naver.gfpsdk.provider.UnityInitializer;
import com.unity3d.ads.IUnityAdsInitializationListener;
import com.unity3d.ads.UnityAds;

UnityInitializer.initialize(context, "your_game_id", new IUnityAdsInitializationListener() {
@Override
public void onInitializationComplete() {
// init success
}

@Override
public void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) {
// handing error
}
});
1. 다른 game id 로 초기화 되는 경우

이미 'a'라는 id로 초기화를 수행한 후, 'b'라는 다른 game id로 초기화를 수행하려 하면 발생되는 메시지입니다.('b'라는 id로 초기화가 되지 않습니다.)

지속적으로 호출되는 것이 아니라면, 처음 초기화에 사용된 game id가 적절한 것인지 확인해 주세요.

2021-08-20 12:11:51.138 6730-6730/com.naver.gfpsdk.adssample.internal E/gfp_sdk_UnityInitializationListener: Initialization Failed: [INVALID_ARGUMENT] Unity Ads SDK failed to initialize due to already being initialized with different parameters
- Game ID Current: 4114527 | Received: 2750252
- Test Mode Current: true | Received: false
2. 초기화 된 것과 다른 game id로 광고 요청이 되는 경우

NAM 광고 유닛에 연결된 mediation에서 사용되는 game id가 초기화에 사용된 값과 다른 경우에 UnityAds에서 에러가 발생됩니다.

NAM Unit id를 확인해 주시고, 초기화에 사용한 game id가 올바른지 확인해 주세요.

2021-08-20 12:12:54.397 6730-8340/com.naver.gfpsdk.adssample.internal E/UnityAds: com.unity3d.services.core.api.Sdk.logError() (line:72) :: Load invocation failed: No placement configured for id: quest_reward_bonus
2021-08-20 12:12:54.400 6730-6730/com.naver.gfpsdk.adssample.internal E/gfp_sdk_UnityRewardedAdapter: onUnityAdsFailedToLoad
2021-08-20 12:12:54.400 6730-6730/com.naver.gfpsdk.adssample.internal E/gfp_sdk_GfpRewardedAdAdapter: adError: code[3310] subCode[INVALID_ARGUMENT] message[No placement configured for id: quest_reward_bonus]

Vungle 수동 초기화

NAM SDK 의 6.0.0 버전부터 Vungle을 지원합니다.

처음 광고가 요청되거나, NAM SDK 초기화 과정 중 Vungle SDK가 초기화 되는데요.

필요시 초기화 과정을 별도로 수행 할 수 있습니다.

정보

직접 초기화 하는 경우 반드시 NAM SDK 초기화 (GfpSdk.initialize) 보다 먼저 수행 되어야 합니다.

VungleInitializer.initialize(context, "your_app_id", new VungleInitializer.VungleInitializeListener() {
@Override
public void onInitializeSuccess() {
// init success
}

@Override
public void onInitializeError(@NonNull String errorMsg) {
// error handling
}
});