Unity接入TopOn
注意:该文档以Unity2019为例。
1.下载SDK
进入官方文档:集成说明 - TopOn Document (toponad.com)
如上图来到3.1 。 点击SDK打包系统
目前集成国外版, 选择否。如上图
选择需要的广告平台。如上图
点击Integrate , 点击下载。
解压文件,获得这几个包。可以看到各个广告的适配包和topon核心包AnyThinkCore。
2.Unity集成TopOn
(1)将SDK导入Unity
将这几个包一个个拖入项目Assets文件夹下。如上图
托如核心包会出现上图页面。 点击Add Selected Registries
点击 Apply。
最终结果图。
(2)集成
注意:设置当前平台为android,如上图。
勾选后可看到下图两个文件。
launcherTemplate.gradle需增加以下配置:
android {
......
defaultConfig {
applicationId '**APPLICATIONID**'
......
versionCode **VERSIONCODE**
versionName '**VERSIONNAME**'
multiDexEnabled true //添加此配置,是为了当代码行数超过64k的时候设置的
}
......
}
添加以下代码到如上图两个文件中
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
**BUILD_SCRIPT_DEPS**}
}
launcherTemplate 如上图 mainTemplate同理。
打开Preferences
设置Gradle版本。如图。 如果没有gradle-6.7.1 自行百度下载。
设置SDK版本如下图。
按照下图,生成LauncherManifest.xml文件。
注意:复制以下代码到生成后的LauncherManifest.xml。
<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="preferExternal">
<!--必须要有的权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<application android:label="@string/app_name"
android:icon="@mipmap/app_icon"
tools:replace="android:networkSecurityConfig"
android:networkSecurityConfig="@xml/network_security_config_unity">
<!--这个设置主要是为了适配9.0以上的机器(必须使用)-->
<uses-library android:name="org.apache.http.legacy" android:required="false" />
</application>
</manifest>
在Assets/Plugins/Android/res/xml目录下创建network_security_config_unity.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>v5.7.2之前的版本可跳过此步骤。从v5.7.2开始,如果有聚合了Admob,则必须在LauncherManifest.xml中额外添加以下配置(value值需配置Admob后台创建的应用的ID):
<manifest>
<application>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
按照下图,生成gradleTemplate.properties文件。
注意:针对生成后的gradleTemplate.properties需增加以下配置:
org.gradle.jvmargs=-XmxJVM_HEAP_SIZEM
org.gradle.parallel=trueADDITIONAL_PROPERTIES
//添加以下配置
android.enableJetifier=true
android.useAndroidX=true
依赖解析
从v5.6.5版本开始调整了广告平台SDK的依赖引入方式,请根据以下步骤进行操作:
确保已经生成mainTemplate.gradle文件
勾选 Patch mainTemplate.gradle 选项(Unity 菜单栏:Assets → External Dependency Manager → Android Resolver → Settings)
开始解析依赖(Unity 菜单栏:Assets → External Dependency Manager → Android Resolver → Resolve),解析成功后将在mainTemplate.gradle文件中引入依赖。如果解析后没有任何反应,请尝试点击 “Force Resolve” 进行重试
3.调用广告
新建MainScenes脚本,该脚本用来初始化topon广告。代码如下:
其中APPKEY 和 APPKID 需要改成自己广告的
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using AnyThinkAds.Api;
using UnityEngine.UI;
using System;
/// <summary>
/// 初始化TopOn
/// </summary>
public class MainScenes : MonoBehaviour {
private string APPKEY = "对应KEY";
private string APPKID = "对应ID";
//private interstitialScenes intersScene;
[NonSerialized]
public vidoeScenes vidSce;
[NonSerialized]
public interstitialScenes intSce;
[NonSerialized]
public bannerScenes banSce;
public static MainScenes instance;
void Awake (