Compare commits

...

8 Commits

Author SHA1 Message Date
juncong lee c22019fc71 修复报错问题 2025-10-23 17:26:12 +08:00
juncong lee ff7044f79c 修复kwai报错问题 2025-10-23 13:43:51 +08:00
juncong lee 88918b8691 使用topon初始化kwai广告 2025-10-22 13:55:29 +08:00
luojian f218790d71 topon kwai 初始化 2025-10-22 10:14:54 +08:00
玉峰 5bef448ae2 1.0.4.9 2025-10-20 14:42:38 +08:00
玉峰 269ccbf47e EFSDK打点 2025-10-20 14:39:44 +08:00
luojian 4214568c7b 1.0.4.8 2025-10-20 13:38:21 +08:00
luojian d453b7b73d native 多次调用show的定时刷新问题 2025-10-20 13:35:35 +08:00
16 changed files with 791 additions and 38 deletions

5
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"recommendations": [
"visualstudiotoolsforunity.vstuc"
]
}

10
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,10 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Unity",
"type": "vstuc",
"request": "attach"
}
]
}

56
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,56 @@
{
"files.exclude": {
"**/.DS_Store": true,
"**/.git": true,
"**/.gitmodules": true,
"**/*.booproj": true,
"**/*.pidb": true,
"**/*.suo": true,
"**/*.user": true,
"**/*.userprefs": true,
"**/*.unityproj": true,
"**/*.dll": true,
"**/*.exe": true,
"**/*.pdf": true,
"**/*.mid": true,
"**/*.midi": true,
"**/*.wav": true,
"**/*.gif": true,
"**/*.ico": true,
"**/*.jpg": true,
"**/*.jpeg": true,
"**/*.png": true,
"**/*.psd": true,
"**/*.tga": true,
"**/*.tif": true,
"**/*.tiff": true,
"**/*.3ds": true,
"**/*.3DS": true,
"**/*.fbx": true,
"**/*.FBX": true,
"**/*.lxo": true,
"**/*.LXO": true,
"**/*.ma": true,
"**/*.MA": true,
"**/*.obj": true,
"**/*.OBJ": true,
"**/*.asset": true,
"**/*.cubemap": true,
"**/*.flare": true,
"**/*.mat": true,
"**/*.meta": true,
"**/*.prefab": true,
"**/*.unity": true,
"build/": true,
"Build/": true,
"Library/": true,
"library/": true,
"obj/": true,
"Obj/": true,
"ProjectSettings/": true,
"temp/": true,
"Temp/": true
},
"dotnet.defaultSolution": "SDK_UnityMoney.sln",
"git.ignoreLimitWarning": true
}

View File

