Unity开发抖音小游戏广告部分接入

Unity开发抖音小游戏广告部分接入

介绍

最近在使用Unity做抖音小游戏这块的内容,因为要接入广告,所以这里我把我接入广告的部分代码和经验分享一下。

环境确保

根据抖音官方的文档我们是先需要安装BGDT这个支持插件

安装好之后如下打开开发者工具

需要再安装对应版本的Start SDK这个是广告sdk(其他我下载的大家也可以参考一下)

开通流量主获取广告位

打开抖音开放平台的控制台找到商业化中的流量主,这里通常是未开放的需要自己打开流量主(这里很快)

创建广告位,这里可以根据自己的需要去创建(激励视频、插屏广告、Banner广告)。创建完成之后会提供广告位ID。

广告部分代码

管理脚本

csharp 复制代码
using UnityEngine;
using StarkSDKSpace;
using static StarkSDKSpace.StarkAdManager;

public delegate void OnVideoAdCloseCallBack();
public delegate void OnVideoAdErrorCallBack();

public class AdClass : VideoAdCallback
{
    public void OnError(int errCode, string errorMessage)
    {
        Debug.LogError("播放错误");
    }

    public void OnVideoClose(int watchedTime, int effectiveTime, int duration)
    {
        Debug.LogError("视频关闭 看了多久 = " + watchedTime);
    }

    public void OnVideoLoaded()
    {
        Debug.LogError("视频加载完毕");
    }

    public void OnVideoShow(long timestamp)
    {
        Debug.LogError("开始展示视频");
    }
}

public class ByteGameAdManager : MonoBehaviour
{
    private static ByteGameAdManager _instance;

    private AdClass adc;

    public static ByteGameAdManager Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new GameObject("ByteGameAdManager").AddComponent<ByteGameAdManager>();
                DontDestroyOnLoad(_instance.gameObject);
            }

            return _instance;
        }
    }

    private StarkAdManager starkAdManager;


    //public const string LevelComplete_Video_Id = "mi5ag76n0bg4506577";
    //public const string Back_Interstitial_Video_Id = "2efdh3aelb10i0q2ie";
    //public const string Resume_Interstitial_Video_Id = "9e953k528dj5ljkcef";
    //public const string Game_Banner_Id = "4f08ml2f1a81vsqvbg";

    private void Awake()
    {
        _instance = this;
        DontDestroyOnLoad(_instance.gameObject);

		//这个是为了在开发工具中方便测试所以需要打开这里
        if (Application.isEditor)
            MockSetting.OpenAllMockModule();
        starkAdManager = StarkSDK.API.GetStarkAdManager();
        adc = new AdClass();
    }

    /// <summary>
    /// 播放激励视频广告
    /// </summary>
    /// <param name="adId"></param>
    /// <param name="closeCallBack"></param>
    /// <param name="errorCallBack"></param>
    public void ShowVideoAd(string adId, System.Action<bool> closeCallBack, System.Action<int, string> errorCallBack)
    {
        if (starkAdManager != null)
        {
            starkAdManager.ShowVideoAdWithId(adId, closeCallBack, errorCallBack);
        }
    }

    /// <summary>
    /// 播放插屏广告
    /// </summary>
    /// <param name="adId"></param>
    /// <param name="errorCallBack"></param>
    /// <param name="closeCallBack"></param>
    public void ShowInterstitialAd(string adId, System.Action<int, string> errorCallBack, System.Action closeCallBack)
    {
        if (starkAdManager != null)
            starkAdManager.CreateInterstitialAd(adId, errorCallBack, closeCallBack);
    }
}

测试脚本

csharp 复制代码
 if (ByteGameAdManager.Instance != null) 
        {
            //这里需要开通流量主获取广告位ID
            ByteGameAdManager.Instance.ShowVideoAd("5egc7tjx9774ad0il0",
            (bol) => {
                Debug.LogError("关闭广告 ,是否已经看完" + bol);
            },
            (it,str) => {
                Debug.LogError("错误警告Error");
            });
        }

测试如下

编辑器下如下图所示(根据自己的点击获得反馈)

正常发布版本之后抖音上是正常看到的广告。

总结

上述是我对抖音小游戏广告部分的整理和经验分享,感谢大家的支持。

相关推荐
AT~14 小时前
unity 使用Socket和protobuf实现网络连接
unity·游戏引擎
怣疯knight21 小时前
Cocos creator判断节点是否能用的方法
unity·cocos2d
tealcwu21 小时前
Google Play的Keystore不可用时的解决方法
unity
呼呼突突21 小时前
Unity使用TouchSocket的RPC
unity·rpc·游戏引擎
qq 180809511 天前
从零构建一个多目标多传感器融合跟踪器
unity
平行云2 天前
实时云渲染支持在网页上运行UE5开发的3A大作Lyra项目
unity·云原生·ue5·webgl·虚拟现实·实时云渲染·像素流送
鹏飞于天2 天前
Shader compiler initialization error: Failed to read D3DCompiler DLL file
unity
wonder135792 天前
UGUI重建流程和优化
unity·游戏开发·ugui
那个村的李富贵2 天前
Unity打包Webgl后 本地运行测试
unity·webgl
nnsix2 天前
Unity OpenXR开发HTC Vive Cosmos
unity·游戏引擎