Android Rewarded Video - adxcorp/ADXLibrary_Integration GitHub Wiki

AdMob Rewarded Video Ad Integration

Rewarded Video load์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋ฏธ๋ฆฌ load ํ•ด๋‘์‹  ๋‹ค์Œ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. App ID๋ฅผ ์ด์šฉํ•˜์—ฌ MobileAds.initialize()๋กœ ๋ฉ”์ธ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ์ดˆ๊ธฐํ™”
  2. AdRequest๋ฅผ ์ƒ์„ฑํ•˜์—ฌ GDPR ๊ด€๋ จ ์„ค์ •์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ extra๋กœ npa ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ (ADXConsentStateDenied ์ƒํƒœ์ผ ๋•Œ๋งŒ npa ๋ฅผ '1' ๋กœ ์ถ”๊ฐ€ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.)
  3. AD Unit ID์™€ ํ•จ๊ป˜ load()๋กœ ๊ด‘๊ณ  ๋กœ๋“œ
  4. ๊ด‘๊ณ  ๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด onAdLoaded callback ํ˜ธ์ถœ
  5. RewardedAd ๊ฐ์ฒด์˜ null ์ฒดํฌ๋ฅผ ํ†ตํ•ด ํ‘œ์‹œํ•  ๊ด‘๊ณ ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„, show()๋กœ ๋ฆฌ์›Œ๋“œ ๋น„๋””์˜ค ๋…ธ์ถœ
  6. ๊ด‘๊ณ  ์‹œ์ฒญ์„ ๋ชจ๋‘ ์™„๋ฃŒํ•˜๋ฉด onUserEarnedReward callback์„ ๋ฐ›๊ฒŒ ๋˜๋ฏ€๋กœ, onUserEarnedReward callback์„ ๋ฐ›์€ ๊ฒฝ์šฐ ๋ฆฌ์›Œ๋“œ ์ง€๊ธ‰ ์ฒ˜๋ฆฌ
public class RewardedVideoAdMobActivity extends AppCompatActivity {

    private RewardedAd mRewardedAd;

    private final String adUnitID = "<YOUT AD UNIT ID HERE>";

    public void loadAd() {
        Bundle extras = new Bundle();

        if (ADXGDPR.ADXConsentState.values()[ADXGDPR.getResultGDPR(this)] == ADXGDPR.ADXConsentState.ADXConsentStateDenied) {
            extras.putString("npa", "1");
        }
        AdRequest adRequest = new AdRequest.Builder()
                .addNetworkExtrasBundle(AdMobAdapter.class, extras)
                .build();

        RewardedAd.load(this, adUnitID, adRequest, new RewardedAdLoadCallback() {
            @Override
            public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
	            // Ad successfully loaded.
	            
                mRewardedAd = rewardedAd;

                mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
                    @Override
                    public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
	                    // Ad failed to display.
                    }

                    @Override
                    public void onAdShowedFullScreenContent() {
	                    // Ad opened.
                        mRewardedAd = null;
                    }

                    @Override
                    public void onAdDismissedFullScreenContent() {
	                    // Ad closed.
                        loadAd();
                    }

                    @Override
                    public void onAdImpression() {
                    }
                });
            }

            @Override
            public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
	            // Ad failed to load.
            }
        });
    }

    public void showAd() {

        if (mRewardedAd != null) {
            mRewardedAd.show(this, new OnUserEarnedRewardListener() {
                @Override
                public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
                    // User earned reward.
                }
            });
        } else {
            Log.d(TAG, "The rewarded ad wasn't loaded yet.");
            loadAd();
        }
    }

    @Override
    protected void onDestroy() {
        mRewardedAd = null;

        super.onDestroy();
    }
}

MoPub Rewarded Video Ad Integration

Rewarded Video load์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋‹ˆ, ๋ฏธ๋ฆฌ load ํ•ด๋‘์‹  ๋‹ค์Œ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  1. MoPubRewardedAdManager๋ฅผ ํ˜„์žฌ activity๋กœ ์ดˆ๊ธฐํ™”
  2. RewardedAdListener ์ถ”๊ฐ€
  3. loadRewardedAd()๋กœ ๋ฆฌ์›Œ๋“œ ๋น„๋””์˜ค ๋กœ๋“œ
  4. ๊ด‘๊ณ  ๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด onRewardedAdLoadSuccess callback ํ˜ธ์ถœ
  5. hasRewardedAd()๋กœ ํ‘œ์‹œ ํ•  ๊ด‘๊ณ ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„, showRewardedAd()๋กœ ๋ฆฌ์›Œ๋“œ ๋น„๋””์˜ค ๋…ธ์ถœ
  6. ๊ด‘๊ณ  ์‹œ์ฒญ์„ ๋ชจ๋‘ ์™„๋ฃŒํ•˜๋ฉด onRewardedAdCompleted callback์„ ๋ฐ›๊ฒŒ ๋˜๋ฏ€๋กœ, onRewardedAdCompleted callback์„ ๋ฐ›์€ ๊ฒฝ์šฐ ๋ฆฌ์›Œ๋“œ ์ง€๊ธ‰ ์ฒ˜๋ฆฌ
public class RewardedVideoActivity extends AppCompatActivity {

    private Button mButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rewarded_video);

        MoPubRewardedAdManager.init(this);
        MoPubRewardedAdManager.updateActivity(this);

        loadRewardedVideoDataMoPub();

        mButton = (Button) findViewById(R.id.button);
        mButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                if (MoPubRewardedAds.hasRewardedAd(DefineAdUnitId.REWARDED_VIDEO_AD_UNIT_ID)) {
                    Log.d(TAG, "isLoaded");
                    MoPubRewardedAds.showRewardedAd(DefineAdUnitId.REWARDED_VIDEO_AD_UNIT_ID);
                } else {
                    Log.d(TAG, "isNOTLoaded");
                    loadRewardedVideoDataMoPub();
                }
            }
        });

        MoPubRewardedAds.setRewardedAdListener(new MoPubRewardedAdListener() {
            @Override
            public void onRewardedAdLoadSuccess(String adUnitId) {
                // Called when the ad for the given adUnitId has loaded. At this point you should be able to call MoPubRewardedAds.showRewardedAd() to show the ad.
            }

            @Override
            public void onRewardedAdLoadFailure(String adUnitId, MoPubErrorCode moPubErrorCode) {
                // Called when the ad fails to load for the given adUnitId. The provided error code will provide more insight into the reason for the failure to load.
            }

            @Override
            public void onRewardedAdStarted(String adUnitId) {
                // Called when a rewarded ad starts playing.
            }

            @Override
            public void onRewardedAdShowError(String adUnitId, MoPubErrorCode moPubErrorCode) {
                //  Called when there is an error while attempting to show the ad.
            }

            @Override
            public void onRewardedAdClicked(String adUnitId) {
                //  Called when a rewarded ad is clicked.
            }

            @Override
            public void onRewardedAdClosed(String adUnitId) {
                // Called when a rewarded ad is closed. At this point your application should resume.
            }

            @Override
            public void onRewardedAdCompleted(Set<String> set, MoPubReward moPubReward) {
                // Called when a rewarded ad is completed and the user should be rewarded.
                // You can query the reward object with boolean isSuccessful(), String getLabel(), and int getAmount().
            }
        });
    }

    private void loadRewardedVideoDataMoPub() {
        MoPubRewardedAds.loadRewardedAd(DefineAdUnitId.REWARDED_VIDEO_AD_UNIT_ID);
    }

    @Override
    public void onPause() {
        super.onPause();
        MoPub.onPause(this);
    }

    @Override
    public void onResume() {
        super.onResume();
        MoPub.onResume(this);
    }

    @Override
    public void onStart() {
        super.onStart();
        MoPub.onStart(this);
    }

    @Override
    public void onRestart() {
        super.onRestart();
        MoPub.onRestart(this);
    }

    @Override
    public void onStop() {
        super.onStop();
        MoPub.onStop(this);
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        MoPub.onDestroy(this);
    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        MoPub.onBackPressed(this);
    }
}
โš ๏ธ **GitHub.com Fallback** โš ๏ธ