@ -4,6 +4,7 @@ using BigoAds.Scripts.Platforms.Android;
using KwaiAds.Scripts.Api;
using KwaiAds.Scripts.Common;
using UnityEngine;
using WZ;
namespace KwaiAds.Scripts.Platforms.Android
{
@ -126,7 +127,10 @@ namespace KwaiAds.Scripts.Platforms.Android
{
AndroidJavaObject contextObject = currentActivity.Call<AndroidJavaObject>("getApplicationContext");
Debug.Log("Android Context: " + contextObject.Call<string>("toString"));
kwaiAdSdkClass.CallStatic("init", contextObject, sdkConfigBuilder.Call<AndroidJavaObject>("build"));
if (!KwaiAdsManager.UseToponInitKwai())
{
kwaiAdSdkClass.CallStatic("init", contextObject, sdkConfigBuilder.Call<AndroidJavaObject>("build"));
}
}
else
{

View File

@ -147,6 +147,7 @@ namespace KwaiAds.Scripts.Platforms.Android
public void onAdLoadSuccess(string trackId, AndroidJavaObject kwaiInterstitialAd)
{
if (string.IsNullOrEmpty(trackId) || kwaiInterstitialAd == null || _InterstitialAdLoadListener == null) return;
_KwaiInterstitialAdController._KwaiInterstitialAd = kwaiInterstitialAd;
string price = kwaiInterstitialAd.Call<string>("getPrice");
Debug.Log($"{TAG}: onAdLoaded: {kwaiInterstitialAd.Call<string>("getPrice")}");

View File

@ -134,6 +134,7 @@ namespace KwaiAds.Scripts.Platforms.Android
{
this._RewardAdLoadListener = rewardAdListener;
this._KwaiRewardAdController = kwaiRewardAdController;
Debug.Log("yangwu AdLoadListener:"+rewardAdListener+" kwaiRewardAdController:"+kwaiRewardAdController);
}
public void onAdLoadStart(string trackId)
@ -147,6 +148,7 @@ namespace KwaiAds.Scripts.Platforms.Android
public void onAdLoadSuccess(string trackId, AndroidJavaObject kwaiRewardAd)
{
if (string.IsNullOrEmpty(trackId) || kwaiRewardAd == null || _KwaiRewardAdController == null) return;
_KwaiRewardAdController._KwaiRewardAd = kwaiRewardAd;
string price = kwaiRewardAd.Call<string>("getPrice");
Debug.Log($"{TAG}: onAdLoaded: {kwaiRewardAd.Call<string>("getPrice")}");

Binary file not shown.

View File

@ -812,6 +812,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 339569235}
m_CullTransparentMesh: 1
--- !u!1 &354948052
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 354948053}
- component: {fileID: 354948055}
- component: {fileID: 354948054}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &354948053
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 354948052}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1284311697}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &354948054
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 354948052}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 30
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: InitSDK
--- !u!222 &354948055
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 354948052}
m_CullTransparentMesh: 1
--- !u!1 &519420028
GameObject:
m_ObjectHideFlags: 0
@ -904,6 +983,139 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &522373770
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 522373771}
- component: {fileID: 522373774}
- component: {fileID: 522373773}
- component: {fileID: 522373772}
m_Layer: 5
m_Name: Button-topon-IsInit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &522373771
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 522373770}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1467558789}
m_Father: {fileID: 1332931146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 160, y: 81.78003}
m_Pivot: {x: 0, y: 1}
--- !u!114 &522373772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 522373770}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 522373773}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1332931147}
m_TargetAssemblyTypeName: Test, Assembly-CSharp
m_MethodName: ToponKwaiIsInit
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &522373773
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 522373770}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &522373774
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 522373770}
m_CullTransparentMesh: 1
--- !u!1 &522908628
GameObject:
m_ObjectHideFlags: 0
@ -2165,6 +2377,139 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1263400539}
m_CullTransparentMesh: 1
--- !u!1 &1284311696
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1284311697}
- component: {fileID: 1284311700}
- component: {fileID: 1284311699}
- component: {fileID: 1284311698}
m_Layer: 5
m_Name: Button-topon-Init
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1284311697
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1284311696}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 354948053}
m_Father: {fileID: 1332931146}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 245, y: 0}
m_SizeDelta: {x: 160, y: 81.78003}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1284311698
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1284311696}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1284311699}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 1332931147}
m_TargetAssemblyTypeName: Test, Assembly-CSharp
m_MethodName: ToponKwaiInitSDK
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1284311699
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1284311696}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1284311700
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1284311696}
m_CullTransparentMesh: 1
--- !u!1 &1332931142
GameObject:
m_ObjectHideFlags: 0
@ -2273,6 +2618,8 @@ RectTransform:
- {fileID: 339569236}
- {fileID: 5579540}
- {fileID: 1601333711}
- {fileID: 522373771}
- {fileID: 1284311697}
- {fileID: 1979832641}
- {fileID: 1439137377}
m_Father: {fileID: 0}
@ -2448,6 +2795,85 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1439137376}
m_CullTransparentMesh: 1
--- !u!1 &1467558788
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1467558789}
- component: {fileID: 1467558791}
- component: {fileID: 1467558790}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1467558789
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467558788}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 522373771}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1467558790
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467558788}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 30
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Topon Is Init
--- !u!222 &1467558791
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1467558788}
m_CullTransparentMesh: 1
--- !u!1 &1560301798
GameObject:
m_ObjectHideFlags: 0

View File

@ -27,6 +27,7 @@ namespace WZ
private Dictionary<string, int> _retryCounters = new Dictionary<string, int>();
private Dictionary<string, float> _adStartLoadTimes = new Dictionary<string, float>();
private Dictionary<string, ShowNativePosition> showingNativeAds = new();
private Dictionary<string, bool> TimingRefreshDict = new();
public void InitializeAdUnits(List<string> adUnitIds)
{
@ -128,7 +129,7 @@ namespace WZ
adUnitId,
AdsType.Native,
AdmobUtils.GetNativeEcpm(ad));
_retryCounters[adUnitId] = 0;
@ -143,8 +144,8 @@ namespace WZ
ad.OnAdPaid += (AdValue adValue) =>
{
LoggerUtils.Debug($"[Admob] Native ad paid {adValue.Value} {adValue.CurrencyCode}.");
AdmobAdsManager.Instance.TrackAdImpression(ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceName??"",
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceInstanceId??"",
AdmobAdsManager.Instance.TrackAdImpression(ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceName ?? "",
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceInstanceId ?? "",
adValue,
AdsType.Native,
adUnitId);
@ -275,6 +276,16 @@ namespace WZ
private void TimingRefresh(string adUnitId)
{
// 同一个id只允许触发一次定时刷新。 避免多次调用show ,多次来触发刷新
if (TimingRefreshDict.TryGetValue(adUnitId, out var timingRefresh))
{
if (timingRefresh)
{
LoggerUtils.Debug($"[Admob] Native ad ({adUnitId}) timing refresh finished. 正在刷新中.不用重复刷新.");
return;
}
}
var nativeReflashGap = int.Parse(FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("Native_Reflash_Gap", "0"));
if (nativeReflashGap <= 0)
@ -295,10 +306,15 @@ namespace WZ
return;
}
LoggerUtils.Debug($"[Admob] Native ad ({adUnitId}) timing refresh start. nativeReflashGap = {nativeReflashGap}");
TimingRefreshDict.AddIfNotExists(adUnitId, true);
WLoom.QueueOnMainThread(o =>
{
var refreshAdUnitId = (string)o;
LoggerUtils.Debug($"[Admob] Native ad ({adUnitId}) timing refresh load start refreshAdUnitId : {refreshAdUnitId}.");
var remove = TimingRefreshDict.Remove(refreshAdUnitId);
LoggerUtils.Debug($"[Admob] Native ad ({adUnitId}) timing refresh load start refreshAdUnitId : {refreshAdUnitId}. TimingRefreshDict.Remove = {remove}");
if (showingNativeAds.ContainsKey(refreshAdUnitId))
{
LoadAd(refreshAdUnitId, true);
@ -332,10 +348,10 @@ namespace WZ
public string GetHighestPayingAdUnit()
{
return _adRevenueCache
.Where(kvp => IsAdAvailable(kvp.Key))
.OrderByDescending(kvp => kvp.Value)
.Select(kvp => kvp.Key)
.FirstOrDefault();
.Where(kvp => IsAdAvailable(kvp.Key))
.OrderByDescending(kvp => kvp.Value)
.Select(kvp => kvp.Key)
.FirstOrDefault();
}
// 获取价格最高的广告收益信息

View File

@ -47,19 +47,35 @@ namespace WZ
{
KwaiFloorIvManager.Instance.InitializeWithFloors();
}
var useToponKwai = RushSDKManager.Instance.GetRemoteConfigStr("use_topon_kwai","1").Equals("1");
LoggerUtils.Debug("KwaiAdsManager Initialize start" + _appId + " token:" + _token + " rewardAdUnitId:" + _rewardAdUnitId + " interstitialAdUnitId:" + _interstitialAdUnitId+ " useToponKwai:" + useToponKwai);
if (useToponKwai)
LoggerUtils.Debug("KwaiAdsManager Initialize start" + _appId + " token:" + _token + " rewardAdUnitId:" + _rewardAdUnitId + " interstitialAdUnitId:" + _interstitialAdUnitId + " useToponKwai:" + UseToponInitKwai());
if (UseToponInitKwai())
{
_initialized = true;
LoadInterstitial();
LoadRewarded();
if (!string.IsNullOrEmpty(_appId) && !string.IsNullOrEmpty(_token))
{
ToponKwaiUtils.InitSDK(_appId, _token, (res, msg) =>
{
LoggerUtils.Debug("KwaiAdsManager is init topon" + ToponKwaiUtils.IsInit() + " res:" + res.ToString() + " msg:" + msg);
if (res)
{
var kwaiAdConfig = new KwaiAds.Scripts.Api.KwaiAdConfig.Builder()
.SetAppId(_appId)
.SetToken(_token)
.SetDebugLog(false)
.Build();
KwaiAds.Scripts.Api.KwaiAdsSdk.Initialize(kwaiAdConfig, new InitResultCallbackImpl());
_initialized = true;
LoadInterstitial();
LoadRewarded();
}
});
}
}
else
{
LoggerUtils.Debug("KwaiAdsManager RefreshAdsData" + _appId + " token:" + _token + " rewardAdUnitId:" + _rewardAdUnitId + " interstitialAdUnitId:" + _interstitialAdUnitId+ " init:" + _initialized);
LoggerUtils.Debug("KwaiAdsManager RefreshAdsData" + _appId + " token:" + _token + " rewardAdUnitId:" + _rewardAdUnitId + " interstitialAdUnitId:" + _interstitialAdUnitId + " init:" + _initialized);
if (string.IsNullOrEmpty(_appId) || string.IsNullOrEmpty(_token) || _initialized) return;
var kwaiAdConfig = new KwaiAds.Scripts.Api.KwaiAdConfig.Builder()
.SetAppId(_appId)
@ -67,11 +83,15 @@ namespace WZ
.SetDebugLog(false)
.Build();
KwaiAds.Scripts.Api.KwaiAdsSdk.Initialize(kwaiAdConfig, new InitResultCallbackImpl());
_initialized = true;
}
KwaiAds.Scripts.Api.KwaiAdsSdk.Initialize(kwaiAdConfig, new InitResultCallbackImpl());
_initialized = true;
}
}
public static bool UseToponInitKwai()
{
return RushSDKManager.Instance.GetRemoteConfigStr("use_topon_kwai", "1").Equals("1");
}
public void RefreshAdsData()
{

View File

@ -40,8 +40,16 @@ namespace WZ
{
EFSdk.get().SetSDKEventCallback((eventName, dict) =>
{
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dict);
ShuShuEvent.Instance.Track(eventName, dict);
if (dict == null)
{
FireBaseAnalyticsManager.Instance.LogEvent(eventName);
ShuShuEvent.Instance.Track(eventName);
}
else
{
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dict);
ShuShuEvent.Instance.Track(eventName, dict);
}
});
}

View File

@ -21,7 +21,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
public static string GetSDKVersion()
{
return "1.0.4.6";
return "1.0.5.0";
}
protected override void Initialized()
{

View File

@ -16,22 +16,17 @@ public class Test : MonoBehaviour
private void Start()
{
RushSDKManager.Instance.InitializeSdk(()=> { },true);
RushSDKManager.Instance.InitializeSdk(() => { }, true);
}
public void OnShowAd()
{
RushSDKManager.Instance.ShowRewardAd("test",(s,st)=>
{
LoggerUtils.Debug("onreward show callback revenue:"+st);
});
RushSDKManager.Instance.ShowRewardAd("test", (s, st) => { LoggerUtils.Debug("onreward show callback revenue:" + st); });
}
public void OnShowInterstitial()
{
RushSDKManager.Instance.ShowBanner(BannerType.Collapsible,BannerAlignType.CenterBottom);
RushSDKManager.Instance.ShowBanner(BannerType.Collapsible, BannerAlignType.CenterBottom);
// KwaiAdsManager.Instance.OnInterstitialCallback();
// var small = gameObject.transform.Find("NativeAd-small").GetComponent<RectTransform>();
// var medium = gameObject.transform.Find("NativeAd-medium").GetComponent<RectTransform>();
@ -67,17 +62,12 @@ public class Test : MonoBehaviour
public void OnInterShow()
{
AdsSDKManager.Instance.ShowInterstitialAd("endgame",IvType.IV1, (revenue) =>
{
LoggerUtils.Debug("oninter show call revenue:"+revenue);
});
AdsSDKManager.Instance.ShowInterstitialAd("endgame", IvType.IV1, (revenue) => { LoggerUtils.Debug("oninter show call revenue:" + revenue); });
}
public void ToponDebug()
{
// ATSDKAPI.showDebuggerUI();
}
public void MaxDebug()
@ -189,4 +179,15 @@ public class Test : MonoBehaviour
var adUnitId = StaticValue.AdmobMinddleNativeId;
AdsSDKManager.Instance.RemoveNativeAd(adUnitId);
}
public void ToponKwaiIsInit()
{
var isInit = ToponKwaiUtils.IsInit();
Debug.Log($"luojian topon kwai is init : {isInit} , AdapterVersion = {ToponKwaiUtils.GetAdapterVersion()} , NetworkVersion = {ToponKwaiUtils.GetNetworkVersion()}, NetworkName = {ToponKwaiUtils.GetNetworkName()}");
}
public void ToponKwaiInitSDK()
{
ToponKwaiUtils.InitSDK("804006", "57tegTivgTRihdt", (result, message) => { Debug.Log($"luojian topon kwai init SDK result : {result} , message : {message}"); });
}
}

View File

@ -0,0 +1,173 @@
using System;
using UnityEngine;
using UnityEngine.Scripting;
namespace WZ
{
public class ToponKwaiUtils
{
// 标准的topon版本
// private const string KwaiATInitManagerPath = "com.anythink.network.kwai.KwaiATInitManager";
// private const string IsInitPath = "j";
// private const string MediationInitCallbackPath = "com.anythink.core.api.MediationInitCallback";
// 定制的topon版本
private const string KwaiATInitManagerPath = "com.thinkup.network.kwai.KwaiTUInitManager";
private const string IsInitPath = "mm";
public const string MediationInitCallbackPath = "com.thinkup.core.api.MediationInitCallback";
private static AndroidJavaObject Instance = null;
private static AndroidJavaObject GetInstance()
{
Instance ??= new AndroidJavaClass(KwaiATInitManagerPath).CallStatic<AndroidJavaObject>("getInstance");
return Instance;
}
/// <summary>
/// topon 是否已经初始化了 kwai
/// </summary>
/// <returns></returns>
public static bool IsInit()
{
try
{
return GetInstance().Get<bool>(IsInitPath);
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] IsInit , {e.Message}");
}
return false;
}
/// <summary>
/// 通过 topon 去初始化 kwai
/// </summary>
/// <param name="appID">kwai 的appid</param>
/// <param name="appToken">kwai 的app token</param>
/// <param name="callback">初始化的回调</param>
public static void InitSDK(string appID, string appToken, Action<bool, string> callback)
{
try
{
var hashMap = new AndroidJavaObject("java.util.HashMap");
hashMap.Call<AndroidJavaObject>("put", "app_id", appID);
hashMap.Call<AndroidJavaObject>("put", "app_token", appToken);
GetInstance().Call("initSDK", GetAndroidApplication(), hashMap, new MediationInitCallback(callback));
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] InitSDK , {e.Message}");
callback.Invoke(false, e.Message);
}
}
public static string GetAdapterVersion()
{
try
{
return GetInstance().Call<string>("getAdapterVersion");
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] GetAdapterVersion , {e.Message}");
}
return "";
}
public static string GetNetworkVersion()
{
try
{
return GetInstance().Call<string>("getNetworkVersion");
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] GetNetworkVersion , {e.Message}");
}
return "";
}
public static string GetNetworkName()
{
try
{
return GetInstance().Call<string>("getNetworkName");
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] GetNetworkName , {e.Message}");
}
return "";
}
public static string GetNetworkSDKClass()
{
try
{
return GetInstance().Call<string>("getNetworkSDKClass");
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] GetNetworkSDKClass , {e.Message}");
}
return "";
}
/// <summary>
/// 获取Android的Application对象android.app.Application
/// </summary>
/// <returns>Android Application对象AndroidJavaObject若在非Android平台返回null</returns>
private static AndroidJavaObject GetAndroidApplication()
{
// 只在Android平台执行
if (Application.platform != RuntimePlatform.Android)
{
return null;
}
try
{
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
return currentActivity.Call<AndroidJavaObject>("getApplication");
}
catch (Exception e)
{
LoggerUtils.Error($"[ToponKwaiUtils] GetAndroidApplication , {e.Message}");
return null;
}
}
}
public class MediationInitCallback : AndroidJavaProxy
{
private readonly Action<bool, string> _callback;
public MediationInitCallback(Action<bool, string> callback) : base(ToponKwaiUtils.MediationInitCallbackPath)
{
_callback = callback;
}
[Preserve]
public void onSuccess()
{
_callback.Invoke(true, "success");
}
[Preserve]
public void onFail(string error)
{
_callback.Invoke(false, error);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 24597cd26d7b463d9767c1d5d3e0ad1c
timeCreated: 1761039734

View File

@ -1,3 +1,31 @@
# Version 1.0.5.0 2025.10.2
## Bugs
- None
## Known issues
- None
## Changelog
- 修复topon初始化kwai广告后kwai广告加载失败问题
# Version 1.0.4.9 2025.10.20
## Bugs
- None
## Known issues
- None
## Changelog
- 修复EFSDK事件上报
# Version 1.0.4.7 2025.10.17
## Bugs