Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
Out
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xjl
Out
Commits
3c680c94
Commit
3c680c94
authored
Dec 01, 2023
by
xujialang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
广告数据设置
parent
b34699a8
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
156 additions
and
98 deletions
+156
-98
README.md
README.md
+23
-18
OutHelp.java
app/src/main/java/com/zl/sdk/OutHelp.java
+17
-0
AdDataManager.java
app/src/main/java/com/zl/sdk/ad/AdDataManager.java
+79
-3
TopOnAdLoadManager.java
app/src/main/java/com/zl/sdk/ad/TopOnAdLoadManager.java
+2
-0
IconHelp.java
app/src/main/java/com/zl/sdk/icon/IconHelp.java
+0
-2
OutAdManager.java
app/src/main/java/com/zl/sdk/out/OutAdManager.java
+35
-75
No files found.
README.md
View file @
3c680c94
# Out
OutHelp
#
OutHelp
init:初始化,初始化保活/广告SDK/Icon状态
@param context 上下文
@param appInfo topon应用信息
@param isDebug 开启调试
##
init:初始化,初始化保活/广告SDK/Icon状态
###
@param context 上下文
###
@param appInfo topon应用信息
###
@param isDebug 开启调试
setIconStateCallBack:icon状态监听 显示或者隐藏
## setIconStateCallBack:icon状态监听 显示或者隐藏
### 隐藏icon后的页面删除和通知栏删除操作,需在外部自行处理
showOutAd:播放外展广告(场景触发)
@param targetClass 目标页
@param actionFrom 场景标识
@param callback 结果回调
##
showOutAd:播放外展广告(场景触发)
###
@param targetClass 目标页
###
@param actionFrom 场景标识
###
@param callback 结果回调
showOutAd:播放外展广告(轮询)
@param targetClass 目标页
@param isFirst 是否第一次检查
@param callback 结果回调
##
showOutAd:播放外展广告(轮询)
###
@param targetClass 目标页
###
@param isFirst 是否第一次检查
###
@param callback 结果回调
hideIcon:隐藏icon
@param componentName 启动页完整路径
##
hideIcon:隐藏icon
###
@param componentName 启动页完整路径
showIcon:显示icon
@param componentName 启动页完整路径
## showIcon:显示icon
### @param componentName 启动页完整路径
## setAdDataMap:设置广告数据
### @param map 线上配置广告信息
### @param defaultData 本地默认广告信息
app/src/main/java/com/zl/sdk/OutHelp.java
View file @
3c680c94
...
...
@@ -6,8 +6,10 @@ import android.content.Intent;
import
androidx.annotation.Keep
;
import
com.zl.sdk.ad.AdDataManager
;
import
com.zl.sdk.bean.AdAppInfo
;
import
com.zl.sdk.ad.topOn.TopOnAdManager
;
import
com.zl.sdk.bean.WeatherAdData
;
import
com.zl.sdk.icon.IcOptManager
;
import
com.zl.sdk.icon.IconHelp
;
import
com.zl.sdk.icon.IconStateCallBack
;
...
...
@@ -16,6 +18,9 @@ import com.zl.sdk.out.ActionFrom;
import
com.zl.sdk.out.DialogShowStatusCallback
;
import
com.zl.sdk.out.OutAdManager
;
import
java.util.ArrayList
;
import
java.util.Map
;
@Keep
public
final
class
OutHelp
{
private
OutHelp
()
{
...
...
@@ -115,6 +120,18 @@ public final class OutHelp {
}
/**
* 设置广告数据
*
* @param map 线上配置广告信息
* @param defaultData 本地默认广告信息
*/
public
void
setAdDataMap
(
Map
<
Integer
,
ArrayList
<
WeatherAdData
.
NormalAdData
>>
map
,
WeatherAdData
.
NormalAdData
defaultData
)
{
AdDataManager
.
get
().
setAdDataMap
(
map
);
AdDataManager
.
get
().
setDefaultData
(
defaultData
);
}
public
Context
getContext
()
{
return
mContext
;
}
...
...
app/src/main/java/com/zl/sdk/ad/AdDataManager.java
View file @
3c680c94
...
...
@@ -27,32 +27,108 @@ public class AdDataManager {
private
Map
<
Integer
,
ArrayList
<
WeatherAdData
.
NormalAdData
>>
adDataMap
=
new
HashMap
();
private
WeatherAdData
.
NormalAdData
defaultData
=
null
;
public
void
setAdDataMap
(
Map
<
Integer
,
ArrayList
<
WeatherAdData
.
NormalAdData
>>
adDataMap
)
{
this
.
adDataMap
=
adDataMap
;
}
public
void
setDefaultData
(
WeatherAdData
.
NormalAdData
defaultData
)
{
this
.
defaultData
=
defaultData
;
}
public
WeatherAdData
.
NormalAdData
getDefaultData
()
{
return
defaultData
;
}
public
ArrayList
<
WeatherAdData
.
NormalAdData
>
getOutAdData
(
int
position
,
String
cpName
)
{
ArrayList
<
WeatherAdData
.
NormalAdData
>
cpNameList
=
new
ArrayList
<>();
if
(
adDataMap
==
null
||
adDataMap
.
isEmpty
())
{
LogUtil
.
d
(
TAG
+
"getOutAdData adDataMap empty"
);
return
cpNameList
;
}
if
(
TextUtils
.
isEmpty
(
cpName
))
{
LogUtil
.
d
(
TAG
+
"getOutAdData cpName empty"
);
return
cpNameList
;
}
ArrayList
<
WeatherAdData
.
NormalAdData
>
list
=
adDataMap
.
get
(
position
);
if
(
list
==
null
)
{
LogUtil
.
d
(
TAG
,
"getOutAdData list empty position ="
+
position
);
LogUtil
.
d
(
TAG
+
"getOutAdData list empty position ="
+
position
);
return
cpNameList
;
}
for
(
WeatherAdData
.
NormalAdData
data
:
list
)
{
LogUtil
.
d
(
TAG
+
"getOutAdData data.cpAdtype ="
+
data
.
cpAdtype
+
" ,cpName :"
+
cpName
+
",,,"
+
data
.
cpName
);
if
(
cpName
.
equalsIgnoreCase
(
data
.
cpName
))
{
//TODO 去掉原生数据
if
(
CP_AD_TYPE_CHAPING
.
equals
(
data
.
cpAdtype
))
{
cpNameList
.
add
(
data
);
}
}
}
LogUtil
.
d
(
TAG
,
"getOutAdData list size ="
+
cpNameList
.
size
());
LogUtil
.
d
(
TAG
+
"getOutAdData list size ="
+
cpNameList
.
size
());
return
cpNameList
;
}
/**
* 获取展示的广告信息
*
* @return
*/
public
WeatherAdData
.
NormalAdData
getShowAdData
()
{
try
{
WeatherAdData
.
NormalAdData
adData
=
null
;
ArrayList
<
WeatherAdData
.
NormalAdData
>
list
=
AdDataManager
.
get
().
getOutAdData
(
WeatherAdData
.
POSITION_HOME
,
WeatherAdData
.
CP_AD_TOPON
);
int
size
=
list
.
size
();
if
(
size
>
0
)
{
//TODO 去掉原生数据
/* Random random = new Random();
final int index = random.nextInt(size);
try {
adData = list.get(index);
} catch (Exception ignored) {
}*/
adData
=
list
.
get
(
0
);
}
if
(
adData
==
null
)
{
// adData = new WeatherAdData.NormalAdData();
// adData.cpName = WeatherAdData.CP_AD_TOPON;
// adData.cpAdtype = WeatherAdData.CP_AD_TYPE_CHAPING;
// adData.position = WeatherAdData.POSITION_HOME;
// adData.cpAppid = "a654e2fe6de6d6";
// adData.cpAdslot = "b1f5i60t92g4gq";//cp:b1f5eocpkk4pq8 native:b1f5eocpkk4f3f release cp:b1f5i60t92g4gq
// adData.showCount = 5;
// adData.showTimes = 5;
// adData.interval = 30 * 60;//30分钟 未隐藏icon
// adData.intervalHide = 10 * 60;//10分钟 隐藏icon
// adData.showTimesHideForAdId = 30;
// adData.showTimeHide = 30;
// adData.moment = 8;
// adData.modeAd = 3;
// adData.modeContent = 3;
// adData.showTop = 10;
// adData.showMid = 10;
// adData.showBottom = 10;
adData
=
getDefaultData
();
LogUtil
.
d
(
TAG
,
"getAdData adData(test) ="
+
adData
);
}
else
{
LogUtil
.
d
(
TAG
,
"getAdData adData(release) ="
+
adData
);
}
return
adData
;
}
catch
(
Exception
e
)
{
LogUtil
.
d
(
TAG
,
"getAppOutAdData e ="
+
e
);
}
return
null
;
}
}
app/src/main/java/com/zl/sdk/ad/TopOnAdLoadManager.java
View file @
3c680c94
...
...
@@ -55,6 +55,8 @@ public final class TopOnAdLoadManager {
callInterstitialAdLoaded
();
OutAdManager
.
get
().
cleanLoadAdFailTime
();
//只要有广告加载成功就去走播放逻辑
new
Handler
().
postDelayed
(()
->
{
//加载成功,调用播放纯广告逻辑
...
...
app/src/main/java/com/zl/sdk/icon/IconHelp.java
View file @
3c680c94
...
...
@@ -7,9 +7,7 @@ import android.text.TextUtils;
import
com.zl.sdk.OutHelp
;
import
com.zl.sdk.bean.IconAdConfig
;
import
com.zl.sdk.bean.IconOpt
;
import
com.zl.sdk.event.EventUtils
;
import
com.zl.sdk.event.statistics.Statistics
;
import
com.zl.sdk.out.SLKManager
;
import
com.zl.sdk.util.LogUtil
;
import
com.zl.sdk.util.SPUtils
;
...
...
app/src/main/java/com/zl/sdk/out/OutAdManager.java
View file @
3c680c94
...
...
@@ -50,14 +50,13 @@ public class OutAdManager extends BaseOutShowManager {
private
volatile
boolean
hadStartAdDialogFail
=
false
;
public
void
cleanLoadAdFailTime
()
{
showAdFailTimes
=
0
;
}
@Override
WeatherAdData
.
NormalAdData
getAdData
()
{
try
{
return
getHomeAdData
();
}
catch
(
Exception
e
)
{
LogUtil
.
d
(
TAG
,
"getAppOutAdData e ="
+
e
);
}
return
null
;
return
AdDataManager
.
get
().
getShowAdData
();
}
...
...
@@ -79,6 +78,7 @@ public class OutAdManager extends BaseOutShowManager {
@Override
boolean
checkCanShowForActionState
(
WeatherAdData
.
NormalAdData
adData
,
int
actionState
)
{
if
(
adData
==
null
)
{
LogUtil
.
d
(
TAG
+
"能否播放(广告信息) :广告信息为空 false"
);
return
false
;
}
...
...
@@ -161,6 +161,7 @@ public class OutAdManager extends BaseOutShowManager {
}
WeatherAdData
.
NormalAdData
adData
=
getAdData
();
if
(
adData
==
null
)
{
LogUtil
.
d
(
TAG
);
LogUtil
.
d
(
TAG
+
">>>轮询检查<<< 是否需要展示广告 =============>>> END 广告信息为空 不播放"
);
...
...
@@ -187,14 +188,15 @@ public class OutAdManager extends BaseOutShowManager {
LogUtil
.
d
(
TAG
);
LogUtil
.
d
(
TAG
+
">>>轮询检查<<< 是否需要展示广告 =============>>> END 未达到间隔时间 不播放"
);
LogUtil
.
d
(
TAG
);
Statistics
.
getInstance
().
dotEvent
(
"lx_fail"
);
}
else
{
LogUtil
.
d
(
TAG
);
LogUtil
.
d
(
TAG
+
">>>轮询检查<<< 是否需要展示广告 =============>>> END 达到间隔时间 播放"
);
LogUtil
.
d
(
TAG
);
showAdFailTimes
=
0
;
startShowOutAd
(
ActionFrom
.
ACTION_TIMER
);
// OutShowManager.get().onlyShowAd(Config.ACTION_UNKNOWN
);
Statistics
.
getInstance
().
dotEvent
(
"lx_success"
);
}
}
...
...
@@ -217,7 +219,8 @@ public class OutAdManager extends BaseOutShowManager {
returnFailCallBack
();
showAdFailTimes
=
0
;
cleanLoadAdFailTime
();
AppOutSP
.
saveHomeLastShowTime
(
System
.
currentTimeMillis
());
}
}
...
...
@@ -248,9 +251,11 @@ public class OutAdManager extends BaseOutShowManager {
Statistics
.
getInstance
().
dotEvent
(
OutHelp
.
get
().
getContext
(),
EventUtils
.
OUT_AD_START
,
""
,
map
);
WeatherAdData
.
NormalAdData
adData
=
getAdData
();
LogUtil
.
d
(
TAG
);
LogUtil
.
d
(
TAG
+
">>>播放广告<<< =============>>> start"
);
LogUtil
.
d
(
TAG
);
if
(
checkCanShowForActionState
(
adData
,
actionFrom
.
getAction
()))
{
LogUtil
.
d
(
TAG
);
LogUtil
.
d
(
TAG
+
">>>播放广告<<< ============>>> END 检查通过 开始启动SLK"
);
...
...
@@ -420,6 +425,7 @@ public class OutAdManager extends BaseOutShowManager {
LogUtil
.
d
(
TAG
);
WeatherAdData
.
NormalAdData
localData
=
getAdData
();
if
(
localData
!=
null
&&
CheckHelper
.
checkCanShowAdByTimesFromAdData
(
localData
,
-
1
)
&&
!
CheckHelper
.
checkAdReady
(
localData
))
{
...
...
@@ -433,10 +439,10 @@ public class OutAdManager extends BaseOutShowManager {
LogUtil
.
d
(
TAG
);
returnFailCallBack
();
}
return
;
}
WeatherAdData
.
NormalAdData
preLoadData
;
for
(
int
i
=
0
;
i
<
size
;
i
++)
{
preLoadData
=
list
.
get
(
i
);
...
...
@@ -492,71 +498,25 @@ public class OutAdManager extends BaseOutShowManager {
}
private
WeatherAdData
.
NormalAdData
getHomeAdData
()
{
WeatherAdData
.
NormalAdData
adData
=
null
;
ArrayList
<
WeatherAdData
.
NormalAdData
>
list
=
AdDataManager
.
get
().
getOutAdData
(
WeatherAdData
.
POSITION_HOME
,
WeatherAdData
.
CP_AD_TOPON
);
int
size
=
list
.
size
();
if
(
size
>
0
)
{
//TODO 去掉原生数据
/* Random random = new Random();
final int index = random.nextInt(size);
try {
adData = list.get(index);
} catch (Exception ignored) {
}*/
adData
=
list
.
get
(
0
);
}
if
(
adData
==
null
)
{
//local
adData
=
new
WeatherAdData
.
NormalAdData
();
adData
.
cpName
=
WeatherAdData
.
CP_AD_TOPON
;
adData
.
cpAdtype
=
WeatherAdData
.
CP_AD_TYPE_CHAPING
;
adData
.
position
=
WeatherAdData
.
POSITION_HOME
;
adData
.
cpAppid
=
"a654e2fe6de6d6"
;
adData
.
cpAdslot
=
"b1f5i60t92g4gq"
;
//cp:b1f5eocpkk4pq8 native:b1f5eocpkk4f3f release cp:b1f5i60t92g4gq
adData
.
showCount
=
5
;
adData
.
showTimes
=
5
;
adData
.
interval
=
30
*
60
;
//30分钟 未隐藏icon
adData
.
intervalHide
=
10
*
60
;
//10分钟 隐藏icon
adData
.
showTimesHideForAdId
=
30
;
adData
.
showTimeHide
=
30
;
adData
.
moment
=
8
;
adData
.
modeAd
=
3
;
adData
.
modeContent
=
3
;
adData
.
showTop
=
10
;
adData
.
showMid
=
10
;
adData
.
showBottom
=
10
;
LogUtil
.
d
(
TAG
,
"getAdData adData(test) ="
+
adData
);
}
else
{
LogUtil
.
d
(
TAG
,
"getAdData adData(release) ="
+
adData
);
}
return
adData
;
}
private
WeatherAdData
.
NormalAdData
getNextAdData
(
String
currentCpAdType
)
{
ArrayList
<
WeatherAdData
.
NormalAdData
>
list
=
AdDataManager
.
get
().
getOutAdData
(
WeatherAdData
.
POSITION_HOME
,
WeatherAdData
.
CP_AD_TOPON
);
Iterator
iterator
=
list
.
iterator
();
while
(
iterator
.
hasNext
())
{
WeatherAdData
.
NormalAdData
data
=
(
WeatherAdData
.
NormalAdData
)
iterator
.
next
();
if
(
data
!=
null
&&
currentCpAdType
.
equals
(
data
.
cpAdtype
))
{
iterator
.
remove
();
}
}
LogUtil
.
d
(
TAG
,
"getNextHomeAdData adData size ="
+
list
.
size
());
WeatherAdData
.
NormalAdData
data
=
null
;
if
(
list
.
size
()
>
0
)
{
data
=
list
.
get
(
0
);
LogUtil
.
d
(
TAG
,
"getNextHomeAdData data ="
+
data
);
}
return
data
;
}
// private WeatherAdData.NormalAdData getNextAdData(String currentCpAdType) {
// ArrayList<WeatherAdData.NormalAdData> list = AdDataManager.get().getOutAdData(WeatherAdData.POSITION_HOME, WeatherAdData.CP_AD_TOPON);
// Iterator iterator = list.iterator();
// while (iterator.hasNext()) {
// WeatherAdData.NormalAdData data = (WeatherAdData.NormalAdData) iterator.next();
// if (data != null && currentCpAdType.equals(data.cpAdtype)) {
// iterator.remove();
// }
// }
//
// LogUtil.d(TAG, "getNextHomeAdData adData size =" + list.size());
//
// WeatherAdData.NormalAdData data = null;
// if (list.size() > 0) {
// data = list.get(0);
// LogUtil.d(TAG, "getNextHomeAdData data =" + data);
// }
// return data;
// }
public
void
showAdSuccess
(
WeatherAdData
.
NormalAdData
adData
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment