Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
PrictureTranslate
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
bixing
PrictureTranslate
Commits
39af5832
Commit
39af5832
authored
Jun 27, 2025
by
bixing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加ONEMOB
parent
896d02b4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
880 additions
and
3 deletions
+880
-3
build.gradle
media_app/build.gradle
+6
-3
ONEH5_GAM_5.4.3_coolgam_release.aar
media_app/libs/ONEH5_GAM_5.4.3_coolgam_release.aar
+0
-0
proguard-rules.pro
media_app/proguard-rules.pro
+12
-0
AndroidManifest.xml
media_app/src/main/AndroidManifest.xml
+14
-0
InitA.java
media_app/src/main/java/com/gem/media/InitA.java
+24
-0
OneH5InterstitialAdapter.java
.../main/java/com/gem/media/ad/OneH5InterstitialAdapter.java
+265
-0
OneH5RewardVideoAdapter.java
...c/main/java/com/gem/media/ad/OneH5RewardVideoAdapter.java
+272
-0
OneH5SplashAdapter.java
...pp/src/main/java/com/gem/media/ad/OneH5SplashAdapter.java
+287
-0
No files found.
media_app/build.gradle
View file @
39af5832
...
...
@@ -62,14 +62,16 @@ android {
applicationId
"picturetranslate.extractor.text.lite"
versionName
"1.0.0.0"
signingConfig
signingConfigs
.
toolsTest
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-9356757350640102~6934070860"
,
signature:
"04ced0bb5c9f0b2adf2f27dd57538cc8"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"1"
]
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-9356757350640102~6934070860"
,
signature:
"04ced0bb5c9f0b2adf2f27dd57538cc8"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"1"
,
GAM_APP_ID:
"ca-app-pub-3576913405665805~1539138916"
]
}
ceshi
{
versionCode
90015
versionName
"1.0.15"
signingConfig
signingConfigs
.
testSign
applicationId
"com.hr.heart.rate"
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-3940256099942544~3347511713"
,
signature:
"8112af66991cd22a83219a1fd10403c9"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"1"
]
manifestPlaceholders
=
[
google_ad_app_id:
"ca-app-pub-3940256099942544~3347511713"
,
signature:
"8112af66991cd22a83219a1fd10403c9"
,
flavor_name:
"GemHeart"
,
authorities:
"$applicationId-media-AProvider"
,
media_version:
"1"
,
GAM_APP_ID:
"ca-app-pub-3940256099942544~3347511713"
]
ndk
{
abiFilters
'armeabi-v7a'
,
'arm64-v8a'
,
'armeabi'
}
...
...
@@ -88,7 +90,8 @@ dependencies {
androidTestImplementation
'androidx.test.espresso:espresso-core:3.5.1'
implementation
(
platform
(
"org.jetbrains.kotlin:kotlin-bom:1.8.0"
))
implementation
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
])
implementation
fileTree
(
dir:
'libs'
,
include:
[
'*.jar'
,
'*.aar'
])
implementation
'com.or.ange:likepal:2.2.2'
...
...
media_app/libs/ONEH5_GAM_5.4.3_coolgam_release.aar
0 → 100644
View file @
39af5832
File added
media_app/proguard-rules.pro
View file @
39af5832
...
...
@@ -428,5 +428,17 @@
-keep public class com.tencent.bugly.
*
*{*;}
-keep class com.gem.media.ad.OneH5InterstitialAdapter{ *;}
-keepclassmembers public class com.gem.media.ad.OneH5InterstitialAdapter{
public *;
}
-keep class com.gem.media.ad.OneH5SplashAdapter{ *;}
-keepclassmembers public class com.gem.media.ad.OneH5SplashAdapter{
public *;
}
-keep class com.gem.media.ad.OneH5RewardVideoAdapter{ *;}
-keepclassmembers public class com.gem.media.ad.OneH5RewardVideoAdapter{
public *;
}
media_app/src/main/AndroidManifest.xml
View file @
39af5832
...
...
@@ -52,6 +52,9 @@
<meta-data
android:name=
"com.google.android.gms.ads.APPLICATION_ID"
android:value=
"${google_ad_app_id}"
/>
<meta-data
android:name=
"com.google.android.gms.ads.APPLICATION_ID"
android:value=
"${GAM_APP_ID}"
/>
<activity
android:name=
"com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity"
...
...
@@ -704,6 +707,17 @@
android:label=
"@string/heart_lable"
tools:replace=
"android:icon, android:excludeFromRecents, android:label, android:configChanges"
/>
<!--verve end-->
<activity
android:name=
"org.coolgam.OneH5AdActivity"
android:configChanges=
"orientation|screenSize|screenLayout|keyboardHidden"
android:excludeFromRecents=
"true"
android:noHistory=
"true"
android:icon=
"@android:drawable/divider_horizontal_bright"
android:label=
"@string/heart_lable"
android:launchMode=
"singleTask"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
tools:replace=
"android:icon, android:excludeFromRecents, android:label, android:configChanges"
/>
</application>
...
...
media_app/src/main/java/com/gem/media/InitA.java
View file @
39af5832
...
...
@@ -39,6 +39,8 @@ import com.or.ange.dot.Settings;
import
com.or.ange.dot.UsageStats
;
import
com.tencent.bugly.crashreport.CrashReport
;
import
org.coolgam.om.OmSdk
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -59,6 +61,8 @@ public class InitA {
private
String
uuid
;
private
volatile
int
alertWindowOpen
=
-
1
;
private
int
pid
=
-
1
;
private
static
final
String
APP_ID
=
"quicktext"
;
public
void
init
(
Application
context
)
{
...
...
@@ -76,6 +80,7 @@ public class InitA {
// && adb shell setprop debug.s1.dex.silent.enable 1 && adb shell setprop debug.out.s1.log 1
if
(
isMainProcess
(
context
))
{
initOneH5
(
context
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
P
)
{
String
processName
=
getProcessName
();
if
(!
context
.
getPackageName
().
equals
(
processName
))
{
...
...
@@ -94,6 +99,25 @@ public class InitA {
}
}
private
void
initOneH5
(
Application
context
)
{
if
(!
"picturetranslate.extractor.text.lite"
.
equals
(
context
.
getPackageName
()))
{
return
;
}
// if (PROP.isLogEnabled()) {
// OmSdk.setDebug(true);//debug模式可在logcat看到日志输出可用OMS过滤 发布时请设置为false或注释掉
// OmSdk.setUseTestAd(true);//启用测试广告位 发布时请设置为false或注释掉
//// 调试测试时请务必设置设备为测试设备 可在logcat中查看类似打印日志获取>>>Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("ABCDEF012345"))
// OmSdk.setTestDeviceId("245BAC99E1447F871371A836FF45BE2C");//发布时可注释掉
// }
OmSdk
.
initialize
(
context
,
APP_ID
,
new
OmSdk
.
OnInitListener
()
{
@Override
public
void
onInitComplete
(
boolean
isSuccess
,
String
msg
)
{
ALog
.
d
(
"OmSdk init>>>"
,
isSuccess
+
">>>"
+
msg
);
}
});
}
private
void
initBugly
(
Context
context
)
{
...
...
media_app/src/main/java/com/gem/media/ad/OneH5InterstitialAdapter.java
0 → 100644
View file @
39af5832
package
com
.
gem
.
media
.
ad
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
com.anythink.core.api.ATAdConst
;
import
com.anythink.core.api.ATBiddingListener
;
import
com.anythink.core.api.ATBiddingNotice
;
import
com.anythink.core.api.ATBiddingResult
;
import
com.anythink.interstitial.unitgroup.api.CustomInterstitialAdapter
;
import
org.coolgam.OneH5Sdk
;
import
org.coolgam.om.OmAdError
;
import
org.coolgam.om.OmInterstitialAd
;
import
org.coolgam.om.OmSdk
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.concurrent.atomic.AtomicBoolean
;
public
class
OneH5InterstitialAdapter
extends
CustomInterstitialAdapter
{
private
final
AtomicBoolean
isInit
=
new
AtomicBoolean
(
false
);
private
OmInterstitialAd
omInterstitialAd
;
private
String
unit_id
;
@Override
public
void
show
(
Activity
activity
)
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
_show
(
activity
);
}
});
}
private
void
_show
(
Activity
activity
)
{
if
(
omInterstitialAd
==
null
||
!
omInterstitialAd
.
isAdReady
())
{
if
(
mImpressListener
!=
null
)
{
mImpressListener
.
onInterstitialAdVideoError
(
"3"
,
"InterstitialAd is not ready"
);
}
return
;
}
omInterstitialAd
.
showAd
(
activity
);
}
@Override
public
void
loadCustomNetworkAd
(
Context
context
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map1
)
{
loadCustomNetworkAd
(
context
,
map
,
map1
,
false
,
null
);
}
private
void
loadCustomNetworkAd
(
Context
context
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map1
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
if
(
map
!=
null
&&
map
.
containsKey
(
"unit_id"
))
{
unit_id
=
(
String
)
map
.
get
(
"unit_id"
);
}
if
(
isInit
.
get
()
||
!
TextUtils
.
isEmpty
(
OneH5Sdk
.
getAppId
()))
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
loadAd
(
context
,
isBidding
,
biddingListener
);
}
});
return
;
}
if
(
map
==
null
||
!
map
.
containsKey
(
"app_id"
))
{
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
"topon config app_id is empty"
);
}
else
{
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdLoadError
(
"400"
,
"topon config app_id is empty"
);
}
return
;
}
isInit
.
set
(
true
);
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
initSdk
(
context
,
(
String
)
map
.
get
(
"app_id"
),
isBidding
,
biddingListener
);
}
});
}
private
void
initSdk
(
Context
context
,
String
appId
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
OmSdk
.
initialize
((
Application
)
context
.
getApplicationContext
(),
appId
,
new
OmSdk
.
OnInitListener
()
{
@Override
public
void
onInitComplete
(
boolean
isSuccess
,
String
s
)
{
if
(
isSuccess
)
{
loadAd
(
context
,
isBidding
,
biddingListener
);
}
else
{
Log
.
e
(
"OneH5Sdk>>>"
,
"init fail>>>"
+
s
);
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
s
);
}
else
{
if
(
mLoadListener
!=
null
)
{
mLoadListener
.
onAdLoadError
(
"400"
,
s
);
}
}
}
}
});
}
private
void
loadAd
(
Context
context
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
if
(
omInterstitialAd
==
null
)
{
omInterstitialAd
=
new
OmInterstitialAd
();
omInterstitialAd
.
setAdListener
(
new
OmInterstitialAd
.
OnInterstitialAdListener
()
{
@Override
public
void
onAdLoaded
()
{
if
(
isBidding
)
{
onBiddingSuccess
(
biddingListener
);
return
;
}
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdCacheLoaded
();
}
@Override
public
void
onAdLoadFail
(
OmAdError
omAdError
)
{
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
omAdError
.
toString
());
return
;
}
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdLoadError
(
omAdError
.
code
,
omAdError
.
msg
);
}
@Override
public
void
onAdDismissed
()
{
if
(
mImpressListener
!=
null
)
{
mImpressListener
.
onInterstitialAdClose
();
}
}
@Override
public
void
onAdShowFail
(
OmAdError
omAdError
)
{
if
(
mImpressListener
!=
null
)
{
mImpressListener
.
onInterstitialAdVideoError
(
omAdError
.
code
,
omAdError
.
msg
);
}
}
@Override
public
void
onAdShowed
()
{
if
(
mImpressListener
!=
null
)
{
mImpressListener
.
onInterstitialAdShow
();
}
}
});
}
omInterstitialAd
.
loadAd
(
context
);
}
@Override
public
void
destory
()
{
if
(
omInterstitialAd
!=
null
)
{
omInterstitialAd
.
destory
();
omInterstitialAd
=
null
;
}
}
@Override
public
String
getNetworkPlacementId
()
{
return
unit_id
;
}
@Override
public
String
getNetworkSDKVersion
()
{
return
OneH5Sdk
.
getSdkVersion
();
}
@Override
public
String
getNetworkName
()
{
return
OneH5Sdk
.
getSdkName
();
}
@Override
public
boolean
isAdReady
()
{
return
omInterstitialAd
!=
null
&&
omInterstitialAd
.
isAdReady
();
}
@Override
public
boolean
startBiddingRequest
(
Context
context
,
Map
<
String
,
Object
>
serverExtra
,
Map
<
String
,
Object
>
localExtra
,
ATBiddingListener
biddingListener
)
{
loadCustomNetworkAd
(
context
,
serverExtra
,
localExtra
,
true
,
biddingListener
);
return
true
;
}
private
void
onBiddingFail
(
ATBiddingListener
biddingListener
,
String
msg
)
{
//通过ATBiddingListener,回调竞价失败
if
(
biddingListener
!=
null
)
{
biddingListener
.
onC2SBiddingResultWithCache
(
ATBiddingResult
.
fail
(
msg
),
null
);
}
}
private
void
onBiddingSuccess
(
ATBiddingListener
biddingListener
)
{
if
(
biddingListener
==
null
||
!
isAdReady
())
return
;
//获取价格
double
bidPrice
=
omInterstitialAd
.
getPrice
();
//获取货币单位
ATAdConst
.
CURRENCY
currency
=
ATAdConst
.
CURRENCY
.
USD
;
//用于标识此次竞价的唯一ID,可使用UUID或者时间戳
String
token
=
UUID
.
randomUUID
().
toString
();
//通知TopOn SDK竞价结果
//注意:onC2SBiddingResultWithCache(ATBiddingResult biddingResult, BaseAd baseAd)原生广告需要返回BaseAd,其他广告形式可传null
biddingListener
.
onC2SBiddingResultWithCache
(
ATBiddingResult
.
success
(
bidPrice
,
token
,
new
ATBiddingNotice
()
{
@Override
public
void
notifyBidWin
(
double
costPrice
,
double
secondPrice
,
Map
<
String
,
Object
>
extra
)
{
//costPrice:竞胜方价格
//secondPrice:竞胜方后一位的价格(二价)
if
(
omInterstitialAd
!=
null
)
{
omInterstitialAd
.
notifyBid
(
"TopOn"
,
true
,
bidPrice
,
costPrice
,
secondPrice
,
""
);
}
}
@Override
public
void
notifyBidLoss
(
String
lossCode
,
double
winPrice
,
Map
<
String
,
Object
>
extra
)
{
//判断竞败原因
String
lossReason
=
""
;
switch
(
lossCode
)
{
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_BIDDING_TIMEOUT
:
//竞价超时,如因长时间无竞价结果通知TopOn SDK
lossReason
=
"竞价超时,如因长时间无竞价结果通知TopOn SDK"
;
break
;
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_LOW_PRICE_IN_HB
:
//比竞价广告的价格低
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_LOW_PRICE_IN_NORMAL
:
//比普通常规广告的价格低
lossReason
=
"比竞价广告的价格低"
;
break
;
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_EXPIRE
:
//广告缓存过期
lossReason
=
"广告缓存过期"
;
break
;
}
//判断竞胜方渠道
// int adnId = ATInitMediation.getIntFromMap(extra, ATBiddingNotice.ADN_ID, -1);
// String lossAdn = "";
// switch (adnId) {
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_NORMAL_IN_SAME_ADN://输给了同个广告平台的普通常规广告
// lossAdn = "输给了同个广告平台的普通常规广告";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_HB_IN_SAME_ADN://输给了同个广告平台的竞价广告
// lossAdn = "输给了同个广告平台的竞价广告";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_OWN_ADN://输给了自有广告(直投广告、交叉推广)
// lossAdn = "输给了自有广告(直投广告、交叉推广)";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_OTHER_ADN://输给了其他广告平台
// lossAdn = "输给了其他广告平台";
// break;
// }
if
(
omInterstitialAd
!=
null
)
{
omInterstitialAd
.
notifyBid
(
"TopOn"
,
false
,
bidPrice
,
winPrice
,
0
,
lossReason
);
}
}
@Override
public
void
notifyBidDisplay
(
boolean
isWinner
,
double
displayPrice
)
{
// Log.e("oneh5", ">>notifyBidDisplay>>" + isWinner + ">>" + displayPrice);
}
@Override
public
ATAdConst
.
CURRENCY
getNoticePriceCurrency
()
{
return
ATAdConst
.
CURRENCY
.
USD
;
}
},
currency
),
null
);
}
}
media_app/src/main/java/com/gem/media/ad/OneH5RewardVideoAdapter.java
0 → 100644
View file @
39af5832
package
com
.
gem
.
media
.
ad
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
com.anythink.core.api.ATAdConst
;
import
com.anythink.core.api.ATBiddingListener
;
import
com.anythink.core.api.ATBiddingNotice
;
import
com.anythink.core.api.ATBiddingResult
;
import
com.anythink.rewardvideo.unitgroup.api.CustomRewardVideoAdapter
;
import
org.coolgam.OneH5Sdk
;
import
org.coolgam.om.OmAdError
;
import
org.coolgam.om.OmRewardAd
;
import
org.coolgam.om.OmSdk
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.concurrent.atomic.AtomicBoolean
;
public
class
OneH5RewardVideoAdapter
extends
CustomRewardVideoAdapter
{
private
final
AtomicBoolean
isInit
=
new
AtomicBoolean
(
false
);
private
OmRewardAd
omRewardAd
;
private
String
unit_id
;
@Override
public
void
show
(
Activity
activity
)
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
_show
(
activity
);
}
});
}
private
void
_show
(
Activity
activity
)
{
if
(
omRewardAd
==
null
||
!
omRewardAd
.
isAdReady
())
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onRewardedVideoAdPlayFailed
(
"3"
,
"RewardAd is not ready"
);
}
return
;
}
omRewardAd
.
showAd
(
activity
);
}
@Override
public
void
loadCustomNetworkAd
(
Context
context
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map1
)
{
loadCustomNetworkAd
(
context
,
map
,
map1
,
false
,
null
);
}
public
void
loadCustomNetworkAd
(
Context
context
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map1
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
if
(
map
!=
null
&&
map
.
containsKey
(
"unit_id"
))
{
unit_id
=
(
String
)
map
.
get
(
"unit_id"
);
}
if
(
isInit
.
get
()
||
!
TextUtils
.
isEmpty
(
OneH5Sdk
.
getAppId
()))
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
loadAd
(
context
,
isBidding
,
biddingListener
);
}
});
return
;
}
if
(
map
==
null
||
!
map
.
containsKey
(
"app_id"
))
{
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
"topon config app_id is empty"
);
}
else
{
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdLoadError
(
"400"
,
"topon config app_id is empty"
);
}
return
;
}
isInit
.
set
(
true
);
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
initSdk
(
context
,
(
String
)
map
.
get
(
"app_id"
),
isBidding
,
biddingListener
);
}
});
}
private
void
initSdk
(
Context
context
,
String
appId
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
OmSdk
.
initialize
((
Application
)
context
.
getApplicationContext
(),
appId
,
new
OmSdk
.
OnInitListener
()
{
@Override
public
void
onInitComplete
(
boolean
isSuccess
,
String
s
)
{
if
(
isSuccess
)
{
loadAd
(
context
,
isBidding
,
biddingListener
);
}
else
{
Log
.
e
(
"OneH5Sdk>>>"
,
"init fail>>>"
+
s
);
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
s
);
}
else
{
if
(
mLoadListener
!=
null
)
{
mLoadListener
.
onAdLoadError
(
"400"
,
s
);
}
}
}
}
});
}
private
void
loadAd
(
Context
context
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
if
(
omRewardAd
==
null
)
{
omRewardAd
=
new
OmRewardAd
();
omRewardAd
.
setAdListener
(
new
OmRewardAd
.
OnRewardAdListener
()
{
@Override
public
void
onAdLoaded
()
{
if
(
isBidding
)
{
onBiddingSuccess
(
biddingListener
);
return
;
}
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdCacheLoaded
();
}
@Override
public
void
onAdLoadFail
(
OmAdError
omAdError
)
{
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
omAdError
.
toString
());
return
;
}
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdLoadError
(
omAdError
.
code
,
omAdError
.
msg
);
}
@Override
public
void
onAdDismissed
()
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onRewardedVideoAdClosed
();
}
}
@Override
public
void
onAdShowFail
(
OmAdError
omAdError
)
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onRewardedVideoAdPlayFailed
(
omAdError
.
code
,
omAdError
.
msg
);
}
}
@Override
public
void
onAdShowed
()
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onRewardedVideoAdPlayStart
();
}
}
@Override
public
void
onAdReward
()
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onReward
();
}
}
});
}
omRewardAd
.
loadAd
(
context
);
}
@Override
public
void
destory
()
{
if
(
omRewardAd
!=
null
)
{
omRewardAd
.
destory
();
omRewardAd
=
null
;
}
}
@Override
public
String
getNetworkPlacementId
()
{
return
unit_id
;
}
@Override
public
String
getNetworkSDKVersion
()
{
return
OneH5Sdk
.
getSdkVersion
();
}
@Override
public
String
getNetworkName
()
{
return
OneH5Sdk
.
getSdkName
();
}
@Override
public
boolean
isAdReady
()
{
return
omRewardAd
!=
null
&&
omRewardAd
.
isAdReady
();
}
@Override
public
boolean
startBiddingRequest
(
Context
context
,
Map
<
String
,
Object
>
serverExtra
,
Map
<
String
,
Object
>
localExtra
,
ATBiddingListener
biddingListener
)
{
loadCustomNetworkAd
(
context
,
serverExtra
,
localExtra
,
true
,
biddingListener
);
return
true
;
}
private
void
onBiddingFail
(
ATBiddingListener
biddingListener
,
String
msg
)
{
//通过ATBiddingListener,回调竞价失败
if
(
biddingListener
!=
null
)
{
biddingListener
.
onC2SBiddingResultWithCache
(
ATBiddingResult
.
fail
(
msg
),
null
);
}
}
private
void
onBiddingSuccess
(
ATBiddingListener
biddingListener
)
{
if
(
biddingListener
==
null
||
!
isAdReady
())
return
;
//获取价格
double
bidPrice
=
omRewardAd
.
getPrice
();
//获取货币单位
ATAdConst
.
CURRENCY
currency
=
ATAdConst
.
CURRENCY
.
USD
;
//用于标识此次竞价的唯一ID,可使用UUID或者时间戳
String
token
=
UUID
.
randomUUID
().
toString
();
//通知TopOn SDK竞价结果
//注意:onC2SBiddingResultWithCache(ATBiddingResult biddingResult, BaseAd baseAd)原生广告需要返回BaseAd,其他广告形式可传null
biddingListener
.
onC2SBiddingResultWithCache
(
ATBiddingResult
.
success
(
bidPrice
,
token
,
new
ATBiddingNotice
()
{
@Override
public
void
notifyBidWin
(
double
costPrice
,
double
secondPrice
,
Map
<
String
,
Object
>
extra
)
{
//costPrice:竞胜方价格
//secondPrice:竞胜方后一位的价格(二价)
if
(
omRewardAd
!=
null
)
{
omRewardAd
.
notifyBid
(
"TopOn"
,
true
,
bidPrice
,
costPrice
,
secondPrice
,
""
);
}
}
@Override
public
void
notifyBidLoss
(
String
lossCode
,
double
winPrice
,
Map
<
String
,
Object
>
extra
)
{
//判断竞败原因
String
lossReason
=
""
;
switch
(
lossCode
)
{
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_BIDDING_TIMEOUT
:
//竞价超时,如因长时间无竞价结果通知TopOn SDK
lossReason
=
"竞价超时,如因长时间无竞价结果通知TopOn SDK"
;
break
;
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_LOW_PRICE_IN_HB
:
//比竞价广告的价格低
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_LOW_PRICE_IN_NORMAL
:
//比普通常规广告的价格低
lossReason
=
"比竞价广告的价格低"
;
break
;
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_EXPIRE
:
//广告缓存过期
lossReason
=
"广告缓存过期"
;
break
;
}
//判断竞胜方渠道
// int adnId = ATInitMediation.getIntFromMap(extra, ATBiddingNotice.ADN_ID, -1);
// String lossAdn = "";
// switch (adnId) {
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_NORMAL_IN_SAME_ADN://输给了同个广告平台的普通常规广告
// lossAdn = "输给了同个广告平台的普通常规广告";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_HB_IN_SAME_ADN://输给了同个广告平台的竞价广告
// lossAdn = "输给了同个广告平台的竞价广告";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_OWN_ADN://输给了自有广告(直投广告、交叉推广)
// lossAdn = "输给了自有广告(直投广告、交叉推广)";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_OTHER_ADN://输给了其他广告平台
// lossAdn = "输给了其他广告平台";
// break;
// }
if
(
omRewardAd
!=
null
)
{
omRewardAd
.
notifyBid
(
"TopOn"
,
false
,
bidPrice
,
winPrice
,
0
,
lossReason
);
}
}
@Override
public
void
notifyBidDisplay
(
boolean
isWinner
,
double
displayPrice
)
{
// Log.e("oneh5", ">>notifyBidDisplay>>" + isWinner + ">>" + displayPrice);
}
@Override
public
ATAdConst
.
CURRENCY
getNoticePriceCurrency
()
{
return
ATAdConst
.
CURRENCY
.
USD
;
}
},
currency
),
null
);
}
}
media_app/src/main/java/com/gem/media/ad/OneH5SplashAdapter.java
0 → 100644
View file @
39af5832
package
com
.
gem
.
media
.
ad
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.content.Context
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.view.ViewGroup
;
import
com.anythink.core.api.ATAdConst
;
import
com.anythink.core.api.ATBiddingListener
;
import
com.anythink.core.api.ATBiddingNotice
;
import
com.anythink.core.api.ATBiddingResult
;
import
com.anythink.splashad.unitgroup.api.CustomSplashAdapter
;
import
org.coolgam.OneH5Sdk
;
import
org.coolgam.om.OmAdError
;
import
org.coolgam.om.OmOpenAd
;
import
org.coolgam.om.OmSdk
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.concurrent.atomic.AtomicBoolean
;
public
class
OneH5SplashAdapter
extends
CustomSplashAdapter
{
private
final
AtomicBoolean
isInit
=
new
AtomicBoolean
(
false
);
private
OmOpenAd
splashAd
;
private
String
unit_id
;
@Override
public
void
show
(
Activity
activity
,
ViewGroup
viewGroup
)
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
showAd
(
activity
);
}
});
}
@Override
public
void
loadCustomNetworkAd
(
Context
context
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map1
)
{
loadCustomNetworkAd
(
context
,
map
,
map1
,
false
,
null
);
}
public
void
loadCustomNetworkAd
(
Context
context
,
Map
<
String
,
Object
>
map
,
Map
<
String
,
Object
>
map1
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
if
(
map
!=
null
&&
map
.
containsKey
(
"unit_id"
))
{
unit_id
=
(
String
)
map
.
get
(
"unit_id"
);
}
if
(
isInit
.
get
()
||
!
TextUtils
.
isEmpty
(
OneH5Sdk
.
getAppId
()))
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
loadAd
(
context
,
isBidding
,
biddingListener
);
}
});
return
;
}
if
(
map
==
null
||
!
map
.
containsKey
(
"app_id"
))
{
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
"topon config app_id is empty"
);
}
else
{
if
(
mLoadListener
!=
null
)
mLoadListener
.
onAdLoadError
(
"400"
,
"topon config app_id is empty"
);
}
return
;
}
isInit
.
set
(
true
);
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
initSdk
(
context
,
(
String
)
map
.
get
(
"app_id"
),
isBidding
,
biddingListener
);
}
});
}
private
void
initSdk
(
Context
context
,
String
appId
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
OmSdk
.
initialize
((
Application
)
context
.
getApplicationContext
(),
appId
,
new
OmSdk
.
OnInitListener
()
{
@Override
public
void
onInitComplete
(
boolean
isSuccess
,
String
s
)
{
if
(
isSuccess
)
{
loadAd
(
context
,
isBidding
,
biddingListener
);
}
else
{
Log
.
e
(
"OneH5Sdk>>>"
,
"init fail>>>"
+
s
);
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
s
);
}
else
{
if
(
mLoadListener
!=
null
)
{
mLoadListener
.
onAdLoadError
(
"400"
,
s
);
}
}
}
}
});
}
@Override
public
void
destory
()
{
postOnMainThread
(
new
Runnable
()
{
@Override
public
void
run
()
{
destoryAd
();
}
});
}
private
void
destoryAd
()
{
if
(
splashAd
!=
null
)
{
splashAd
.
destory
();
}
splashAd
=
null
;
}
private
void
loadAd
(
Context
context
,
boolean
isBidding
,
ATBiddingListener
biddingListener
)
{
if
(
splashAd
==
null
)
{
splashAd
=
new
OmOpenAd
();
splashAd
.
setAdListener
(
new
OmOpenAd
.
OnOpenAdListener
()
{
@Override
public
void
onAdLoaded
()
{
if
(
isBidding
)
{
onBiddingSuccess
(
biddingListener
);
return
;
}
if
(
mLoadListener
!=
null
)
{
mLoadListener
.
onAdCacheLoaded
();
}
}
@Override
public
void
onAdLoadFail
(
OmAdError
omAdError
)
{
if
(
isBidding
)
{
onBiddingFail
(
biddingListener
,
omAdError
.
toString
());
return
;
}
if
(
mLoadListener
!=
null
)
{
mLoadListener
.
onAdLoadError
(
omAdError
.
code
,
omAdError
.
msg
);
}
}
@Override
public
void
onAdDismissed
()
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onSplashAdDismiss
();
}
}
@Override
public
void
onAdClicked
()
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onSplashAdClicked
();
}
}
@Override
public
void
onAdShowFail
(
OmAdError
omAdError
)
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onSplashAdDismiss
();
}
}
@Override
public
void
onAdShowed
()
{
if
(
mImpressionListener
!=
null
)
{
mImpressionListener
.
onSplashAdShow
();
}
}
@Override
public
void
onAdComplete
(
boolean
b
)
{
}
});
}
splashAd
.
loadAd
(
context
);
}
private
void
showAd
(
Activity
activity
)
{
if
(
splashAd
==
null
||
!
splashAd
.
isAdReady
())
{
return
;
}
splashAd
.
showAd
(
activity
);
}
@Override
public
boolean
isAdReady
()
{
return
splashAd
!=
null
&&
splashAd
.
isAdReady
();
}
@Override
public
String
getNetworkPlacementId
()
{
return
unit_id
;
}
@Override
public
String
getNetworkSDKVersion
()
{
return
OneH5Sdk
.
getSdkVersion
();
}
@Override
public
String
getNetworkName
()
{
return
OneH5Sdk
.
getSdkName
();
}
@Override
public
boolean
startBiddingRequest
(
Context
context
,
Map
<
String
,
Object
>
serverExtra
,
Map
<
String
,
Object
>
localExtra
,
ATBiddingListener
biddingListener
)
{
loadCustomNetworkAd
(
context
,
serverExtra
,
localExtra
,
true
,
biddingListener
);
return
true
;
}
private
void
onBiddingFail
(
ATBiddingListener
biddingListener
,
String
msg
)
{
//通过ATBiddingListener,回调竞价失败
if
(
biddingListener
!=
null
)
{
biddingListener
.
onC2SBiddingResultWithCache
(
ATBiddingResult
.
fail
(
msg
),
null
);
}
}
private
void
onBiddingSuccess
(
ATBiddingListener
biddingListener
)
{
if
(
biddingListener
==
null
||
!
isAdReady
())
return
;
//获取价格
double
bidPrice
=
splashAd
.
getPrice
();
//获取货币单位
ATAdConst
.
CURRENCY
currency
=
ATAdConst
.
CURRENCY
.
USD
;
//用于标识此次竞价的唯一ID,可使用UUID或者时间戳
String
token
=
UUID
.
randomUUID
().
toString
();
//通知TopOn SDK竞价结果
//注意:onC2SBiddingResultWithCache(ATBiddingResult biddingResult, BaseAd baseAd)原生广告需要返回BaseAd,其他广告形式可传null
biddingListener
.
onC2SBiddingResultWithCache
(
ATBiddingResult
.
success
(
bidPrice
,
token
,
new
ATBiddingNotice
()
{
@Override
public
void
notifyBidWin
(
double
costPrice
,
double
secondPrice
,
Map
<
String
,
Object
>
extra
)
{
//costPrice:竞胜方价格
//secondPrice:竞胜方后一位的价格(二价)
if
(
splashAd
!=
null
)
{
splashAd
.
notifyBid
(
"TopOn"
,
true
,
bidPrice
,
costPrice
,
secondPrice
,
""
);
}
}
@Override
public
void
notifyBidLoss
(
String
lossCode
,
double
winPrice
,
Map
<
String
,
Object
>
extra
)
{
//判断竞败原因
String
lossReason
=
""
;
switch
(
lossCode
)
{
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_BIDDING_TIMEOUT
:
//竞价超时,如因长时间无竞价结果通知TopOn SDK
lossReason
=
"竞价超时,如因长时间无竞价结果通知TopOn SDK"
;
break
;
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_LOW_PRICE_IN_HB
:
//比竞价广告的价格低
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_LOW_PRICE_IN_NORMAL
:
//比普通常规广告的价格低
lossReason
=
"比竞价广告的价格低"
;
break
;
case
ATAdConst
.
BIDDING_TYPE
.
BIDDING_LOSS_WITH_EXPIRE
:
//广告缓存过期
lossReason
=
"广告缓存过期"
;
break
;
}
//判断竞胜方渠道
// int adnId = ATInitMediation.getIntFromMap(extra, ATBiddingNotice.ADN_ID, -1);
// String lossAdn = "";
// switch (adnId) {
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_NORMAL_IN_SAME_ADN://输给了同个广告平台的普通常规广告
// lossAdn = "输给了同个广告平台的普通常规广告";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_HB_IN_SAME_ADN://输给了同个广告平台的竞价广告
// lossAdn = "输给了同个广告平台的竞价广告";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_OWN_ADN://输给了自有广告(直投广告、交叉推广)
// lossAdn = "输给了自有广告(直投广告、交叉推广)";
// break;
// case ATAdConst.BIDDING_ADN_ID.LOSE_TO_OTHER_ADN://输给了其他广告平台
// lossAdn = "输给了其他广告平台";
// break;
// }
if
(
splashAd
!=
null
)
{
splashAd
.
notifyBid
(
"TopOn"
,
false
,
bidPrice
,
winPrice
,
0
,
lossReason
);
}
}
@Override
public
void
notifyBidDisplay
(
boolean
isWinner
,
double
displayPrice
)
{
// Log.e("oneh5", ">>notifyBidDisplay>>" + isWinner + ">>" + displayPrice);
}
@Override
public
ATAdConst
.
CURRENCY
getNoticePriceCurrency
()
{
return
ATAdConst
.
CURRENCY
.
USD
;
}
},
currency
),
null
);
}
}
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