Commit 3c680c94 authored by xujialang's avatar xujialang

广告数据设置

parent b34699a8
# Out # Out
OutHelp # OutHelp
init:初始化,初始化保活/广告SDK/Icon状态 ## init:初始化,初始化保活/广告SDK/Icon状态
@param context 上下文 ### @param context 上下文
@param appInfo topon应用信息 ### @param appInfo topon应用信息
@param isDebug 开启调试 ### @param isDebug 开启调试
setIconStateCallBack:icon状态监听 显示或者隐藏 ## setIconStateCallBack:icon状态监听 显示或者隐藏
### 隐藏icon后的页面删除和通知栏删除操作,需在外部自行处理
showOutAd:播放外展广告(场景触发) ## showOutAd:播放外展广告(场景触发)
@param targetClass 目标页 ### @param targetClass 目标页
@param actionFrom 场景标识 ### @param actionFrom 场景标识
@param callback 结果回调 ### @param callback 结果回调
showOutAd:播放外展广告(轮询) ## showOutAd:播放外展广告(轮询)
@param targetClass 目标页 ### @param targetClass 目标页
@param isFirst 是否第一次检查 ### @param isFirst 是否第一次检查
@param callback 结果回调 ### @param callback 结果回调
hideIcon:隐藏icon ## hideIcon:隐藏icon
@param componentName 启动页完整路径 ### @param componentName 启动页完整路径
showIcon:显示icon ## showIcon:显示icon
@param componentName 启动页完整路径 ### @param componentName 启动页完整路径
## setAdDataMap:设置广告数据
### @param map 线上配置广告信息
### @param defaultData 本地默认广告信息
...@@ -6,8 +6,10 @@ import android.content.Intent; ...@@ -6,8 +6,10 @@ import android.content.Intent;
import androidx.annotation.Keep; import androidx.annotation.Keep;
import com.zl.sdk.ad.AdDataManager;
import com.zl.sdk.bean.AdAppInfo; import com.zl.sdk.bean.AdAppInfo;
import com.zl.sdk.ad.topOn.TopOnAdManager; import com.zl.sdk.ad.topOn.TopOnAdManager;
import com.zl.sdk.bean.WeatherAdData;
import com.zl.sdk.icon.IcOptManager; import com.zl.sdk.icon.IcOptManager;
import com.zl.sdk.icon.IconHelp; import com.zl.sdk.icon.IconHelp;
import com.zl.sdk.icon.IconStateCallBack; import com.zl.sdk.icon.IconStateCallBack;
...@@ -16,6 +18,9 @@ import com.zl.sdk.out.ActionFrom; ...@@ -16,6 +18,9 @@ import com.zl.sdk.out.ActionFrom;
import com.zl.sdk.out.DialogShowStatusCallback; import com.zl.sdk.out.DialogShowStatusCallback;
import com.zl.sdk.out.OutAdManager; import com.zl.sdk.out.OutAdManager;
import java.util.ArrayList;
import java.util.Map;
@Keep @Keep
public final class OutHelp { public final class OutHelp {
private OutHelp() { private OutHelp() {
...@@ -115,6 +120,18 @@ public final class 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() { public Context getContext() {
return mContext; return mContext;
} }
......
...@@ -27,32 +27,108 @@ public class AdDataManager { ...@@ -27,32 +27,108 @@ public class AdDataManager {
private Map<Integer, ArrayList<WeatherAdData.NormalAdData>> adDataMap = new HashMap(); private Map<Integer, ArrayList<WeatherAdData.NormalAdData>> adDataMap = new HashMap();
private WeatherAdData.NormalAdData defaultData = null;
public void setAdDataMap(Map<Integer, ArrayList<WeatherAdData.NormalAdData>> adDataMap) { public void setAdDataMap(Map<Integer, ArrayList<WeatherAdData.NormalAdData>> adDataMap) {
this.adDataMap = 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) { public ArrayList<WeatherAdData.NormalAdData> getOutAdData(int position, String cpName) {
ArrayList<WeatherAdData.NormalAdData> cpNameList = new ArrayList<>(); ArrayList<WeatherAdData.NormalAdData> cpNameList = new ArrayList<>();
if (adDataMap == null || adDataMap.isEmpty()) {
LogUtil.d(TAG + "getOutAdData adDataMap empty");
return cpNameList;
}
if (TextUtils.isEmpty(cpName)) { if (TextUtils.isEmpty(cpName)) {
LogUtil.d(TAG + "getOutAdData cpName empty"); LogUtil.d(TAG + "getOutAdData cpName empty");
return cpNameList; return cpNameList;
} }
ArrayList<WeatherAdData.NormalAdData> list = adDataMap.get(position); ArrayList<WeatherAdData.NormalAdData> list = adDataMap.get(position);
if (list == null) { if (list == null) {
LogUtil.d(TAG, "getOutAdData list empty position =" + position); LogUtil.d(TAG + "getOutAdData list empty position =" + position);
return cpNameList; return cpNameList;
} }
for (WeatherAdData.NormalAdData data : list) { for (WeatherAdData.NormalAdData data : list) {
LogUtil.d(TAG + "getOutAdData data.cpAdtype =" + data.cpAdtype + " ,cpName :" + cpName + ",,," + data.cpName); LogUtil.d(TAG + "getOutAdData data.cpAdtype =" + data.cpAdtype + " ,cpName :" + cpName + ",,," + data.cpName);
if (cpName.equalsIgnoreCase(data.cpName)) { if (cpName.equalsIgnoreCase(data.cpName)) {
//TODO 去掉原生数据
if (CP_AD_TYPE_CHAPING.equals(data.cpAdtype)) { if (CP_AD_TYPE_CHAPING.equals(data.cpAdtype)) {
cpNameList.add(data); cpNameList.add(data);
} }
} }
} }
LogUtil.d(TAG, "getOutAdData list size =" + cpNameList.size());
LogUtil.d(TAG + "getOutAdData list size =" + cpNameList.size());
return cpNameList; 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;
}
} }
...@@ -55,6 +55,8 @@ public final class TopOnAdLoadManager { ...@@ -55,6 +55,8 @@ public final class TopOnAdLoadManager {
callInterstitialAdLoaded(); callInterstitialAdLoaded();
OutAdManager.get().cleanLoadAdFailTime();
//只要有广告加载成功就去走播放逻辑 //只要有广告加载成功就去走播放逻辑
new Handler().postDelayed(() -> { new Handler().postDelayed(() -> {
//加载成功,调用播放纯广告逻辑 //加载成功,调用播放纯广告逻辑
......
...@@ -7,9 +7,7 @@ import android.text.TextUtils; ...@@ -7,9 +7,7 @@ import android.text.TextUtils;
import com.zl.sdk.OutHelp; import com.zl.sdk.OutHelp;
import com.zl.sdk.bean.IconAdConfig; import com.zl.sdk.bean.IconAdConfig;
import com.zl.sdk.bean.IconOpt; import com.zl.sdk.bean.IconOpt;
import com.zl.sdk.event.EventUtils;
import com.zl.sdk.event.statistics.Statistics; import com.zl.sdk.event.statistics.Statistics;
import com.zl.sdk.out.SLKManager;
import com.zl.sdk.util.LogUtil; import com.zl.sdk.util.LogUtil;
import com.zl.sdk.util.SPUtils; import com.zl.sdk.util.SPUtils;
......
...@@ -50,14 +50,13 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -50,14 +50,13 @@ public class OutAdManager extends BaseOutShowManager {
private volatile boolean hadStartAdDialogFail = false; private volatile boolean hadStartAdDialogFail = false;
public void cleanLoadAdFailTime() {
showAdFailTimes = 0;
}
@Override @Override
WeatherAdData.NormalAdData getAdData() { WeatherAdData.NormalAdData getAdData() {
try { return AdDataManager.get().getShowAdData();
return getHomeAdData();
} catch (Exception e) {
LogUtil.d(TAG, "getAppOutAdData e =" + e);
}
return null;
} }
...@@ -79,6 +78,7 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -79,6 +78,7 @@ public class OutAdManager extends BaseOutShowManager {
@Override @Override
boolean checkCanShowForActionState(WeatherAdData.NormalAdData adData, int actionState) { boolean checkCanShowForActionState(WeatherAdData.NormalAdData adData, int actionState) {
if (adData == null) { if (adData == null) {
LogUtil.d(TAG + "能否播放(广告信息) :广告信息为空 false");
return false; return false;
} }
...@@ -161,6 +161,7 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -161,6 +161,7 @@ public class OutAdManager extends BaseOutShowManager {
} }
WeatherAdData.NormalAdData adData = getAdData(); WeatherAdData.NormalAdData adData = getAdData();
if (adData == null) { if (adData == null) {
LogUtil.d(TAG); LogUtil.d(TAG);
LogUtil.d(TAG + ">>>轮询检查<<< 是否需要展示广告 =============>>> END 广告信息为空 不播放"); LogUtil.d(TAG + ">>>轮询检查<<< 是否需要展示广告 =============>>> END 广告信息为空 不播放");
...@@ -187,14 +188,15 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -187,14 +188,15 @@ public class OutAdManager extends BaseOutShowManager {
LogUtil.d(TAG); LogUtil.d(TAG);
LogUtil.d(TAG + ">>>轮询检查<<< 是否需要展示广告 =============>>> END 未达到间隔时间 不播放"); LogUtil.d(TAG + ">>>轮询检查<<< 是否需要展示广告 =============>>> END 未达到间隔时间 不播放");
LogUtil.d(TAG); LogUtil.d(TAG);
Statistics.getInstance().dotEvent("lx_fail");
} else { } else {
LogUtil.d(TAG); LogUtil.d(TAG);
LogUtil.d(TAG + ">>>轮询检查<<< 是否需要展示广告 =============>>> END 达到间隔时间 播放"); LogUtil.d(TAG + ">>>轮询检查<<< 是否需要展示广告 =============>>> END 达到间隔时间 播放");
LogUtil.d(TAG); LogUtil.d(TAG);
showAdFailTimes = 0;
startShowOutAd(ActionFrom.ACTION_TIMER); startShowOutAd(ActionFrom.ACTION_TIMER);
// OutShowManager.get().onlyShowAd(Config.ACTION_UNKNOWN); Statistics.getInstance().dotEvent("lx_success");
} }
} }
...@@ -217,7 +219,8 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -217,7 +219,8 @@ public class OutAdManager extends BaseOutShowManager {
returnFailCallBack(); returnFailCallBack();
showAdFailTimes = 0; cleanLoadAdFailTime();
AppOutSP.saveHomeLastShowTime(System.currentTimeMillis()); AppOutSP.saveHomeLastShowTime(System.currentTimeMillis());
} }
} }
...@@ -248,9 +251,11 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -248,9 +251,11 @@ public class OutAdManager extends BaseOutShowManager {
Statistics.getInstance().dotEvent(OutHelp.get().getContext(), EventUtils.OUT_AD_START, "", map); Statistics.getInstance().dotEvent(OutHelp.get().getContext(), EventUtils.OUT_AD_START, "", map);
WeatherAdData.NormalAdData adData = getAdData(); WeatherAdData.NormalAdData adData = getAdData();
LogUtil.d(TAG); LogUtil.d(TAG);
LogUtil.d(TAG + ">>>播放广告<<< =============>>> start"); LogUtil.d(TAG + ">>>播放广告<<< =============>>> start");
LogUtil.d(TAG); LogUtil.d(TAG);
if (checkCanShowForActionState(adData, actionFrom.getAction())) { if (checkCanShowForActionState(adData, actionFrom.getAction())) {
LogUtil.d(TAG); LogUtil.d(TAG);
LogUtil.d(TAG + ">>>播放广告<<< ============>>> END 检查通过 开始启动SLK"); LogUtil.d(TAG + ">>>播放广告<<< ============>>> END 检查通过 开始启动SLK");
...@@ -420,6 +425,7 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -420,6 +425,7 @@ public class OutAdManager extends BaseOutShowManager {
LogUtil.d(TAG); LogUtil.d(TAG);
WeatherAdData.NormalAdData localData = getAdData(); WeatherAdData.NormalAdData localData = getAdData();
if (localData != null if (localData != null
&& CheckHelper.checkCanShowAdByTimesFromAdData(localData, -1) && CheckHelper.checkCanShowAdByTimesFromAdData(localData, -1)
&& !CheckHelper.checkAdReady(localData)) { && !CheckHelper.checkAdReady(localData)) {
...@@ -433,10 +439,10 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -433,10 +439,10 @@ public class OutAdManager extends BaseOutShowManager {
LogUtil.d(TAG); LogUtil.d(TAG);
returnFailCallBack(); returnFailCallBack();
} }
return; return;
} }
WeatherAdData.NormalAdData preLoadData; WeatherAdData.NormalAdData preLoadData;
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
preLoadData = list.get(i); preLoadData = list.get(i);
...@@ -492,71 +498,25 @@ public class OutAdManager extends BaseOutShowManager { ...@@ -492,71 +498,25 @@ public class OutAdManager extends BaseOutShowManager {
} }
private WeatherAdData.NormalAdData getHomeAdData() { // private WeatherAdData.NormalAdData getNextAdData(String currentCpAdType) {
WeatherAdData.NormalAdData adData = null; // ArrayList<WeatherAdData.NormalAdData> list = AdDataManager.get().getOutAdData(WeatherAdData.POSITION_HOME, WeatherAdData.CP_AD_TOPON);
ArrayList<WeatherAdData.NormalAdData> list = AdDataManager.get().getOutAdData(WeatherAdData.POSITION_HOME, WeatherAdData.CP_AD_TOPON); // Iterator iterator = list.iterator();
int size = list.size(); // while (iterator.hasNext()) {
if (size > 0) { // WeatherAdData.NormalAdData data = (WeatherAdData.NormalAdData) iterator.next();
//TODO 去掉原生数据 // if (data != null && currentCpAdType.equals(data.cpAdtype)) {
/* Random random = new Random(); // iterator.remove();
final int index = random.nextInt(size); // }
try { // }
adData = list.get(index); //
} catch (Exception ignored) { // LogUtil.d(TAG, "getNextHomeAdData adData size =" + list.size());
}*/ //
adData = list.get(0); // WeatherAdData.NormalAdData data = null;
} // if (list.size() > 0) {
// data = list.get(0);
// LogUtil.d(TAG, "getNextHomeAdData data =" + data);
if (adData == null) { // }
//local // return data;
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;
}
public void showAdSuccess(WeatherAdData.NormalAdData adData) { public void showAdSuccess(WeatherAdData.NormalAdData adData) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment