Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b9f9ee741 | |||
| 31fac7a2b3 | |||
| 4f33446770 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
8
sdk-intergration/Assets/MaxSdk/Mediation/ByteDance.meta
Normal file
8
sdk-intergration/Assets/MaxSdk/Mediation/ByteDance.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4fac2ab3b272f487c8ef6515ae7668e1
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ef8467ffb0e4447b79a8804884a7520a
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/ByteDance/Editor
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<dependencies>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.applovin.mediation:bytedance-adapter:8.1.0.3.0">
|
||||||
|
<repositories>
|
||||||
|
<repository>https://artifact.bytedance.com/repository/pangle</repository>
|
||||||
|
</repositories>
|
||||||
|
</androidPackage>
|
||||||
|
</androidPackages>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="AppLovinMediationByteDanceAdapter" version="8.1.0.6.0" />
|
||||||
|
</iosPods>
|
||||||
|
</dependencies>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0828555cb1ce94702a4af6f3dce3d735
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
sdk-intergration/Assets/MaxSdk/Mediation/Mintegral.meta
Normal file
8
sdk-intergration/Assets/MaxSdk/Mediation/Mintegral.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 324c3a2236ad740799b8b6dc27e85c82
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: db1de4066dc4e4290b3879b34fa87de2
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/Mintegral/Editor
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<dependencies>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.applovin.mediation:mintegral-adapter:17.1.61.0">
|
||||||
|
<repositories>
|
||||||
|
<repository>https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea</repository>
|
||||||
|
</repositories>
|
||||||
|
</androidPackage>
|
||||||
|
<androidPackage spec="androidx.recyclerview:recyclerview:1.2.1" />
|
||||||
|
</androidPackages>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="AppLovinMediationMintegralAdapter" version="8.1.4.0.0" />
|
||||||
|
</iosPods>
|
||||||
|
</dependencies>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 221b2a20a58a04f2cb4afb0779587206
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
sdk-intergration/Assets/MaxSdk/Mediation/Moloco.meta
Normal file
8
sdk-intergration/Assets/MaxSdk/Mediation/Moloco.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a6796c876aa794d13affab798ea46f1c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
11
sdk-intergration/Assets/MaxSdk/Mediation/Moloco/Editor.meta
Normal file
11
sdk-intergration/Assets/MaxSdk/Mediation/Moloco/Editor.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9ecadc3649c184389b90252aa2a2b448
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/Moloco/Editor
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<dependencies>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.applovin.mediation:moloco-adapter:4.9.0.0" />
|
||||||
|
</androidPackages>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="AppLovinMediationMolocoAdapter" version="4.6.1.1" />
|
||||||
|
</iosPods>
|
||||||
|
</dependencies>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0f5b2cb1209274ba18b234b42d2efe96
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/Moloco/Editor/Dependencies.xml
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
sdk-intergration/Assets/MaxSdk/Mediation/Yandex.meta
Normal file
8
sdk-intergration/Assets/MaxSdk/Mediation/Yandex.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b1126795647541ba8c2eb166b7b70bc
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
11
sdk-intergration/Assets/MaxSdk/Mediation/Yandex/Editor.meta
Normal file
11
sdk-intergration/Assets/MaxSdk/Mediation/Yandex/Editor.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 277e2383262e844708fc74a6104f4985
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/Yandex/Editor
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<dependencies>
|
||||||
|
<androidPackages>
|
||||||
|
<androidPackage spec="com.applovin.mediation:yandex-adapter:8.1.0.0" />
|
||||||
|
</androidPackages>
|
||||||
|
<iosPods>
|
||||||
|
<iosPod name="AppLovinMediationYandexAdapter" version="8.1.0.1" />
|
||||||
|
</iosPods>
|
||||||
|
</dependencies>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a77aaf886990c4e6ba469a4f083b9284
|
||||||
|
labels:
|
||||||
|
- al_max
|
||||||
|
- al_max_export_path-MaxSdk/Mediation/Yandex/Editor/Dependencies.xml
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -60,13 +60,18 @@ dependencies {
|
|||||||
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
|
implementation "com.google.android.libraries.identity.googleid:googleid:1.1.1"
|
||||||
|
|
||||||
// Android Resolver Dependencies Start
|
// Android Resolver Dependencies Start
|
||||||
|
implementation 'androidx.recyclerview:recyclerview:1.2.1' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:9
|
||||||
implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:7
|
implementation 'com.android.installreferrer:installreferrer:2.1' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:7
|
||||||
|
implementation 'com.applovin.mediation:bytedance-adapter:8.1.0.3.0' // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8
|
||||||
implementation 'com.applovin.mediation:facebook-adapter:[6.18.0.1]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8
|
implementation 'com.applovin.mediation:facebook-adapter:[6.18.0.1]' // Assets/MaxSdk/Mediation/Facebook/Editor/Dependencies.xml:8
|
||||||
implementation 'com.applovin.mediation:fyber-adapter:8.4.2.0' // Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml:4
|
implementation 'com.applovin.mediation:fyber-adapter:8.4.2.0' // Assets/MaxSdk/Mediation/Fyber/Editor/Dependencies.xml:4
|
||||||
implementation 'com.applovin.mediation:google-adapter:[23.6.0.1]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5
|
implementation 'com.applovin.mediation:google-adapter:[23.6.0.1]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5
|
||||||
implementation 'com.applovin.mediation:ironsource-adapter:8.6.1.0.0' // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8
|
implementation 'com.applovin.mediation:ironsource-adapter:8.6.1.0.0' // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8
|
||||||
|
implementation 'com.applovin.mediation:mintegral-adapter:17.1.61.0' // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8
|
||||||
|
implementation 'com.applovin.mediation:moloco-adapter:4.9.0.0' // Assets/MaxSdk/Mediation/Moloco/Editor/Dependencies.xml:4
|
||||||
implementation 'com.applovin.mediation:unityads-adapter:4.12.3.0' // Assets/MaxSdk/Mediation/UnityAds/Editor/Dependencies.xml:4
|
implementation 'com.applovin.mediation:unityads-adapter:4.12.3.0' // Assets/MaxSdk/Mediation/UnityAds/Editor/Dependencies.xml:4
|
||||||
implementation 'com.applovin.mediation:vungle-adapter:7.4.2.2' // Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml:4
|
implementation 'com.applovin.mediation:vungle-adapter:7.4.2.2' // Assets/MaxSdk/Mediation/Vungle/Editor/Dependencies.xml:4
|
||||||
|
implementation 'com.applovin.mediation:yandex-adapter:8.1.0.0' // Assets/MaxSdk/Mediation/Yandex/Editor/Dependencies.xml:4
|
||||||
implementation 'com.applovin:applovin-sdk:13.5.1' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4
|
implementation 'com.applovin:applovin-sdk:13.5.1' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4
|
||||||
implementation 'com.appsflyer:af-android-sdk:6.17.3' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:5
|
implementation 'com.appsflyer:af-android-sdk:6.17.3' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:5
|
||||||
implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:8
|
implementation 'com.appsflyer:purchase-connector:2.2.0' // Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml:8
|
||||||
|
|||||||
@@ -18,9 +18,15 @@ dependencyResolutionManagement {
|
|||||||
mavenCentral()
|
mavenCentral()
|
||||||
// Android Resolver Repos Start
|
// Android Resolver Repos Start
|
||||||
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
|
def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
|
||||||
|
maven {
|
||||||
|
url "https://artifact.bytedance.com/repository/pangle" // Assets/MaxSdk/Mediation/ByteDance/Editor/Dependencies.xml:8
|
||||||
|
}
|
||||||
maven {
|
maven {
|
||||||
url "https://android-sdk.is.com/" // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8
|
url "https://android-sdk.is.com/" // Assets/MaxSdk/Mediation/IronSource/Editor/Dependencies.xml:8
|
||||||
}
|
}
|
||||||
|
maven {
|
||||||
|
url "https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea" // Assets/MaxSdk/Mediation/Mintegral/Editor/Dependencies.xml:8
|
||||||
|
}
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
// Android Resolver Repos End
|
// Android Resolver Repos End
|
||||||
flatDir {
|
flatDir {
|
||||||
|
|||||||
4566
sdk-intergration/Assets/Scenes/AdTest.unity
Normal file
4566
sdk-intergration/Assets/Scenes/AdTest.unity
Normal file
File diff suppressed because it is too large
Load Diff
7
sdk-intergration/Assets/Scenes/AdTest.unity.meta
Normal file
7
sdk-intergration/Assets/Scenes/AdTest.unity.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 813d4ac98b7f4092a3dddb472539f9d2
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
8
sdk-intergration/Assets/Scripts/AdTesting.meta
Normal file
8
sdk-intergration/Assets/Scripts/AdTesting.meta
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 9176f7473eb140f4af98b026642a0c8c
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
public static class AdReadyStateLog
|
||||||
|
{
|
||||||
|
public static string FormatReadyCheck(string format, string adUnitId, bool isReady)
|
||||||
|
{
|
||||||
|
string status = isReady ? "OK" : "WARNING";
|
||||||
|
return $"[{format}] Loaded callback ready check: adUnitId={adUnitId}, IsReady={isReady}, {status}";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6db64ebff4c74a8e987935dcdf9fd211
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
423
sdk-intergration/Assets/Scripts/AdTesting/AdTest.cs
Normal file
423
sdk-intergration/Assets/Scripts/AdTesting/AdTest.cs
Normal file
@@ -0,0 +1,423 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
public class AdTest : MonoBehaviour
|
||||||
|
{
|
||||||
|
[Header("Rewarded")]
|
||||||
|
[SerializeField] private string androidRewardedAdUnitId = "c6c49a100de8496c";
|
||||||
|
[SerializeField] private string iosRewardedAdUnitId = "ec3c8fd688cdb5e2";
|
||||||
|
|
||||||
|
[Header("Interstitial")]
|
||||||
|
[SerializeField] private string androidInterstitialAdUnitId = "0dcd37fa0885aa1f";
|
||||||
|
[SerializeField] private string iosInterstitialAdUnitId = "interstitial_test_ios";
|
||||||
|
|
||||||
|
[Header("UI")]
|
||||||
|
[SerializeField] private Button initMaxButton;
|
||||||
|
[SerializeField] private Button loadRewardedButton;
|
||||||
|
[SerializeField] private Button showRewardedButton;
|
||||||
|
[SerializeField] private Button forceShowRewardedButton;
|
||||||
|
[SerializeField] private Button checkRewardedReadyButton;
|
||||||
|
[SerializeField] private Button loadInterstitialButton;
|
||||||
|
[SerializeField] private Button showInterstitialButton;
|
||||||
|
[SerializeField] private Button forceShowInterstitialButton;
|
||||||
|
[SerializeField] private Button checkInterstitialReadyButton;
|
||||||
|
[SerializeField] private Button mediationDebuggerButton;
|
||||||
|
[SerializeField] private Button clearLogButton;
|
||||||
|
[SerializeField] private Text logText;
|
||||||
|
|
||||||
|
private const int MaxLogLines = 80;
|
||||||
|
private readonly List<string> logLines = new List<string>();
|
||||||
|
private bool callbacksRegistered;
|
||||||
|
private bool sdkInitializeRequested;
|
||||||
|
private int rewardedLoadFailCount;
|
||||||
|
private int interstitialLoadFailCount;
|
||||||
|
|
||||||
|
private string RewardedAdUnitId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
#if UNITY_IOS
|
||||||
|
return iosRewardedAdUnitId;
|
||||||
|
#else
|
||||||
|
return androidRewardedAdUnitId;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string InterstitialAdUnitId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
#if UNITY_IOS
|
||||||
|
return iosInterstitialAdUnitId;
|
||||||
|
#else
|
||||||
|
return androidInterstitialAdUnitId;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Configure(
|
||||||
|
Button initMax,
|
||||||
|
Button loadRewarded,
|
||||||
|
Button showRewarded,
|
||||||
|
Button forceShowRewarded,
|
||||||
|
Button checkRewardedReady,
|
||||||
|
Button loadInterstitial,
|
||||||
|
Button showInterstitial,
|
||||||
|
Button forceShowInterstitial,
|
||||||
|
Button checkInterstitialReady,
|
||||||
|
Button mediationDebugger,
|
||||||
|
Button clearLog,
|
||||||
|
Text output)
|
||||||
|
{
|
||||||
|
initMaxButton = initMax;
|
||||||
|
loadRewardedButton = loadRewarded;
|
||||||
|
showRewardedButton = showRewarded;
|
||||||
|
forceShowRewardedButton = forceShowRewarded;
|
||||||
|
checkRewardedReadyButton = checkRewardedReady;
|
||||||
|
loadInterstitialButton = loadInterstitial;
|
||||||
|
showInterstitialButton = showInterstitial;
|
||||||
|
forceShowInterstitialButton = forceShowInterstitial;
|
||||||
|
checkInterstitialReadyButton = checkInterstitialReady;
|
||||||
|
mediationDebuggerButton = mediationDebugger;
|
||||||
|
clearLogButton = clearLog;
|
||||||
|
logText = output;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
Bind(initMaxButton, InitMax);
|
||||||
|
Bind(loadRewardedButton, LoadRewarded);
|
||||||
|
Bind(showRewardedButton, ShowRewarded);
|
||||||
|
Bind(forceShowRewardedButton, ForceShowRewarded);
|
||||||
|
Bind(checkRewardedReadyButton, CheckRewardedReady);
|
||||||
|
Bind(loadInterstitialButton, LoadInterstitial);
|
||||||
|
Bind(showInterstitialButton, ShowInterstitial);
|
||||||
|
Bind(forceShowInterstitialButton, ForceShowInterstitial);
|
||||||
|
Bind(checkInterstitialReadyButton, CheckInterstitialReady);
|
||||||
|
Bind(mediationDebuggerButton, ShowMediationDebugger);
|
||||||
|
Bind(clearLogButton, ClearLog);
|
||||||
|
AppendLog("AdTest ready.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
if (!callbacksRegistered)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
MaxSdkCallbacks.OnSdkInitializedEvent -= OnSdkInitialized;
|
||||||
|
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdLoadedEvent -= OnRewardedAdLoaded;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent -= OnRewardedAdLoadFailed;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent -= OnRewardedAdDisplayed;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent -= OnRewardedAdDisplayFailed;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdHiddenEvent -= OnRewardedAdHidden;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent -= OnRewardedAdReceivedReward;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent -= OnRewardedAdRevenuePaid;
|
||||||
|
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent -= OnInterstitialAdLoaded;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent -= OnInterstitialAdLoadFailed;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent -= OnInterstitialAdDisplayed;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent -= OnInterstitialAdDisplayFailed;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdHiddenEvent -= OnInterstitialAdHidden;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent -= OnInterstitialAdRevenuePaid;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Bind(Button button, Action action)
|
||||||
|
{
|
||||||
|
if (button == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.onClick.AddListener(() => action());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void InitMax()
|
||||||
|
{
|
||||||
|
RegisterCallbacks();
|
||||||
|
|
||||||
|
if (sdkInitializeRequested)
|
||||||
|
{
|
||||||
|
AppendLog("MAX initialization already requested.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sdkInitializeRequested = true;
|
||||||
|
MaxSdk.SetHasUserConsent(true);
|
||||||
|
MaxSdk.SetDoNotSell(false);
|
||||||
|
#if UNITY_IOS
|
||||||
|
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "ec3c8fd688cdb5e2,00442f7962682a80");
|
||||||
|
#else
|
||||||
|
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "c6c49a100de8496c,0dcd37fa0885aa1f");
|
||||||
|
#endif
|
||||||
|
MaxSdk.InitializeSdk();
|
||||||
|
AppendLog("MAX initialization requested.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadRewarded()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
AppendLog($"Load rewarded: {RewardedAdUnitId}");
|
||||||
|
MaxSdk.LoadRewardedAd(RewardedAdUnitId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowRewarded()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
bool isReady = MaxSdk.IsRewardedAdReady(RewardedAdUnitId);
|
||||||
|
AppendLog($"Show rewarded requested. IsReady={isReady}");
|
||||||
|
|
||||||
|
if (isReady)
|
||||||
|
{
|
||||||
|
MaxSdk.ShowRewardedAd(RewardedAdUnitId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadRewarded();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ForceShowRewarded()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
AppendLog($"Force show rewarded without ready check: {RewardedAdUnitId}");
|
||||||
|
MaxSdk.ShowRewardedAd(RewardedAdUnitId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CheckRewardedReady()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
bool isReady = MaxSdk.IsRewardedAdReady(RewardedAdUnitId);
|
||||||
|
AppendReadyCheck("Rewarded", RewardedAdUnitId, isReady);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadInterstitial()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
if (string.IsNullOrEmpty(InterstitialAdUnitId))
|
||||||
|
{
|
||||||
|
AppendWarning("Interstitial ad unit ID is empty.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendLog($"Load interstitial: {InterstitialAdUnitId}");
|
||||||
|
MaxSdk.LoadInterstitial(InterstitialAdUnitId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowInterstitial()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
if (string.IsNullOrEmpty(InterstitialAdUnitId))
|
||||||
|
{
|
||||||
|
AppendWarning("Interstitial ad unit ID is empty.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isReady = MaxSdk.IsInterstitialReady(InterstitialAdUnitId);
|
||||||
|
AppendLog($"Show interstitial requested. IsReady={isReady}");
|
||||||
|
|
||||||
|
if (isReady)
|
||||||
|
{
|
||||||
|
MaxSdk.ShowInterstitial(InterstitialAdUnitId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LoadInterstitial();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ForceShowInterstitial()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
if (string.IsNullOrEmpty(InterstitialAdUnitId))
|
||||||
|
{
|
||||||
|
AppendWarning("Interstitial ad unit ID is empty.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendLog($"Force show interstitial without ready check: {InterstitialAdUnitId}");
|
||||||
|
MaxSdk.ShowInterstitial(InterstitialAdUnitId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CheckInterstitialReady()
|
||||||
|
{
|
||||||
|
EnsureInitialized();
|
||||||
|
if (string.IsNullOrEmpty(InterstitialAdUnitId))
|
||||||
|
{
|
||||||
|
AppendWarning("Interstitial ad unit ID is empty.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isReady = MaxSdk.IsInterstitialReady(InterstitialAdUnitId);
|
||||||
|
AppendReadyCheck("Interstitial", InterstitialAdUnitId, isReady);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ClearLog()
|
||||||
|
{
|
||||||
|
logLines.Clear();
|
||||||
|
if (logText != null)
|
||||||
|
{
|
||||||
|
logText.text = string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowMediationDebugger()
|
||||||
|
{
|
||||||
|
AppendLog("Show mediation debugger requested.");
|
||||||
|
MaxSdk.ShowMediationDebugger();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EnsureInitialized()
|
||||||
|
{
|
||||||
|
if (!sdkInitializeRequested)
|
||||||
|
{
|
||||||
|
InitMax();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RegisterCallbacks()
|
||||||
|
{
|
||||||
|
if (callbacksRegistered)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
callbacksRegistered = true;
|
||||||
|
MaxSdkCallbacks.OnSdkInitializedEvent += OnSdkInitialized;
|
||||||
|
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoaded;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailed;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdDisplayedEvent += OnRewardedAdDisplayed;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdDisplayFailed;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHidden;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedReward;
|
||||||
|
MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnRewardedAdRevenuePaid;
|
||||||
|
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialAdLoaded;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialAdLoadFailed;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialAdDisplayed;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdDisplayFailed;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialAdHidden;
|
||||||
|
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnInterstitialAdRevenuePaid;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSdkInitialized(MaxSdkBase.SdkConfiguration configuration)
|
||||||
|
{
|
||||||
|
AppendLog($"MAX initialized. Success={configuration.IsSuccessfullyInitialized}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdLoaded(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
rewardedLoadFailCount = 0;
|
||||||
|
AppendLog($"Rewarded loaded callback: {adUnitId}");
|
||||||
|
bool isReady = MaxSdk.IsRewardedAdReady(adUnitId);
|
||||||
|
AppendReadyCheck("Rewarded", adUnitId, isReady);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdLoadFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
|
||||||
|
{
|
||||||
|
rewardedLoadFailCount++;
|
||||||
|
AppendWarning($"Rewarded load failed: {adUnitId}, attempt={rewardedLoadFailCount}, message={errorInfo.Message}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdDisplayed(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Rewarded displayed: {adUnitId}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdDisplayFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendWarning($"Rewarded display failed: {adUnitId}, message={errorInfo.Message}");
|
||||||
|
LoadRewarded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdHidden(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Rewarded hidden: {adUnitId}");
|
||||||
|
LoadRewarded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdReceivedReward(string adUnitId, MaxSdkBase.Reward reward, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Rewarded received reward: {adUnitId}, label={reward.Label}, amount={reward.Amount}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnRewardedAdRevenuePaid(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Rewarded revenue paid: {adUnitId}, revenue={adInfo.Revenue}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInterstitialAdLoaded(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
interstitialLoadFailCount = 0;
|
||||||
|
AppendLog($"Interstitial loaded callback: {adUnitId}");
|
||||||
|
bool isReady = MaxSdk.IsInterstitialReady(adUnitId);
|
||||||
|
AppendReadyCheck("Interstitial", adUnitId, isReady);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInterstitialAdLoadFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
|
||||||
|
{
|
||||||
|
interstitialLoadFailCount++;
|
||||||
|
AppendWarning($"Interstitial load failed: {adUnitId}, attempt={interstitialLoadFailCount}, message={errorInfo.Message}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInterstitialAdDisplayed(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Interstitial displayed: {adUnitId}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInterstitialAdDisplayFailed(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendWarning($"Interstitial display failed: {adUnitId}, message={errorInfo.Message}");
|
||||||
|
LoadInterstitial();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInterstitialAdHidden(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Interstitial hidden: {adUnitId}");
|
||||||
|
LoadInterstitial();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnInterstitialAdRevenuePaid(string adUnitId, MaxSdkBase.AdInfo adInfo)
|
||||||
|
{
|
||||||
|
AppendLog($"Interstitial revenue paid: {adUnitId}, revenue={adInfo.Revenue}");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AppendReadyCheck(string format, string adUnitId, bool isReady)
|
||||||
|
{
|
||||||
|
string line = AdReadyStateLog.FormatReadyCheck(format, adUnitId, isReady);
|
||||||
|
if (isReady)
|
||||||
|
{
|
||||||
|
AppendLog(line);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AppendWarning(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AppendWarning(string message)
|
||||||
|
{
|
||||||
|
AppendLog(message, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AppendLog(string message, bool warning = false)
|
||||||
|
{
|
||||||
|
string line = $"[{DateTime.Now:HH:mm:ss}] {message}";
|
||||||
|
logLines.Add(line);
|
||||||
|
while (logLines.Count > MaxLogLines)
|
||||||
|
{
|
||||||
|
logLines.RemoveAt(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (logText != null)
|
||||||
|
{
|
||||||
|
logText.text = string.Join("\n", logLines);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This scene is for device-side manual QA, so the UI log is the source of truth.
|
||||||
|
}
|
||||||
|
}
|
||||||
11
sdk-intergration/Assets/Scripts/AdTesting/AdTest.cs.meta
Normal file
11
sdk-intergration/Assets/Scripts/AdTesting/AdTest.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 70a4079f02f94f47a9a065de6d76f8f2
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
using UnityEngine.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
public class AdTestSceneBootstrap : MonoBehaviour
|
||||||
|
{
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
EnsureEventSystem();
|
||||||
|
|
||||||
|
AdTest adTest = GetComponent<AdTest>();
|
||||||
|
if (adTest == null)
|
||||||
|
{
|
||||||
|
adTest = gameObject.AddComponent<AdTest>();
|
||||||
|
}
|
||||||
|
|
||||||
|
adTest.Configure(
|
||||||
|
FindButton("InitMax", "Init"),
|
||||||
|
FindButton("LoadRewardedAd", "LoadRewarded", "Load Rewarded", "RewardedLoad"),
|
||||||
|
FindButton("RewardedAd", "Max", "ShowRewarded", "Show Rewarded", "RewardedShow"),
|
||||||
|
FindButton("ForceRewardedAd", "ForceRewarded", "Force Rewarded"),
|
||||||
|
FindButton("CheckRewardedReady", "CheckRewarded", "Check Rewarded", "RewardedReady"),
|
||||||
|
FindButton("LoadInterstitialAd", "LoadInterstitial", "Load Interstitial", "InterstitialLoad", "PayList"),
|
||||||
|
FindButton("ShowInterstitialAd", "ShowInterstitial", "Show Interstitial", "InterstitialShow", "Pay"),
|
||||||
|
FindButton("ForceInterstitialAd", "ForceInterstitial", "Force Interstitial"),
|
||||||
|
FindButton("CheckInterstitialReady", "CheckInterstitial", "Check Interstitial", "InterstitialReady"),
|
||||||
|
FindButton("MediationDebugger", "ATT", "Debugger", "Mediation Debugger"),
|
||||||
|
FindButton("ClearLog", "Clear Log"),
|
||||||
|
FindText("Message", "Log", "LogText"));
|
||||||
|
|
||||||
|
RenameButton("InitMax", "Init MAX");
|
||||||
|
RenameButton("LoadRewardedAd", "Load Reward");
|
||||||
|
RenameButton("CheckRewardedReady", "Check Reward");
|
||||||
|
RenameButton("RewardedAd", "Rewarded");
|
||||||
|
RenameButton("ForceRewardedAd", "Force Reward");
|
||||||
|
RenameButton("LoadInterstitialAd", "Load Inter");
|
||||||
|
RenameButton("CheckInterstitialReady", "Check Inter");
|
||||||
|
RenameButton("ShowInterstitialAd", "Show Inter");
|
||||||
|
RenameButton("ForceInterstitialAd", "Force Inter");
|
||||||
|
RenameButton("MediationDebugger", "Debugger");
|
||||||
|
RenameButton("ClearLog", "Clear Log");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EnsureEventSystem()
|
||||||
|
{
|
||||||
|
if (FindObjectOfType<EventSystem>() != null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameObject eventSystem = new GameObject("EventSystem");
|
||||||
|
eventSystem.AddComponent<EventSystem>();
|
||||||
|
eventSystem.AddComponent<StandaloneInputModule>();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Button FindButton(params string[] names)
|
||||||
|
{
|
||||||
|
foreach (string name in names)
|
||||||
|
{
|
||||||
|
GameObject target = GameObject.Find(name);
|
||||||
|
if (target != null && target.TryGetComponent(out Button button))
|
||||||
|
{
|
||||||
|
return button;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Text FindText(params string[] names)
|
||||||
|
{
|
||||||
|
foreach (string name in names)
|
||||||
|
{
|
||||||
|
GameObject target = GameObject.Find(name);
|
||||||
|
if (target != null && target.TryGetComponent(out Text text))
|
||||||
|
{
|
||||||
|
return text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RenameButton(string buttonName, string label)
|
||||||
|
{
|
||||||
|
GameObject target = GameObject.Find(buttonName);
|
||||||
|
if (target == null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Text text = target.GetComponentInChildren<Text>();
|
||||||
|
if (text != null)
|
||||||
|
{
|
||||||
|
text.text = label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7f4c0e3f6b3d4d6b9b8a923dc1274d31
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -113,7 +113,7 @@ public class SDKTest : MonoBehaviour
|
|||||||
var customId_2 = TDAnalytics.GetDistinctId("0caf287574bd4a9bb08be8995705ef6f");
|
var customId_2 = TDAnalytics.GetDistinctId("0caf287574bd4a9bb08be8995705ef6f");
|
||||||
Debug.Log($"customId = {customId}, customId_2 = {customId_2}");
|
Debug.Log($"customId = {customId}, customId_2 = {customId_2}");
|
||||||
|
|
||||||
// UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
|
UnityBridgeFunc.UnityResetServerUrl("https://128-hwsfsdk-sdk-test01.qijihdhk.com");
|
||||||
}
|
}
|
||||||
|
|
||||||
int retryAttempt;
|
int retryAttempt;
|
||||||
@@ -133,11 +133,16 @@ public class SDKTest : MonoBehaviour
|
|||||||
MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) =>
|
MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) =>
|
||||||
{
|
{
|
||||||
Debug.Log($"[MaxSdk::OnSdkInitializedEvent] Init:{sdkConfiguration.IsSuccessfullyInitialized}");
|
Debug.Log($"[MaxSdk::OnSdkInitializedEvent] Init:{sdkConfiguration.IsSuccessfullyInitialized}");
|
||||||
};
|
};
|
||||||
MaxSdk.SetHasUserConsent(true);
|
MaxSdk.SetHasUserConsent(true);
|
||||||
MaxSdk.SetDoNotSell(false);
|
MaxSdk.SetDoNotSell(false);
|
||||||
MaxSdk.InitializeSdk();
|
#if UNITY_IOS
|
||||||
}
|
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "ec3c8fd688cdb5e2,00442f7962682a80");
|
||||||
|
#else
|
||||||
|
MaxSdk.SetExtraParameter("disable_b2b_ad_unit_ids", "c6c49a100de8496c,0dcd37fa0885aa1f");
|
||||||
|
#endif
|
||||||
|
MaxSdk.InitializeSdk();
|
||||||
|
}
|
||||||
|
|
||||||
private async void OnLogin(EAccoutType accoutType)
|
private async void OnLogin(EAccoutType accoutType)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -196,9 +196,9 @@ namespace tysdk.editor
|
|||||||
|
|
||||||
//Facebook
|
//Facebook
|
||||||
{
|
{
|
||||||
string faceBookAppId = "2262594684272912";
|
string faceBookAppId = "162066986963808";
|
||||||
string faceBookDisPlayname = "fb2262594684272912";
|
string faceBookDisPlayname = "arkgame";
|
||||||
string facebookClientToken = "123be126bb573f87cd96b0fd67274329";
|
string facebookClientToken = "5fe59b0d985ad7acb51f48081e69d45b";
|
||||||
PlistElementDict facebookDic = urlTypesArray.AddDict();
|
PlistElementDict facebookDic = urlTypesArray.AddDict();
|
||||||
PlistElementArray fbSchmes = facebookDic.CreateArray("CFBundleURLSchemes");
|
PlistElementArray fbSchmes = facebookDic.CreateArray("CFBundleURLSchemes");
|
||||||
|
|
||||||
|
|||||||
@@ -2,18 +2,24 @@
|
|||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
|
<key>CLIENT_ID</key>
|
||||||
|
<string>481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62.apps.googleusercontent.com</string>
|
||||||
|
<key>REVERSED_CLIENT_ID</key>
|
||||||
|
<string>com.googleusercontent.apps.481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62</string>
|
||||||
|
<key>ANDROID_CLIENT_ID</key>
|
||||||
|
<string>481260393117-jhq50gh6n2p6pat1bjhcgj3th1ke19jg.apps.googleusercontent.com</string>
|
||||||
<key>API_KEY</key>
|
<key>API_KEY</key>
|
||||||
<string>AIzaSyAafu4s9EeILJctHwN-yd3lF7z-drQibxI</string>
|
<string>AIzaSyDQrn5AeVA-T0PV22PtuUc_GrpK-M5cl-k</string>
|
||||||
<key>GCM_SENDER_ID</key>
|
<key>GCM_SENDER_ID</key>
|
||||||
<string>679771497905</string>
|
<string>481260393117</string>
|
||||||
<key>PLIST_VERSION</key>
|
<key>PLIST_VERSION</key>
|
||||||
<string>1</string>
|
<string>1</string>
|
||||||
<key>BUNDLE_ID</key>
|
<key>BUNDLE_ID</key>
|
||||||
<string>com.arkgame.ft.tw</string>
|
<string>com.arkgame.ft</string>
|
||||||
<key>PROJECT_ID</key>
|
<key>PROJECT_ID</key>
|
||||||
<string>fishing-travel-tw</string>
|
<string>fishing-travel</string>
|
||||||
<key>STORAGE_BUCKET</key>
|
<key>STORAGE_BUCKET</key>
|
||||||
<string>fishing-travel-tw.firebasestorage.app</string>
|
<string>fishing-travel.appspot.com</string>
|
||||||
<key>IS_ADS_ENABLED</key>
|
<key>IS_ADS_ENABLED</key>
|
||||||
<false></false>
|
<false></false>
|
||||||
<key>IS_ANALYTICS_ENABLED</key>
|
<key>IS_ANALYTICS_ENABLED</key>
|
||||||
@@ -25,6 +31,6 @@
|
|||||||
<key>IS_SIGNIN_ENABLED</key>
|
<key>IS_SIGNIN_ENABLED</key>
|
||||||
<true></true>
|
<true></true>
|
||||||
<key>GOOGLE_APP_ID</key>
|
<key>GOOGLE_APP_ID</key>
|
||||||
<string>1:679771497905:ios:728d18a309ca5164210990</string>
|
<string>1:481260393117:ios:120b4fb634fae8d007fa74</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
@@ -1,33 +1,41 @@
|
|||||||
{
|
{
|
||||||
"project_info": {
|
"project_info": {
|
||||||
"project_number": "679771497905",
|
"project_number": "481260393117",
|
||||||
"project_id": "fishing-travel-tw",
|
"project_id": "fishing-travel",
|
||||||
"storage_bucket": "fishing-travel-tw.firebasestorage.app"
|
"storage_bucket": "fishing-travel.appspot.com"
|
||||||
},
|
},
|
||||||
"client": [
|
"client": [
|
||||||
{
|
{
|
||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:679771497905:android:062e2b39ee6613ad210990",
|
"mobilesdk_app_id": "1:481260393117:android:4e8da50d0ee3b5c207fa74",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "com.arkgame.ft.tw"
|
"package_name": "com.arkgame.ft"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "679771497905-9d8ht9dnuhbn70p72hhc5ld29lfbqhpr.apps.googleusercontent.com",
|
"client_id": "481260393117-jhq50gh6n2p6pat1bjhcgj3th1ke19jg.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "com.arkgame.ft",
|
||||||
|
"certificate_hash": "c9cf2f5eaba383cbdd5b968d0342c49afabc32a2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"api_key": [
|
"api_key": [
|
||||||
{
|
{
|
||||||
"current_key": "AIzaSyCvYkrDG0tMViVdQ28VGQJ1NpgwkROm_9U"
|
"current_key": "AIzaSyBU6gAwu0O28jg7-TRd_Vx2YMCH_Baa8Bw"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"services": {
|
"services": {
|
||||||
"appinvite_service": {
|
"appinvite_service": {
|
||||||
"other_platform_oauth_client": [
|
"other_platform_oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "679771497905-9d8ht9dnuhbn70p72hhc5ld29lfbqhpr.apps.googleusercontent.com",
|
"client_id": "481260393117-0ah0ekk7lu5r44ko2uqlfoebgak8dmhj.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ public class ConfigManager {
|
|||||||
public static String SDK_GAMEID = "20587";
|
public static String SDK_GAMEID = "20587";
|
||||||
public static String SDK_PROJECTID = "20587";
|
public static String SDK_PROJECTID = "20587";
|
||||||
public static String SDK_CLOUDID = "128";
|
public static String SDK_CLOUDID = "128";
|
||||||
public static String SDK_CLIENTID = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingTravelTw";
|
public static String SDK_CLIENTID = "Android_5.00_tyGuest,facebook.googleplay.0-hall20587.googleplay.FishingMaster";
|
||||||
|
|
||||||
public static String SDK_LOGIN_SERVER_URL = "https://128-hwsfsdk-sdk-ts02.sdk-k8s-us-gcp.arksgame.com";
|
public static String SDK_LOGIN_SERVER_URL = "https://128-hwsfsdk-sdk-online01.qijihdhk.com";
|
||||||
|
|
||||||
// 防沉迷 - nameSpace
|
// 防沉迷 - nameSpace
|
||||||
public static String FCM_NAMESPACE = "128";
|
public static String FCM_NAMESPACE = "128";
|
||||||
|
|||||||
Binary file not shown.
@@ -11,13 +11,13 @@
|
|||||||
#define SDK_GAMEID @"20587"
|
#define SDK_GAMEID @"20587"
|
||||||
#define SDK_PROJECTID @"20587"
|
#define SDK_PROJECTID @"20587"
|
||||||
#define SDK_CLOUDID @"128"
|
#define SDK_CLOUDID @"128"
|
||||||
#define SDK_CLIENTID @"IOS_5.00_tyGuest,facebook,appStore.appStore.0-hall20587.appStore.FishingTravelTw"
|
#define SDK_CLIENTID @"IOS_5.00_tyGuest,facebook,appStore.appStore.0-hall20587.appStore.FishingMaster"
|
||||||
|
|
||||||
//Google
|
//Google
|
||||||
#define GOOGLE_CLIENTID @"481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62.apps.googleusercontent.com"
|
#define GOOGLE_CLIENTID @"481260393117-88n0v3ht8ashhk0r5ri47hced7o5qj62.apps.googleusercontent.com"
|
||||||
|
|
||||||
// 账号支付 - 服务域名
|
// 账号支付 - 服务域名
|
||||||
#define SDK_LOGIN_SERVER_URL @"https://128-hwsfsdk-sdk-ts02.sdk-k8s-us-gcp.arksgame.com"
|
#define SDK_LOGIN_SERVER_URL @"https://128-hwsfsdk-sdk-online01.qijihdhk.com"
|
||||||
// 账号支付 - Debug
|
// 账号支付 - Debug
|
||||||
#define XYSDK_DEBUG YES
|
#define XYSDK_DEBUG YES
|
||||||
// 广告 - AdBoxID
|
// 广告 - AdBoxID
|
||||||
|
|||||||
@@ -364,13 +364,6 @@ namespace tysdk
|
|||||||
UnityBridgeFunc.CleanLinkTmpSnsInfo();
|
UnityBridgeFunc.CleanLinkTmpSnsInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
public async Task<ChangeLinkResult> ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId)
|
|
||||||
{
|
|
||||||
await Task.Delay(300);
|
|
||||||
return new ChangeLinkResult(){code = 1};
|
|
||||||
}
|
|
||||||
#elif UNITY_IOS || UNITY_ANDROID
|
|
||||||
public async Task<ChangeLinkResult> ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId)
|
public async Task<ChangeLinkResult> ChangeLinkAccount(EAccoutType accoutType, int oldUserId, int newUserId)
|
||||||
{
|
{
|
||||||
var task = TYSDKCallbackManager.Instance.RegisterCallback<ChangeLinkResult>(TimeSpan.FromSeconds(30));
|
var task = TYSDKCallbackManager.Instance.RegisterCallback<ChangeLinkResult>(TimeSpan.FromSeconds(30));
|
||||||
@@ -395,7 +388,6 @@ namespace tysdk
|
|||||||
CleanLinkTempSnSInfo();
|
CleanLinkTempSnSInfo();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
public void ChangeLinkAccountResult(string message)
|
public void ChangeLinkAccountResult(string message)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,12 +1,17 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package>androidx.recyclerview:recyclerview:1.2.1</package>
|
||||||
<package>com.android.installreferrer:installreferrer:2.1</package>
|
<package>com.android.installreferrer:installreferrer:2.1</package>
|
||||||
|
<package>com.applovin.mediation:bytedance-adapter:8.1.0.3.0</package>
|
||||||
<package>com.applovin.mediation:facebook-adapter:[6.18.0.1]</package>
|
<package>com.applovin.mediation:facebook-adapter:[6.18.0.1]</package>
|
||||||
<package>com.applovin.mediation:fyber-adapter:8.4.2.0</package>
|
<package>com.applovin.mediation:fyber-adapter:8.4.2.0</package>
|
||||||
<package>com.applovin.mediation:google-adapter:[23.6.0.1]</package>
|
<package>com.applovin.mediation:google-adapter:[23.6.0.1]</package>
|
||||||
<package>com.applovin.mediation:ironsource-adapter:8.6.1.0.0</package>
|
<package>com.applovin.mediation:ironsource-adapter:8.6.1.0.0</package>
|
||||||
|
<package>com.applovin.mediation:mintegral-adapter:17.1.61.0</package>
|
||||||
|
<package>com.applovin.mediation:moloco-adapter:4.9.0.0</package>
|
||||||
<package>com.applovin.mediation:unityads-adapter:4.12.3.0</package>
|
<package>com.applovin.mediation:unityads-adapter:4.12.3.0</package>
|
||||||
<package>com.applovin.mediation:vungle-adapter:7.4.2.2</package>
|
<package>com.applovin.mediation:vungle-adapter:7.4.2.2</package>
|
||||||
|
<package>com.applovin.mediation:yandex-adapter:8.1.0.0</package>
|
||||||
<package>com.applovin:applovin-sdk:13.5.1</package>
|
<package>com.applovin:applovin-sdk:13.5.1</package>
|
||||||
<package>com.appsflyer:af-android-sdk:6.17.3</package>
|
<package>com.appsflyer:af-android-sdk:6.17.3</package>
|
||||||
<package>com.appsflyer:purchase-connector:2.2.0</package>
|
<package>com.appsflyer:purchase-connector:2.2.0</package>
|
||||||
@@ -16,7 +21,7 @@
|
|||||||
<files />
|
<files />
|
||||||
<settings>
|
<settings>
|
||||||
<setting name="androidAbis" value="arm64-v8a,armeabi-v7a" />
|
<setting name="androidAbis" value="arm64-v8a,armeabi-v7a" />
|
||||||
<setting name="bundleId" value="com.arkgame.ft.tw" />
|
<setting name="bundleId" value="com.arkgame.ft" />
|
||||||
<setting name="explodeAars" value="True" />
|
<setting name="explodeAars" value="True" />
|
||||||
<setting name="gradleBuildEnabled" value="True" />
|
<setting name="gradleBuildEnabled" value="True" />
|
||||||
<setting name="gradlePropertiesTemplateEnabled" value="True" />
|
<setting name="gradlePropertiesTemplateEnabled" value="True" />
|
||||||
|
|||||||
@@ -4,11 +4,5 @@
|
|||||||
EditorBuildSettings:
|
EditorBuildSettings:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Scenes:
|
m_Scenes: []
|
||||||
- enabled: 1
|
|
||||||
path: Assets/Scenes/SampleScene.unity
|
|
||||||
guid: 99c9720ab356a0642a771bea13969a05
|
|
||||||
- enabled: 1
|
|
||||||
path: Assets/Scenes/UnbindTest.unity
|
|
||||||
guid: e55d807d563854943a26ad6dadec548d
|
|
||||||
m_configObjects: {}
|
m_configObjects: {}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ PlayerSettings:
|
|||||||
useOnDemandResources: 0
|
useOnDemandResources: 0
|
||||||
accelerometerFrequency: 60
|
accelerometerFrequency: 60
|
||||||
companyName: "Ark Game Limited (\u9999\u6E2F)"
|
companyName: "Ark Game Limited (\u9999\u6E2F)"
|
||||||
productName: "\u91E3\u738B\u74B0\u904A\u50B3\u5947"
|
productName: Fishing Travel
|
||||||
defaultCursor: {fileID: 0}
|
defaultCursor: {fileID: 0}
|
||||||
cursorHotspot: {x: 0, y: 0}
|
cursorHotspot: {x: 0, y: 0}
|
||||||
m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
|
m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1}
|
||||||
@@ -163,7 +163,7 @@ PlayerSettings:
|
|||||||
androidSupportedAspectRatio: 1
|
androidSupportedAspectRatio: 1
|
||||||
androidMaxAspectRatio: 2.1
|
androidMaxAspectRatio: 2.1
|
||||||
applicationIdentifier:
|
applicationIdentifier:
|
||||||
Android: com.arkgame.ft.tw
|
Android: com.arkgame.ft
|
||||||
Standalone: com.Unity-Technologies.com.unity.template.urp-blank
|
Standalone: com.Unity-Technologies.com.unity.template.urp-blank
|
||||||
iPhone: com.arkgame.ft
|
iPhone: com.arkgame.ft
|
||||||
buildNumber:
|
buildNumber:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keystoreName": "bamboogame.keystore",
|
"keystoreName": "bamboogame.keystore",
|
||||||
"keyaliasName": "fishing",
|
"keyaliasName": "fishing",
|
||||||
"applicationIdentifier":"com.arkgame.ft.tw",
|
"applicationIdentifier":"com.arkgame.ft",
|
||||||
"companyName":"Ark Game Limited (香港)",
|
"companyName":"Ark Game Limited (香港)",
|
||||||
"productName":"釣王環遊傳奇"
|
"productName":"Fishing Travel"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user