Unity3D使用腾讯广点通广告

Unity3D使用腾讯广点通广告

Unity3D使用腾讯广点通广告

发表于2018-04-28

评论0

5.4k浏览

目前,游戏开发平台有很多,本篇文章主要介绍Unity3d开发时如何给Android游戏加广点通广告。1.下载广点通SDK在 流量合作>我的媒体下>新建媒体 :即我们的APP创建适合你游戏/app的广告位。广告位类型主要有:Banner(广告条)、插屏、开屏、应用墙,这个需要根据自己的游戏自行选择,如下图:然后下载SDK:2. 新建Android项目2.1打开eclipse,新建一个android项目,如下图:包名很重要,请务必改为自己游戏的包名,一般包名的格式为:com.xxx.yyy“xxx”一般指公司名简写或团队名,“yyy”一般指项目代号,可以和项目名称(Application Name)不一样2.2打开AndroidManifest.xml,拷贝以下内容到咱们新建项目的AndroidManifest.xml中:

android:allowBackup="true"

android:icon="@drawable/icon"

android:label="@string/app_name"

>

android:name="android.support.v4.content.FileProvider"

android:authorities="com.gdttest.gdt.fileprovider"

android:exported="false"

android:grantUriPermissions="true">

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/gdt_file_path" />

android:name="com.qq.e.comm.DownloadService"

android:exported="false"/>

android:name="com.qq.e.ads.ADActivity"

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>

android:name=".MainActivity"

android:label="@string/app_name"

android:screenOrientation="portrait"

android:configChanges="keyboard|orientation|keyboardHidden|screenSize|screenLayout"

>

2.3 将广点通res文件下的xml文件拷贝到自己的项目包下:2.4将广点通代码中的Constants.java文件拷贝到自己项目的包里面,将APPId与广告位Id分别替换成自己在广点通网站上申请的媒体Id和广告位Id,在测试的时候就用广点通Demo 的ID,自己申请的只有审核通过才会显示:

public class Constants {

//public static final String APPID = "1101152570"; //测试用

//public static final String BannerPosID = "9079537218417626401"; //测试用

public static final String APPID = "自己的媒体Id";

public static final String BannerPosID = "自己的广告条Id";

2.5将广点通Demo代码中lib下的GDTUnionSDK.4.15.559.min.jar包,拷贝到自己项目的lib下。另外,还需要导入 Unity3d的classes.jar文件 ,该Jar文件可在 Unity3d安装目录/Editor/Data/PlaybackEngines/AndroidPlayer/Variations/mono or il2cpp/Development or Release/Classes 路径下找到,自己项目的lib下,如下图:右键选中这两个包,选择Build Path–》Add to Build Path,将这两个包加到引用里,这样咱们的代码就可以加广点通的广告,以及与Unity3d通讯了。2.6打开MainActivity.java,添加与Unity3d的通信接口,以及Unity3d调用广告的方法:

import com.qq.e.ads.banner.ADSize;

import com.qq.e.ads.banner.AbstractBannerADListener;

import com.qq.e.ads.banner.BannerView;

import com.qq.e.comm.util.AdError;

import com.unity3d.player.UnityPlayerActivity;

import android.app.Activity;

import android.content.Context;

import android.os.Bundle;

import android.os.Handler;

import android.os.Looper;

import android.os.Message;

import android.util.Log;

import android.view.Gravity;

import android.view.Menu;

import android.view.MenuItem;

import android.view.WindowManager;

public class MainActivity extends UnityPlayerActivity {

private final static int SHOW_BANNER_AD = 103;

private final static int HIDE_BANNER_AD = 105;

private static Handler sHandler;

private BannerView bannerAD;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

initHandler();

private void initHandler() {

sHandler = new Handler() {

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

switch (msg.what) {

case SHOW_BANNER_AD:

internalShowBannerAd();

break;

case HIDE_BANNER_AD:

internalHideBannerAd();

break;

default:

break;

};

private void internalShowBannerAd() {

try{

this.bannerAD = new BannerView(this, ADSize.BANNER, Constants.APPID, Constants.BannerPosID);

bannerAD.setRefresh(15);

this.bannerAD.setADListener(new AbstractBannerADListener() {

@Override

public void onADReceiv() {

// TODO Auto-generated method stub

@Override

public void onNoAD(AdError error) {

);

WindowManager mWindowManager = (WindowManager) MainActivity.this.getSystemService(Context.WINDOW_SERVICE);

WindowManager.LayoutParams mWmParams = new WindowManager.LayoutParams();

mWmParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;

mWmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;

mWmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;

mWmParams.alpha = 1.0F;

mWmParams.format = 1;

mWmParams.gravity = Gravity.BOTTOM|Gravity.CENTER;

mWindowManager.addView(bannerAD, mWmParams);

bannerAD.loadAD();

}catch(Exception ex){

private void internalHideBannerAd()

if(bannerAD!=null)

bannerAD.destroy();

public void hideBannerAd()

sendMsgToHandler(HIDE_BANNER_AD);

public void showBannerAd() {

sendMsgToHandler(SHOW_BANNER_AD);

private synchronized void sendMsgToHandler(int type) {

Message msg = sHandler.obtainMessage();

msg.what = type;

msg.sendToTarget();

3.将Android项目作为资源导出—-》先选中咱们的Android项目—-》选择project–》Clean—-》再选择project–》Build Project(注意:做以上两步操作时,请取消掉Build Automatically的勾选状态)—-》选择Window>Preferences>General>Wordspace ,修改Text file encoding 为UTF-8,如下图:进入到咱们的Android项目目录下的bin/classes, 新建名称为BuildJar.txt文件,添加 jar cvf gdt.jar ./com ,保存后修改后缀名为。cmd格式的文件。删除BuildConfig.class和R开头的文件。删除前:删除后:然后双击BuildJar.cmd文件,生成我们需要的Jar文件。4.Unity3d导入Android项目资源5.Unity3d调用Android项目资源实现广告修改unity 配置:Package Name 修改为Android 包名修改屏幕方向:来自:https://blog.csdn.net/u010812661/article/details/79426153

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签:

AndroidJavaScriptXMLUnity接口Mono

相关文章

元宵特辑│吉妈话青铜之 銮铃
欧服《ARGO》账号注册图文教程
萌兔二次元论坛

萌兔二次元论坛

2025-07-23 阅读 4803