开始之前
- 我们支持Unity 2019.4及以上版本。
- 我们支持Android操作系统版本4.1(API级别16)及更高版本。
- 我们支持XCode 9.0及更高版本以及CocoaPods。
- 我们建议您创建一个OpenMediation帐户并注册一个Android和iOS应用。
注意!从 Android OpenMediation v2.3.1 开始,我们对广告API进行了调整,详情请参考 Android OM v2.3.1 API 变更, 您需要使用 Unity Plugin v2.1.3 及以上版本。
您应在iOS或Android设备上测试您的广告集成。
总览
本指南适用于使用Unity引擎编写应用并获利的发布商。
OpenMediation SaaS 聚合平台提供多样化且有效的货币化服务,并支持多种广告格式,包括原生广告,非页内广告,横幅广告和激励性视频广告。 OpenMediation平台可聚合AdTiming,AdMob,Facebook,UnityAds,Vungle,Tapjoy,AppLovin,AdColony,Chartboost,Pangle,Mintegral 和ironSource。
步骤 1. 将 OpenMediation Unity Package 添加到您的项目中
请按照以下步骤将OpenMediation Unity软件包添加到您的项目中:
- 下载OpenMediation Unity Plugin
- 下载OpenMediation Unity Plugin (Unity 2021及以上版本)
- 下载OpenMediation Unity Plugin Demo
- 打开Unity项目
- 导入Unity Package
- 依次点击 Assets -> Import Package -> Custom Package.
- 选中 OpenMediationUnity_vx.x.x.unitypackage 文件。
步骤 2.Unity 集成管理工具
OpenMediation Unity集成管理工具基于Google External Dependency Manager,它将使您能够直接从Unity开发平台下载最新版本的OpenMediation SDK和聚合适配器。
注意! 如果您的Android应用同时接入了AppsFlyer和Vungle的SDK,编译时会提示冲突,如何解决请参考:处理AppsFlyer和Vungle的冲突问题。
注意!Unity 集成管理工具中显示的版本号不是iOS/Android 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
注意!如果Manager 下载的Android SDK版本与dependency xml中声明的不一致,请使用Custom Main Gradle Template 解决。File → Build Settings → Player Settings → Publishing Settings 勾选Custom Main Gradle Template。
如果您启用 “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。
OpenMediation 自动初始化配置(可选)
如果您想在项目中实现自动初始化 OpenMediation SDK,您需要在 OpenMediation 一栏的下拉框中,勾选 Automatic Initialization 设置并填入您项目的AppKey,您可以在 OpenMediation 前台界面中找到您的应用 AppKey。
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(OmImpressionData 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 requestUserIDFA() {
ATTrackingManager.requestTrackingAuthorization(completionHandler: {status in
// Tracking authorization completed. Start loading ads here.
// loadAd()
})
}
Unity环境中直接设置App Tracking Transparency:针对Unity versions 2019.1 or later,我们提供了参考接入流程,具体请参考这里。
步骤1:选中Window—>Package Manager,打开Package Manager管理器。
步骤2:在Package Manager页面中,点击Packages下拉框,选择Unity Registry。
步骤3:在Package Manager页面中,搜索框搜索关键字"iOS",可以看到左侧列表出现iOS 14 Advertising Support Package,再点击右下角的"install"按钮,来下载此Package。
步骤4:紧接步骤3,Install之后,点击"Import",将此iOS 14 Advertising Support Package导入自己的Unity工程。
步骤5:导入成功后,可以看到Assets和Packages目录中皆存在iOS 14 Advertising Support,则视为集成完毕。
步骤6:在Unity与iOS交互文件中,添加Unity原生代码即可。
评论
文章评论已关闭。