Unity插件集成

开始之前

  • 我们支持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软件包添加到您的项目中:

  1. 下载OpenMediation Unity Plugin
  2. 下载OpenMediation Unity Plugin Demo
  3. 打开Unity项目
  • OpenMediation SDK设计用于Android和iOS平台。Unity编辑器包含一个与Unity代码一起使用的模拟器。为了使用我们的插件,您必须以Android或iOS版本为目标来测试集成。
  1. 导入Unity Package
  • Navigate to Assets -> Import Package -> Custom Package.

WechatIMG23.png

  • 选中 OMUnityPlugin(x.x.x).unitypackage 文件。
  • 导入所有文件,并确保避免与文件冲突。 (双击解压后的文件; 不同的文件将自动填充,如下所示) 。

om-unity-plugin-import_1.png

 

步骤 2.Unity 集成管理工具

OpenMediation Unity集成管理工具基于Google External Dependency Manager ,它将使您能够直接从Unity开发平台下载最新版本的OpenMediation SDK和聚合适配器。

注意! 如果您的Android应用同时接入了Appsflyer和Vungle的SDK,编译时会提示冲突,如何解决请参考:处理AppsFlyer和Vungle的冲突问题

om-unity-manager-ui.png

注意:Unity 集成管理工具中显示的Adapter版本号不是iOS/安卓OpenMediation***Adapter版本号。

 

管理SDK版本

导入Unity package之后,您将可以在Unity菜单栏中查看OpenMediation子菜单

om-unity-inte-manager.png

更新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

  1. 打开Android  Resolver 设置面板Assets → External Dependency Manager → Android  Resolver → Settings 
  2. 选择 “Patch mainTemplate.gradle”
  3. 点击 “OK” 保存修改

unityGradleTemplateSettings.png

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。

UnityiOSSetting.png

Info.plist 配置(可选)

如果您使用 Unity 集成管理工具添加了 AdMob SDK,您需要在AdMob一栏的下拉框中,添加一个字符串值为您的 AdMob 应用 ID 的 GADApplicationIdentifier。您可以在 AdMob 界面中找到您的应用 ID。

om-unity-admob-id.png

注意:请务必使用您的实际 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'键。

attinfo.png

  • 要显示授权请求,请调用'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插件的集成。接下来需要做的工作:

参考广告单元在您的应用中集成激励视频、插屏、横幅广告。

 

这篇文章有帮助吗?
4 人中有 4 人觉得有帮助

评论

0 条评论

文章评论已关闭。