Android에서 보상형 광고 구현
Android 앱에서 보상형 광고를 구현합니다. 광고 콘텐츠를 로드하고 Java 코드를 통해 표시하고 리스너를 사용하여 광고 이벤트와 보상 로직을 관리합니다.
읽는 시간 2분최근 업데이트: 18시간 전
광고를 보는 사용자에게 보상을 제공하면 사용자 참여가 증가하고 더욱 높은 수익으로 이어질 수 있습니다. 예를 들어, 게임 내 재화나 소모품, 추가 생명, 경험치 증가 등의 보상을 게임에서 사용자에게 제공할 수 있습니다. 보상형 광고를 효과적으로 설계하는 방법에 관한 자세한 내용은 수익화 전략 가이드를 참고하십시오. 동영상 광고 시청을 완료한 사용자에게 보상을 제공하려면
IUnityAdsShowListener.onUnityAdsShowCompleteUnityAdsShowCompletionState보상형 비디오 예시
import android.app.Activity;import android.os.Bundle;import android.util.Log;import androidx.appcompat.app.AppCompatActivity;import com.unity3d.ads.IUnityAdsLoadListener;import com.unity3d.ads.IUnityAdsShowListener;import com.unity3d.ads.UnityAdsShowOptions;import com.unity3d.ads.example.R;import com.unity3d.ads.IUnityAdsInitializationListener;import com.unity3d.ads.UnityAds;public class ShowRewardedAd extends AppCompatActivity implements IUnityAdsInitializationListener {private String unityGameID = "1234567";private Boolean testMode = true;private String adUnitId = "rewardedVideo";private IUnityAdsLoadListener loadListener = new IUnityAdsLoadListener() { @Override public void onUnityAdsAdLoaded(String placementId) { UnityAds.show((Activity)getApplicationContext(), adUnitId, new UnityAdsShowOptions(), showListener); } @Override public void onUnityAdsFailedToLoad(String placementId, UnityAds.UnityAdsLoadError error, String message) { Log.e("UnityAdsExample", "Unity Ads failed to load ad for " + placementId + " with error: [" + error + "] " + message); }};private IUnityAdsShowListener showListener = new IUnityAdsShowListener() { @Override public void onUnityAdsShowFailure(String placementId, UnityAds.UnityAdsShowError error, String message) { Log.e("UnityAdsExample", "Unity Ads failed to show ad for " + placementId + " with error: [" + error + "] " + message); } @Override public void onUnityAdsShowStart(String placementId) { Log.v("UnityAdsExample", "onUnityAdsShowStart: " + placementId); } @Override public void onUnityAdsShowClick(String placementId) { Log.v("UnityAdsExample", "onUnityAdsShowClick: " + placementId); } @Override public void onUnityAdsShowComplete(String placementId, UnityAds.UnityAdsShowCompletionState state) { Log.v("UnityAdsExample", "onUnityAdsShowComplete: " + placementId); if (state.equals(UnityAds.UnityAdsShowCompletionState.COMPLETED)) { // Reward the user for watching the ad to completion } else { // Do not reward the user for skipping the ad } }};@Overrideprotected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Initialize the SDK: UnityAds.initialize(getApplicationContext(), unityGameID, testMode, this);}@Overridepublic void onInitializationComplete() { DisplayRewardedAd();}@Overridepublic void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) { Log.e("UnityAdsExample", "Unity Ads initialization failed with error: [" + error + "] " + message);}// Implement a function to load a rewarded ad. The ad will start to show after the ad has been loaded.public void DisplayRewardedAd () { UnityAds.load(adUnitId, loadListener);}}
보상형 비디오 광고 버튼
플레이어가 광고 보기를 옵트인할 수 있는 버튼을 사용하는 것이 보상형 비디오 광고의 일반적인 구현 방식입니다. 다음 예시 코드를 사용하면 보상형 광고 버튼을 생성할 수 있습니다. 광고가 먼저 로드되어야 이 광고 버튼이 눌렸을 때 광고가 표시됩니다. 버튼 구성에 대한 자세한 내용은 버튼에 대한 Android 개발자 기술 자료를 참조하십시오. 버튼을 구현한 후,showAdButtonimport android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import androidx.appcompat.app.AppCompatActivity;import com.unity3d.ads.IUnityAdsLoadListener;import com.unity3d.ads.IUnityAdsShowListener;import com.unity3d.ads.UnityAdsShowOptions;import com.unity3d.ads.example.R;import com.unity3d.ads.IUnityAdsInitializationListener;import com.unity3d.ads.UnityAds;public class RewardedAdButton extends AppCompatActivity implements IUnityAdsInitializationListener {private String unityGameID = "1234567";private Boolean testMode = true;private String adUnitId = "rewardedVideo";private Button rewardedButton;private IUnityAdsLoadListener loadListener = new IUnityAdsLoadListener() { @Override public void onUnityAdsAdLoaded(String placementId) { UnityAds.show((Activity)getApplicationContext(), adUnitId, new UnityAdsShowOptions(), showListener); } @Override public void onUnityAdsFailedToLoad(String placementId, UnityAds.UnityAdsLoadError error, String message) { Log.e("UnityAdsExample", "Unity Ads failed to load ad for " + placementId + " with error: [" + error + "] " + message); }};private IUnityAdsShowListener showListener = new IUnityAdsShowListener() { @Override public void onUnityAdsShowFailure(String placementId, UnityAds.UnityAdsShowError error, String message) { Log.e("UnityAdsExample", "Unity Ads failed to show ad for " + placementId + " with error: [" + error + "] " + message); // Re-enable the button if the user should be allowed to watch another rewarded ad rewardedButton.setEnabled(true); } @Override public void onUnityAdsShowStart(String placementId) { Log.v("UnityAdsExample", "onUnityAdsShowStart: " + placementId); } @Override public void onUnityAdsShowClick(String placementId) { Log.v("UnityAdsExample", "onUnityAdsShowClick: " + placementId); } @Override public void onUnityAdsShowComplete(String placementId, UnityAds.UnityAdsShowCompletionState state) { Log.v("UnityAdsExample", "onUnityAdsShowComplete: " + placementId); if (state.equals(UnityAds.UnityAdsShowCompletionState.COMPLETED)) { // Reward the user for watching the ad to completion } else { // Do not reward the user for skipping the ad } // Re-enable the button if the user should be allowed to watch another rewarded ad rewardedButton.setEnabled(true); }};@Overrideprotected void onCreate (Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); // Initialize the SDK: UnityAds.initialize(getApplicationContext(), unityGameID, testMode, this); // Find the button in the view hierarchy and set its click function to load ads: rewardedButton = findViewById (R.id.showAdButton); rewardedButton.setOnClickListener (new View.OnClickListener (){ @Override public void onClick (View v) { DisplayRewardedAd (); rewardedButton.setEnabled(false); } });}@Overridepublic void onInitializationComplete() { rewardedButton.setEnabled(true);}@Overridepublic void onInitializationFailed(UnityAds.UnityAdsInitializationError error, String message) { Log.e("UnityAdsExample", "Unity Ads initialization failed with error: [" + error + "] " + message);}// Implement a function to load an rewarded ad. The ad will start to show after the ad has been loaded.public void DisplayRewardedAd () { UnityAds.load(adUnitId, loadListener);}}