-
前提条件
- unity Pangle的插件地址:https://www.pangleglobal.com/integration/unity-get-start
- 下载之后导入插件
Android平台
初始化
- 在Start方法里进行初始化
var config = new PAGConfig.Builder()
.SetAppId("APPID")
.SetDebugLog(true)
.Build();
PAGSdk.Init(config);
PAGSdk.OnInitFinish += (result, code, message) =>
{
Debug.LogError($"result = {result}, error code = {code}, message = {message}");
};
加载广告
- 先在控制广告的脚本中定义RewardController类
public class RewardController
{
public readonly PAGRewardedAd rewardedAd;
public RewardController(string slotId)
{
rewardedAd = new PAGRewardedAd(slotId);
rewardedAd.OnLoad += (() => { Debug.LogError("[PAGRewarded]-[load]:successfully"); });
rewardedAd.OnLoadFailed += ((code, msg) =>
{
Debug.LogError($"[PAGRewarded]-[load]:failed, code ={code}, error message = {msg}");
});
rewardedAd.OnAdShowed += (() => { Debug.LogError("[PAGRewarded]-[interaction]:show"); });
rewardedAd.OnAdClicked += (() => { Debug.LogError("[PAGRewarded]-[interaction]:click"); });
rewardedAd.OnAdDismissed += (() => { Debug.LogError("[PAGRewarded]-[interaction]:dismiss"); });
rewardedAd.OnUserEarnedReward += (item =>
{
Debug.LogError(
$"[PAGRewarded]-[interaction]:User earned reward, amount = {item.RewardAmount}, reward name ={item.RewardName}");
//奖励下发
});
rewardedAd.OnUserEarnedRewardFail += ((code, message) =>
{
Debug.LogError(
$"[PAGRewarded]-[interaction]:User earned reward failed, error code = {code}, message = {message}");
});
}
public void LoadRewardAd()
{
rewardedAd?.Load(new PAGRewardedRequest());
}
public void ShowRewardAd()
{
rewardedAd?.Show();
}
public void DestroyRewardAd()
{
rewardedAd?.DestroyAd();
}
}
- 在控制广告的脚本中定义RewardController变量和加载广告的方法
/// <summary>
/// 加载激励视频
//AndroidSlotID为广告id
/// </summary>
private static RewardController _rewardAdController;
public void LoadRewardAd(string AndroidSlotID)
{
_rewardAdController?.DestroyRewardAd();
_rewardAdController = new RewardController(AndroidSlotID);
_rewardAdController.LoadRewardAd();
}
播放广告
/// <summary>
/// 播放广告
/// </summary>
public void ShowRewardAd(string AndroidSlotID,Action _rewardedEvent)
{
if (_rewardAdController.rewardedAd.IsLoaded())
{
_rewardAdController?.ShowRewardAd();
//播放广告
}
else
{
//重新加载
}
}
IOS平台
IOS在unity中的操作和安卓中的一模一样,下面主要说下配置
Xcode导出工程之后,在终端里运行
- 先cd到导出的Xcode项目路径下
cd ~路径
- 再输入pod install
pod install
加载完成后消除所有警告和错误
打开Xcode工作区
在info.list里面配置广告归因
写初始化代码
- ios需要在Xcode中的UnityAppController.m文件中再次配置初始化
初始化代码
- (void)setupPangleSDK {
PAGConfig *config = [PAGConfig shareConfig];
config.appID = @"APPID";
//If you need to display open ads, you should set the app logo image
// config.appLogoImage = [UIImage imageNamed:@"AppIcon"];
//#if DEBUG
config.debugLog = YES;
//#endif
[PAGSdk startWithConfig:config completionHandler:^(BOOL success, NSError * _Nonnull error) {
if (success) {
//load ad data
}
}];
}
- 在UnityAppController.m中的- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions中添加[self setupPangleSDK]