Unity插件集成

开始之前

  • 我们支持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,MoPub和ironSource。

 

步骤 1. 将 OpenMediation Unity Package 添加到您的项目中

请按照以下步骤将OpenMediation Unity软件包添加到您的项目中:

  1. 下载OpenMediation Unity Plugin
  2. 下载OpenMediation Unity Plugin Demo
  3. 打开Unity项目
  4. 导入Unity Package
  • 依次点击 Assets -> Import Package -> Custom Package.

WechatIMG23.png

  • 选中 OpenMediationUnity_vx.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的冲突问题

WechatIMG192.png

注意!Unity 集成管理工具中显示的版本号不是iOS/Android 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

注意!如果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

  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

OpenMediation 自动初始化配置(可选)

如果您想在项目中实现自动初始化 OpenMediation SDK,您需要在 OpenMediation 一栏的下拉框中,勾选 Automatic Initialization 设置并填入您项目的AppKey,您可以在 OpenMediation 前台界面中找到您的应用 AppKey。

WechatIMG191.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(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'键。

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 requestUserIDFA() { ATTrackingManager.requestTrackingAuthorization(completionHandler: {status in // Tracking authorization completed. Start loading ads here.
// loadAd()
})
}

 

恭喜您完成了OpenMediation Unity插件的集成。接下来需要做的工作:

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

 

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

评论

0 条评论

文章评论已关闭。