Android용 커스텀 어댑터 빌드
Android에서 네트워크를 위한 커스텀 어댑터 개발하고 통합하여 광고 Mediation 활성화하다, 사용 가능하다.
읽는 시간 1분최근 업데이트: 19시간 전
이 문서에서는 커스텀 어댑터 빌드 단계와 퍼블리셔에게 네트워크를 Ironsource Mediation 연동하는 데 필요한 리소스 제공합니다.
필수 조건
- 커스텀 어댑터 등록 양식 작성
- 사용 가능한 정보가 다음과 같습니다.
- 어댑터 패키지 이름
- 어댑터 클래스명
- 네트워크 설정 키
- 최신 레벨플레이 SDK 다운로드 여기
- 보상형 비디오 및 인터스티셜 광고 유닛에 필요한 최소 레벨플레이 SDK 버전은 7.1.13입니다.
중요
- 코드의 일부로 메인 스레드 요구 사항을 처리해야 합니다.
- 예기치 않은 오류로부터 앱 보호하기 위해 코드 보호 및 예외 처리를 추가해야 합니다.
네트워크용 어댑터 만드는 방법
네트워크 어댑터는 어댑터 Ironsource Mediation 사용하여 네트워크에서 광고를 표시할 수 있도록 네트워크 광고 로직을 관리합니다.
이 프로세스의 일부로 BaseAdapter라는 어댑터 클래스와 지원하려는 각 광고 유닛에 대한 추가 클래스를 생성해야 합니다.
BaseAdapter를 사용하면 SDK 초기화 프로세스를 비롯한 네트워크 SDK를 관리할 수 있으며, 세션 전체에 걸쳐 모든 광고 유닛에 대해 사용할 수 있는 변수와 상수를 정의할 수 있습니다.
광고 유닛 클래스는 광고의 로딩, 표시, 관리 로직을 결정하며, 워터폴의 각 광고 표시에 대해 인스턴스화됩니다.
네트워크 지지대 어댑터 만들기
네트워크 어댑터를 구현하려면 Ironsource BaseAdapter 클래스를 확장하여 전용 패키지에서 새 클래스를 생성합니다.
커스텀 어댑터 등록 확인 이메일에서 받은 패키지 및 지지대 어댑터 이름을 사용하십시오.
패키지 <YourNetworkName>com.ironsource.adapters.custom;public class <YourNetworkName>CustomAdapter extends BaseAdapter { // Your class implementation}
네트워크 SDK 초기화
Ironsource Mediation Mediation 초기화 프로세스의 일부로 지지대 어댑터 init API 호출. 그 결과 이 API 여러 번 호출될 수 있습니다.
init 구현의 일환으로 NetworkInitializationListener가 성공할 때마다(onInitSuccess) 또는 실패할 때마다(onInitFailed) NetworkInitializationListener에 정의된 초기화 콜백을 호출 합니다.
AdData 파라미터에는 퍼블리셔가 Ironsource에 제공한 설정 데이터가 포함됩니다. AdData 클래스 자세히 알아보기 여기.
void init(@NotNull AdData adData, @NotNull Context context, @Nullable NetworkInitializationListener listener){ ... if (init-success-condition) { // Initialization completed successfully listener.onInitSuccess(); } else { // Initialization failed listener.onInitFailed(AdapterErrors.ADAPTER_ERROR_MISSING_PARAMS, error); }}
SDK 및 어댑터 버전 제공
이 정보는 현재 퍼블리셔 앱에 구현된 SDK와 어댑터 버전을 나타냅니다. getNetworkSDKVersion을 구현할 때는 어댑터 업데이트와 SDK 지원에 대한 유연성을 높이기 위해 하드 코딩된 값 대신 API 사용할 것을 권장합니다.
@Nullable String getNetworkSDKVersion();@NotNull String getAdapterVersion();
인터스티셜 광고 유닛에 대한 지원 추가
인터스티셜 광고 유닛 클래스 생성
네트워크 커스텀 어댑터의 동일한 패키지의 일부로 BaseInterstitial 클래스**를 확장하여 인터스티셜 광고 유닛을 관리하는 클래스를 생성합니다. 이 클래스 퍼블리셔 Load API 통해 앱에서 새로운 인터스티셜 광고 광고를 트리거할 때 활성화됩니다.
Ironsource 받은 패키지 및 인터스티셜 광고 클래스명 등록 프로세스의 일부로 사용합니다.
package com.ironsource.adapters. 커스텀[YourNetworkName];public class SampleCustomInterstitial extends BaseInterstitial<SampleCustomAdapter> implements SampleNetworkInterstitialAdListener {public class <YourNetworkName>CustomInterstitial extendsBaseInterstitial <<YourNetworkNameCustomAdapter>> {...}
광고 유닛 생성자 구현
NetworkSetting 오브젝트 사용하여 생성자 구현합니다. 이는 인터스티셜 광고 유닛 구현의 일환으로 필요하며, 네트워크를 워터폴에 추가할 수 있도록 합니다.
public <YourNetworkName>CustomInterstitial(NetworkSettings networkSettings) { super(networkSettings);}
인터스티셜 광고 요청
퍼블리셔가 네트워크로부터 인터스티셜 광고 요청할 수 있도록 LoadAd API 오버라이드. AdData를 통해 퍼블리셔의 입력에 액세스, 접근하고 광고 식별자를 받을 수 있습니다.
광고 로드 성공 시(onAdLoadSuccess)와 모든 종류의 오류(onAdLoadFailed)에 대해 InterstitialAdListener 콜백을 구현해야 합니다. 미리 정의된 시간 후에 리스너 콜백 트리거되지 않으면 명상 로딩이 중단되고 네트워크에서 광고를 제공할 수 없습니다.
public void loadAd(AdData adData, Activity activity, InterstitialAdListener listener) { // Load your ad}
이용 가능한 광고 여부 확인
isAdAvailable API 오버라이드 퍼블리셔가 사용자 광고를 표시하기 전에 광고의 준비 여부를 확인할 수 있습니다. API 광고가 성공적으로 로드되면 true를, 현재 로드되지 않은 경우 false를 반환해야 합니다. 네트워크에서 제공하는 경우 네트워크의 is-ad-available 표시를 사용하거나 LoadAd 및 ShowAd API의 일부로 광고 상태를 수동으로 관리하여 이를 수행할 수 있습니다.
public boolean isAdAvailable(AdData adData) { return isAdAvailable;}
인터스티셜 광고 표시
광고가 성공적으로 로드되면 퍼블리셔 광고를 표시할 수 있어야 합니다. 퍼블리셔에게 더 나은 경험 제공하기 위해 isAdAvailable이 true인지 확인한 후 showAd API 오버라이드 수 있습니다. 이 메서드에서 수신하는 정보의 일부는 AdData입니다. 이 오브젝트 사용하면 관련 광고를 표시할 수 있습니다. 쇼를 수행할 수 없는 경우 onAdShowFailed 콜백 반환해야 합니다.
public void showAd(AdData adData, InterstitialAdListener listener) { // check your ad load status if (isAdLoaded) { // show your ad } else { listener.onAdShowFailed(adatperErrorCode, adapterErrorMsg); }}
InterstitialAdListener 콜백을 보고합니다.
네트워크 기능에 따라 InterstitialAdListener의 콜백을 오버라이드 합니다. 콜백을 올바르게 보고하면 아이언소스 Mediation 베스트 프랙티스 흐름을 보장하고, 네트워크의 성능 데이터를 아이언소스 플랫폼에 올바르게 반영할 활성화하다, 사용 가능하다 있습니다.
필수 콜백
// Indicates that interstitial ad was loaded successfullyvoid onAdLoadSuccess();// The interstitial ad failed to load. Ironsource ErrorTypes 사용(보여줄 광고 없음(no fill)void onAdLoadFailed(@NotNull AdapterErrorType adapterErrorType, int errorCode, @Nullable String errorMessage);// The interstitial ad is displayed successfully to the user. 노출을 나타냅니다.void onAdOpened();// User closed the interstitial advoid onAdClosed();// The ad could not be displayedvoid onAdShowFailed(int errorCode, @Nullable String errorMessage);
콜백(선택 사항)
// Indicates the network differentiates between show-success and ad-open (impression)void onAdShowSuccess();// Indicates an ad was clickedvoid onAdClicked();
지지대 어댑터 데이터를 가져오는 방법(선택 사항)
세션 전반에서 지지대 어댑터가 광고 유닛과 관련된 상태 또는 파라미터를 관리하는 경우에는 getNetworkAdapter API를 사용합니다. 여기에는 광고 유닛 API에서 사용해야 하는 지지대 어댑터 일부로 정의된 모든 오브젝트가 포함됩니다.
// example of data retrieved from your network level adapterSampleCustomAdapter networkAdapter = getNetworkAdapter();if (networkAdapter != null) { // call network level method String extraData = networkAdapter.sampleAppLevelData();}
보상형 비디오 광고 유닛에 대한 지원 추가
보상형 비디오 광고 유닛 클래스 생성
네트워크 커스텀 어댑터의 동일한 패키지의 일부로 BaseRewardedVideo 클래스**를 확장하여 보상형 비디오 광고 유닛을 관리하는 클래스를 생성합니다. 이 클래스 퍼블리셔 Load API 통해 앱에서 보상형 비디오 광고를 트리거할 때 활성화됩니다.
Ironsource 받은 패키지 및 보상형 비디오 클래스명 등록 프로세스의 일부로 사용합니다.
package com.ironsource.adapters. 커스텀[YourNetworkName];import com.ironsource.mediationsdk.adunit.adapter.BaseRewardedVideo;import com.ironsource.mediationsdk.adunit.adapter.listener.RewardedVideoAdListener;import com.ironsource.mediationsdk.adunit.adapter.utility.AdData;import com.ironsource.mediationsdk.adunit.adapter.utility.AdapterErrorType;import com.ironsource.mediationsdk.adunit.adapter.utility.AdapterErrors;import com.ironsource.mediationsdk.model.NetworkSettings;
public class SampleCustomRewardedVideo extends BaseRewardedVideo<SampleCustomAdapter> implements SampleNetworkRewardedVideoListener { // Add your adapter code here}
광고 유닛 생성자 구현
NetworkSetting 오브젝트 사용하여 생성자 구현합니다. 보상형 비디오 광고 유닛 구현의 일환으로 필요하며, 네트워크를 워터폴에 추가할 수 있도록 합니다.
public <YourCustomNetwork>CustomRewardedVideo(NetworkSettings networkSettings) { super(networkSettings);}
보상형 비디오 광고 요청
LoadAd API 오버라이드 퍼블리셔가 네트워크로부터 보상형 비디오 광고를 요청할 수 있습니다. AdData를 통해 퍼블리셔의 입력에 액세스, 접근하고 광고 식별자를 받을 수 있습니다.
광고를 성공적으로 로드(onAdLoadSuccess)하고 모든 종류의 오류(onAdLoadFailed)에 대해 RewardedVideoAdListener 콜백을 구현해야 합니다. 미리 정의된 시간 후에 리스너 콜백 트리거되지 않으면 명상 로딩이 중단되고 네트워크에서 광고를 제공할 수 없습니다.
public void loadAd(@NotNull AdData adData, @NotNull Activity activity, @NotNull RewardedVideoAdListener rewardedVideoAdListener) { // Load your ad}
이용 가능한 광고 여부 확인
isAdAvailable API 오버라이드 퍼블리셔가 사용자 광고를 표시하기 전에 광고의 준비 여부를 확인할 수 있습니다. API 광고가 성공적으로 로드되면 true를, 현재 로드되지 않은 경우 false를 반환해야 합니다. 네트워크에서 제공하는 경우 네트워크의 is-ad-available 표시를 사용하거나 LoadAd 및 ShowAd API의 일부로 광고 상태를 수동으로 관리하여 이를 수행할 수 있습니다.
public boolean isAdAvailable(AdData adData) { return isAdAvailable;}
보상형 비디오 광고 표시
광고가 성공적으로 로드되면 퍼블리셔 광고를 표시할 수 있어야 합니다. 퍼블리셔에게 더 나은 경험 제공하기 위해 isAdAvailable이 true인지 확인한 후 showAd API 오버라이드 수 있습니다. 이 메서드에서 수신하는 정보의 일부는 AdData입니다. 이 오브젝트 사용하면 관련 광고를 표시할 수 있습니다. 쇼를 수행할 수 없는 경우 onAdShowFailed 콜백 반환해야 합니다.
public void showAd(AdData adData, RewardedVideoAdListener rewardedVideoAdListener) { // check your ad load status if (isAdLoaded) { // show your ad } else { AdapterErrors adapterErrorCode = AdapterErrors.<ERROR CODE>; 문자열 어댑터ErrorMsg = "ERROR 메시지"; 보상VideoAdListener.onAdShowFailed(adatperErrorCode, adapterErrorMsg); }}
RewardedVideoAdListener 콜백을 보고합니다.
네트워크 기능에 따라 RewardedVideoAdListener의 콜백을 오버라이드 합니다. 콜백을 올바르게 보고하면 아이언소스 Mediation 베스트 프랙티스 흐름을 보장하고, 네트워크의 성능 데이터를 아이언소스 플랫폼에 올바르게 반영할 활성화하다, 사용 가능하다 있습니다.
필수 콜백
// Indicates that rewarded video ad was loaded successfullyvoid onAdLoadSuccess();// The rewarded video ad failed to load. Ironsource ErrorTypes 사용(보여줄 광고 없음(no fill)void onAdLoadFailed(@NotNull AdapterErrorType adapterErrorType, int errorCode, @Nullable String errorMessage);// The rewarded video ad is displayed successfully to the user. 이는 Ironsource 플랫폼에서 노출을 나타냅니다.void onAdOpened();// User closed the rewarded video advoid onAdClosed();// The ad could not be displayedvoid onAdShowFailed(int errorCode, @Nullable String errorMessage);// The ad was rewarded successfullyvoid onAdRewarded();
콜백(선택 사항)
// Indicates an ad was clickedvoid onAdClicked();// Indicates an ad was displayed on foregroundvoid onAdVisible();// Indicates an ad playable startedvoid onAdStarted();// Indicates an ad playable endedvoid onAdEnded();
배너 광고 유닛에 대한 지원 추가(Android 개발 앱 해당)
단계 1. 배너 광고 유닛 클래스 만들기
네트워크 커스텀 어댑터의 동일한 패키지의 일부로 BaseBanner 클래스를 확장하여 배너 광고 유닛을 관리할 클래스를 생성합니다. 이 클래스 퍼블리셔 Load API 통해 앱에서 새 배너 광고를 트리거할 때 활성화됩니다.
Ironsource 받은 패키지 및 배너 클래스명 등록 프로세스의 일부로 사용합니다.
2단계. 광고 유닛 생성자 구현
NetworkSetting 오브젝트 사용하여 생성자 구현합니다. 이는 배너 광고 유닛 구현의 일환으로 필요하며, 네트워크를 워터폴에 추가할 수 있도록 합니다.
public <YourNetworkName>CustomBanner(NetworkSettings networkSettings) { super(networkSettings);}
배너 크기
지원되는 배너 크기에 대한 자세한 내용은 다음 표를 참조하십시오. 커스텀 네트워크는 이러한 크기의 모든 조합 지원할 수 있습니다. 배너 크기는 loadAd API 일부로 파라미터로 수신됩니다.
수신된 배너 크기가 SMART인 경우 기기 화면 크기에 따라 크기를 배너 또는 리더보드로 변경해야 합니다(다음 지침 참조).
ISBannerSize | Description | Dimensions in dp (WxH) |
|---|---|---|
| 배너 | 표준 배너 | 320 x 50 |
| LARGE | 대형 배너 | 320 x 90 |
| RECTANGLE | 중간 직사각형(MREC) | 300 x 250 |
| SMART | 스마트 배너 (모바일 및 태블릿 모두에 맞게 조정됨) | If (스크린 너비 ≤ 720) 320 x 50 If (스크린 너비 > 720) 728 x 90 |
3단계. 배너 광고 요청
loadAd API 구현하면 퍼블리셔가 네트워크에서 배너 광고를 요청할 수 있습니다. AdData를 통해 퍼블리셔의 입력에 액세스, 접근하고 광고 식별자를 수신할 수 있으며, ISBannerSize는 요청한 배너 크기를 나타냅니다.
public void loadAd(@NotNull AdData adData, @NotNull Activity activity, @NotNull ISBannerSize bannerSize, @NotNull BannerAdListener bannerAdListener) { // Load your ad}
4단계. 배너 파괴
Ironsource 앱 개발자가 다음 destroyAd 메서드를 구현하여 배너 광고를 삭제해야 합니다.
public void destroyAd(@NotNull AdData adData) { }
5단계 BannerAdListener 콜백을 보고합니다.
네트워크 기능에 따라 BannerAdListener의 콜백을 보고합니다. 이렇게 하면 네트워크의 성능 데이터가 Ironsource 플랫폼에 올바르게 반영됩니다.
필수 콜백
// Indicates that a banner ad was loaded successfullyvoid onAdLoadSuccess(@NotNull View adView, @NotNull FrameLayout.LayoutParams frameLayoutParams)// The banner ad failed to load. Ironsource ErrorTypes 사용(보여줄 광고 없음(no fill)void onAdLoadFailed(@NotNull AdapterErrorType adapterErrorType, int errorCode, @Nullable String errorMessage)// The banner ad is displayed successfully to the user. 이는 Ironsource 플랫폼에서 노출을 나타냅니다.void onAdOpened()// Indicates an ad was clickedvoid onAdClicked()
커스텀 어댑터 네트워크에서 onAdLoadSuccess 콜백 전달하는 LayoutParams 오브젝트 값을 정의합니다. 아래에서 베스트 프랙티스를 확인할 수 있습니다.
- 실제 배너 크기의 너비와 높이 전달.
- 중력 프로퍼티 중력.CENTER로 정의합니다.
콜백(선택 사항)
//Should be invoked after a click, and before the user is taken out of the appvoid onAdLeftApplication()// Should be invoked after the ad view presents fullscreen contentvoid onAdScreenPresented()// Should be invoked after the fullscreen content is dismissedvoid onAdScreenDismissed()
어댑터 사용하여 퍼블리셔 입력 액세스, 접근.
커스텀 어댑터 등록 프로세스의 일환으로 앱 및 인스턴스 레벨 키를 제공했습니다.
이러한 키의 값은 Ironsource 플랫폼에서 퍼블리셔 정의합니다. 이러한 값은 AdData 오브젝트 사용하여 런타임 시점에 사용할 수 있습니다.
AdData 오브젝트 설정 값이 포함된 맵 있으며, 어댑터 및 광고 유닛 클래스 API의 일부입니다. 이 파라미터 Init, LoadAd, ShowAd, isAdAvailable API에서 사용할 수 있습니다.
등록 확인 이메일의 일부로 수신한 이름을 사용하여 AdData 맵 구조, 구조체 값에 액세스, 접근 수 있습니다.
// Get Publisher setup parametersfinal String appLevelParam1 = adData.getString(<YourAppLevelParam1>);final String instanceLevelParam1 = adData.getString(<YourInstanceLevelParam1>);final String instanceLevelParam2 = adData.getString(<YourInstanceLevelParam2>);
Ironsource 오류 코드 및 오류 유형 사용
오류 유형
이는 onAdLoadFailed 콜백과 관련이 있습니다.
오류 유형 | Description |
|---|---|
| 표시할 수 있는 광고가 없을 때 사용 |
| 네트워크에서 보고한 다른 이유로 사용됨 |
오류 코드
이러한 오류 코드는 onAdLoadFailed 및 onAdShowFailed 콜백과 관련이 있습니다.
오류 코드 | Description |
|---|---|
| API 호출 시 일부 필수 정보를 사용할 수 없어서 행동 실패했습니다. |
| 를 사용하여 광고 만료 여부를 나타냅니다. |
| 네트워크에서 보고한 기타 오류에 사용 |
어댑터 디버깅(선택 사항)
디버그 로그를 지원하려는 경우 앱에서 setAdapterDebug API 구현하고 호출. 이는 BaseAdapter의 일부로 이루어져야 합니다.
public class <YourNetworkName>CustomAdapter extends BaseAdapter { @Override public void setAdapterDebug(boolean adapterDebug) { this.adapterDebug = adapterDebug; }}