首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AdMob - iOS Implementation RewardBasedVideoAd

AdMob - iOS Implementation RewardBasedVideoAd
EN

Stack Overflow用户
提问于 2018-11-08 17:02:48
回答 2查看 339关注 0票数 1

我正在尝试使用Xamarin中的C#为iOS实现一个RewardBasedVideoAd,但我似乎就是无法让它工作。这就是我到目前为止所拥有的,它没有进入任何委托函数。任何帮助或建议都是非常感谢的。提前谢谢。

代码语言:javascript
运行
复制
    public class AdMobImplementation : UIViewController, 
    IRewardBasedVideoAdDelegate
    {
        public AdMobImplementation()
        {
            RewardBasedVideoAd.SharedInstance.Delegate = this;
RewardBasedVideoAd.SharedInstance.LoadRequest(Request.GetDefaultRequest(), "ca-app-pub-3940256099942544/1712485313");
            }
        public void DidRewardUser(RewardBasedVideoAd rewardBasedVideoAd, AdReward reward)
        {
            Console.WriteLine("rewarded");
        }

     public void DidFailToLoad(RewardBasedVideoAd rewardBasedVideoAd, NSError error)
        {
            Console.WriteLine($"Reward based video ad failed to load with error: {error.LocalizedDescription}.");
        }

        public void DidReceiveAd(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad is received.");
        }

        public void DidOpen(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Opened reward based video ad.");
        }

        public void DidStartPlaying(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad started playing.");
        }

        public void DidClose(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad is closed.");
        }

        public void WillLeaveApplication(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad will leave application.");
        }
}
EN

回答 2

Stack Overflow用户

发布于 2018-11-21 18:29:11

问题终于解决了!你不需要和IRewardBasedVideoAdDelegate打交道。您所要做的就是从RewardBasedVideoAdDelegate继承您的类,并覆盖所有必要的方法,如:

代码语言:javascript
运行
复制
public class AdMobImplementation : RewardBasedVideoAdDelegate
    {
        public AdMobImplementation()
        {
            RewardBasedVideoAd.SharedInstance.Delegate = this;
RewardBasedVideoAd.SharedInstance.LoadRequest(Request.GetDefaultRequest(), "ca-app-pub-3940256099942544/1712485313");
            }
        public override void DidRewardUser(RewardBasedVideoAd rewardBasedVideoAd, AdReward reward)
        {
            Console.WriteLine("rewarded");
        }

     public override void DidFailToLoad(RewardBasedVideoAd rewardBasedVideoAd, NSError error)
        {
            Console.WriteLine($"Reward based video ad failed to load with error:{error.LocalizedDescription}.");
        }

        public override void DidReceiveAd(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad is received.");
        }

        public override void DidOpen(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Opened reward based video ad.");
        }

        public override void DidStartPlaying(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad started playing.");
        }

        public override void DidClose(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad is closed.");
        }

        public override void WillLeaveApplication(RewardBasedVideoAd rewardBasedVideoAd)
        {
            Console.WriteLine("Reward based video ad will leave application.");
        }
}

希望这对任何寻求解决方案的人都有帮助:)

票数 1
EN

Stack Overflow用户

发布于 2018-11-09 15:50:17

原因:与BannerView不同。因为您使用的是谷歌.So提供的testUnitID,所以需要设置TestDeviceId.You将在输出中获得错误信息,如下所示

若要在此设备上获取测试广告,请拨打: request.testDevices =@ kGADSimulatorID或@@"xxxxxxxxxxx“,如果您使用的是真实设备;

解决方案:

如果使用模拟器,则为

代码语言:javascript
运行
复制
var request = Request.GetDefaultRequest();
request.TestDevices = new[] {Request.SimulatorId.ToString() };
RewardBasedVideoAd.SharedInstance.LoadRequest(Request.GetDefaultRequest(), "ca-app-pub-3940256099942544/1712485313");

如果您使用真实设备,则使用

代码语言:javascript
运行
复制
var request = Request.GetDefaultRequest();
request.TestDevices = new[] {"xxxxxxxxxxxxx"};
RewardBasedVideoAd.SharedInstance.LoadRequest(Request.GetDefaultRequest(), "ca-app-pub-3940256099942544/1712485313");

我使用了上面的代码,它工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53204429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档