リワード広告
リワード広告の読み込み
リワード広告をロードするには、リワード広告ユニットに対応する MARewardedAd
のインスタンスを取得し、その loadAd
メソッドを呼び出します。
広告の準備が完了した際に通知されるように、MARewardedAdDelegate
を実装します。
これにより、他の広告関連イベントについても通知されるようになります。
#import "ExampleViewController.h"#import <AppLovinSDK/AppLovinSDK.h>
@interface ExampleViewController()<MARewardedAdDelegate>@property (nonatomic, strong) MARewardedAd *rewardedAd;@property (nonatomic, assign) NSInteger retryAttempt;@end
@implementation ExampleViewController
- (void)createRewardedAd{ self.rewardedAd = [MARewardedAd sharedWithAdUnitIdentifier: @"«ad-unit-ID»"]; self.rewardedAd.delegate = self;
// Load the first ad [self.rewardedAd loadAd];}
#pragma mark - MAAdDelegate Protocol
- (void)didLoadAd:(MAAd *)ad{ // Rewarded ad is ready to show. '[self.rewardedAd isReady]' now returns 'YES'
// Reset retry attempt self.retryAttempt = 0;}
- (void)didFailToLoadAdForAdUnitIdentifier:(NSString *)adUnitIdentifier withError:(MAError *)error{ // Rewarded ad failed to load // AppLovin recommends that you retry with exponentially higher delays up to a maximum delay (in this case 64 seconds)
self.retryAttempt++; NSInteger delaySec = pow(2, MIN(6, self.retryAttempt));
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, delaySec * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ [self.rewardedAd loadAd]; });}
- (void)didDisplayAd:(MAAd *)ad {}
- (void)didClickAd:(MAAd *)ad {}
- (void)didHideAd:(MAAd *)ad{ // Rewarded ad is hidden. Pre-load the next ad [self.rewardedAd loadAd];}
- (void)didFailToDisplayAd:(MAAd *)ad withError:(MAError *)error{ // Rewarded ad failed to display. AppLovin recommends that you load the next ad. [self.rewardedAd loadAd];}
#pragma mark - MARewardedAdDelegate Protocol
- (void)didRewardUserForAd:(MAAd *)ad withReward:(MAReward *)reward{ // Rewarded ad was displayed and user should receive the reward}
@end
class ExampleViewController : UIViewController, MARewardedAdDelegate{ var rewardedAd: MARewardedAd! var retryAttempt = 0.0
func createRewardedAd() { rewardedAd = MARewardedAd.shared(withAdUnitIdentifier: "«ad-unit-ID»") rewardedAd.delegate = self
// Load the first ad rewardedAd.load() }
// MARK: MAAdDelegate Protocol
func didLoad(_ ad: MAAd) { // Rewarded ad is ready to show. '[self.rewardedAd isReady]' now returns 'YES'.
// Reset retry attempt retryAttempt = 0 }
func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError) { // Rewarded ad failed to load // AppLovin recommends that you retry with exponentially higher delays up to a maximum delay (in this case 64 seconds).
retryAttempt += 1 let delaySec = pow(2.0, min(6.0, retryAttempt))
DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) { self.rewardedAd.load() } }
func didDisplay(_ ad: MAAd) {}
func didClick(_ ad: MAAd) {}
func didHide(_ ad: MAAd) { // Rewarded ad is hidden. Pre-load the next ad rewardedAd.load() }
func didFail(toDisplay ad: MAAd, withError error: MAError) { // Rewarded ad failed to display. AppLovin recommends that you load the next ad. rewardedAd.load() }
// MARK: MARewardedAdDelegate Protocol
func didRewardUser(for ad: MAAd, with reward: MAReward) { // Rewarded ad was displayed and user should receive the reward }}
リワード広告の表示
リワード広告を表示するには、取得した MARewardedAd
オブジェクトで showAd
を呼び出します。
if ( [self.rewardedAd isReady] ){ [self.rewardedAd showAd];}
if rewardedAd.isReady{ rewardedAd.show()}
リワード広告の金額と通貨へのアクセス
リワード額と通貨にアクセスするには、-[MARewardedAdDelegate didRewardUserForAd:withReward:]
コールバックをオーバーライドします。
- (void)didRewardUserForAd:(MAAd *)ad withReward:(MAReward *)reward{ NSLog(@"Rewarded user: %d %@", reward.amount, reward.label);}
func didRewardUser(for ad: MAAd, with reward: MAReward){ print("Rewarded user: \(reward.amount) \(reward.label)")}
S2S Rewarded Callbacks
通貨サーバーへのコールバックを受け取ることができます。 設定方法については、MAX S2S Rewarded CallbackAPIガイドをご覧ください。 次に、Edit Ad UnitページにてServer Side Callback URLをアップデートしてください。
リワード広告の金額と通貨の設定
リワードの金額と通貨を設定する方法:
- Edit Ad UnitページにてAdd S2S Reward Callbackをクリックします:
- Server Side Callback URL、Reward AmountおよびRewarded Currency Nameを追加します: