开始之前
- 我们支持Unity 2019.4及以上版本。
- 我们支持Android操作系统版本4.1(API级别16)及更高版本。
- 我们支持XCode 9.0及更高版本以及CocoaPods。
- 我们建议您创建一个OpenMediation帐户并注册一个Android和iOS应用。
总览
本指南适用于需要通过Unity应用获利的发布商。
OpenMediation SaaS 聚合平台提供多样化且有效的货币化服务,并支持多种广告格式,包括原生广告,非页内广告,横幅广告和激励性视频广告。 OpenMediation平台可聚合AdTiming,AdMob,Facebook,UnityAds,Vungle,Tapjoy,AppLovin,AdColony,Chartboost,Pangle,Mintegral,MoPub和IronSource。
步骤 1. 将OpenMediation Unity Package 添加到您的项目中
免责声明:更新OpenMediation SDK
从较早的SDK版本升级到OpenMediation SDK 2.0.0及更高版本时,必须下载并更新所有聚合适配器。
请按照以下步骤将OpenMediation Unity软件包添加到您的项目中:
- OpenMediation SDK设计用于Android和iOS平台。Unity编辑器包含一个与Unity代码一起使用的模拟器。为了使用我们的插件,您必须以Android或iOS版本为目标来测试集成。
- 导入Unity Package
- Navigate to Assets -> Import Package -> Custom Package.
- 选中 OMUnityPlugin(x.x.x).unitypackage 文件。
- 导入所有文件,并确保避免与文件冲突。 (双击解压后的文件; 不同的文件将自动填充,如下所示) 。
步骤 2.Unity 集成管理工具
OpenMediation Unity集成管理工具基于Google External Dependency Manager ,它将使您能够直接从Unity开发平台下载最新版本的OpenMediation SDK和聚合适配器。
注意! 如果您的Android应用同时接入了Appsflyer和Vungle的SDK,编译时会提示冲突,如何解决请参考:处理AppsFlyer和Vungle的冲突问题。
注意:Unity 集成管理工具中显示的Adapter版本号不是iOS/安卓OpenMediation***Adapter版本号。
管理SDK版本
导入Unity package之后,您将可以在Unity菜单栏中查看OpenMediation子菜单。
更新OpenMediation SDK或聚合适配器
- 打开集成管理工具:OpenMediation > Integration Manager(针对中国地区流量应用请选择Integration Manager(CN))
- 选择 “Install” or “Update“
如果您已经是最新版本的OpenMediation SDK或聚合适配器,则按钮将更改为 “Updated”,并且将被禁用。
Android
使用OpenMediation集成管理工具更改后需确保运行“Android Resolve”
手动运行: Assets →External Dependency Manager → Android → Resolve
如果您启用 “Auto-Resolution”,则将在关闭Integration Manager窗口时执行所有更新。
使用Gradle
如果您的项目使用gradle请按以下步骤设置Android Resolver
- 打开Android Resolver 设置面板: Assets → External Dependency Manager → Android Resolver → Settings
- 选择 “Patch mainTemplate.gradle”
- 点击 “OK” 保存修改
iOS
确保已安装CocoaPods: Assets →External Dependency Manager → iOS Resolver → Install CocoaPods
步骤 3. iOS项目配置
App Transport Security Settings
-
添加一个名为 'App Transport Security Settings' 的字典,确保将次字典添加到 'Top Level Key'上。
-
在此字典中,添加一个名为 'Allow Arbitrary Loads' 的布尔值 并将其 设置为YES。
Info.plist 配置(可选)
如果您使用 Unity 集成管理工具添加了 AdMob SDK,您需要在AdMob一栏的下拉框中,添加一个字符串值为您的 AdMob 应用 ID 的 GADApplicationIdentifier。您可以在 AdMob 界面中找到您的应用 ID。
注意:请务必使用您的实际 AdMob 应用 ID,而不是上面列出的 ID。
警告! 自 Google 移动广告 iOS SDK 7.42.0 版本开始,均须执行此步骤。如果未能添加此 Info.plist 条目,将会导致崩溃,并显示以下消息:"The Google Mobile Ads SDK was initialized incorrectly."
步骤 4. 初始化广告单元
在加载广告之前,通过使用您的AppKey调用 Om.Agent.init("appKey") 来初始化OpenMediation SDK。 最好在应用程序启动时完成此操作,只需执行一次即可。 这是一个示例,说明如何在附加到GameObject的脚本的 Start( ) 方法内调用 Init( ) 。
public void Start()
{
Om.Agent.init("Your AppKey");
}
OpenMediation Unity插件会触发初始化事件,以通知您SDK初始化的结果。
添加以下代码以注册到事件:
public class InitScript : MonoBehaviour {
void Start()
{
OmEvents.onSdkInitSuccessEvent += SdkInitSuccessEvent;
OmEvents.onSdkInitFailedEvent += SdkInitFailedEvent;
}
}
插件将通知侦听器以下所有可能的事件:
void SdkInitSuccessEvent() {
}
void SdkInitFailedEvent(string error) {
}
是否初始化
调用init( ) 方法后,您还可以使用以下代码来确定SDK是否已成功初始化。
// To determine the result of init()
Om.Agent.isInitialized()
步骤 5. 监听展现级收入数据(可选)
添加以下代码以注册到事件(v2.1.0 及以上版本):
public class InitScript : MonoBehaviour {
void Start() {
OmEvents.onImpressionDataCallback += ImpressionData;
OmEvents.onImpressionDataErrorCallback += ImpressionDataError;
}
}
插件将通知侦听器以下所有可能的事件:
void ImpressionData(String impressionData) {
}
void ImpressionDataError(string error) {
}
上报IAP数据(可选)
IAP是 in-App Purchase的缩写,中文称为“应用内购买”,表示该设备的用户在应用内购买虚拟商品的花费。您可以通过SDK的setIAP接口上报用户购买虚拟商品的金额数据,这些IAP数据可以帮助我们为您的用户更加精准的投放广告,从而获得更好的广告收益。
Om.Agent.setIap(float count, String currency);
currency 是一个代表货币代码的字符串类型参数,按ISO国际标准组织的 ISO 4217:2008标准定义。
您可以在SDK初始化后的任何时候上报IAP数据,比如在初始化回调InitCallback 的onSuccess方法中处理,在用户发生IAP购买行为的时候,您可以调用该方法及时更新IAP数据。
…
Om.Agent.setIap(12.30, 'USD');
…
传递归因信息(可选)
如果您项目同时集成了AppsFlyer SDK,我们需要您将应用归因数据传递到OpenMediation Server,以便我们帮您准确计算各Media Source、Campaign层级ROAS及LTV数据。
1.在AppsFlyer onConversionDataSuccess 回调中调用 sendAFConversionData:
public void onConversionDataSuccess(string conversionData) {
Om.Agent.sendAFConversionData(conversionData);
}
2.在AppsFlyer onAppOpenAttribution 回调中调用 sendAFDeepLinkData:
public void onAppOpenAttribution(string validateResult) {
Om.Agent.sendAFDeepLinkData(validateResult);
}
Proguard
仅适用于 Proguard 用户
若您使用 ProGuard,您必须添加以下代码至您的 ProGuard 文件中:
-dontskipnonpubliclibraryclasses
# SDK API
-dontwarn com.openmediation.sdk.**.*
-keep class com.openmediation.sdk.**{*;}
#R
-keepclassmembers class **.R$* {
public static <fields>;
}
-keepattributes *Annotation*,InnerClasses
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
步骤 6. iOS 14 配置
SKAdNetworkItems
如果您的项目使用了OpenMediation Unity插件,只需要打开一次插件,插件会根据您的项目配置,自动帮您添加SKAdNetwork内容,您只需要按照项目的实际情况,添加广告追踪的权限说明即可。
应用跟踪透明度
-
要显示用于访问IDFA的App Tracking Transparency授权请求,请更新您的信息Info.plist:添加带有描述您的自定义消息的'NSUserTrackingUsageDescription'键。
- 要显示授权请求,请调用'requestTrackingAuthorizationWithCompletionHandler:' 我们建议在加载广告之前等待完成回调,这样如果用户授予App跟踪透明权限,OpenMediation SDK就可以在广告请求中使用IDFA。
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
- (void)requestUserIDFA {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// Tracking authorization completed. Start loading ads here.
// [self loadAd];
}];
import AppTrackingTransparency
import AdSupport
func resquestUserIDFA() {
ATTrackingManager.requestTrackingAuthorization(completionHandler: {status in
// Tracking authorization completed. Start loading ads here.
// loadAd()
})
}
恭喜您完成了OpenMediation Unity插件的集成。接下来需要做的工作:
参考广告单元在您的应用中集成激励视频、插屏、横幅广告。
评论
文章评论已关闭。