61 Commits
1.0.4 ... 1.3.7

Author SHA1 Message Date
dacf2e3e3f 更新Upm.bat脚本,增强错误处理和分支管理功能,确保在创建upm分支时检查Assets文件夹的存在性,并将版本号更新至1.3.7。 2025-03-13 18:16:10 +08:00
421c0b96e3 更新Upm.bat脚本以支持UTF-8编码,添加分支管理和强制推送功能,同时将版本号更新至1.3.6。 2025-03-13 18:05:30 +08:00
4421d7c2e8 更新Upm.bat脚本以从package.json中提取版本号,并将版本号更新至1.3.5,确保提交前检查tag是否已存在。 2025-03-13 17:59:04 +08:00
936cc138e0 升级debugger-ui版本至1.1.0 2025-03-13 17:54:39 +08:00
f9097e1e8c 更新广告平台至最新平台 2025-03-13 17:53:09 +08:00
81d55a534f 升级topon sdk版本2.1.5, 升级平台插件版本至最新 2025-03-13 17:49:41 +08:00
3d31d2023b update core 2024-10-09 15:57:12 +08:00
e5e397e520 update core 1.3.2 2024-10-09 15:56:50 +08:00
6d7cb4d65e update core 2024-10-09 10:28:05 +08:00
3d2c777a38 fixed 1.3.1 add baidu sdk 2024-10-09 10:25:02 +08:00
d12c65d17f fixed 1.3.1 2024-09-30 21:56:17 +08:00
b2e5ef291d 更新版本 2024-09-30 00:49:46 +08:00
2e21c47442 1.2.9 2024-09-28 20:01:50 +08:00
0034f802c9 update core 2024-09-09 17:06:08 +08:00
292cc58792 update core 2024-09-09 16:35:41 +08:00
2d2f297ebc 升级sdk平台版本 2024-09-09 16:35:06 +08:00
0f2acf4508 update 2.1.3 2024-09-09 15:59:47 +08:00
9a6c006139 update core 2024-06-14 15:25:09 +08:00
db8cfaf5f0 update core 2024-06-14 15:18:59 +08:00
8ef3040443 update core 2024-06-14 15:02:10 +08:00
b87dd858be 增加对IOS 平台的支持完善 2024-06-14 14:53:44 +08:00
58676681d8 update Ios 2024-06-13 11:43:45 +08:00
383f02a19d 移除旧aar文件 2024-06-05 15:12:43 +08:00
abeafaffc8 升级sdk至 2.1.1 2024-06-05 15:09:03 +08:00
d09e25b3fb update core 2024-03-13 18:01:42 +08:00
829038ff46 update core 2024-03-13 16:34:18 +08:00
1418be4295 update 1.1.25 2024-03-13 16:26:53 +08:00
d20f1ce60c update 1.1.25 2024-03-12 02:21:41 +08:00
1a9e55a8a3 update 1.1.25 2024-03-12 02:17:14 +08:00
5a00a4438a update 1.1.25 2024-03-09 20:11:59 +08:00
73f4004e79 update 1.1.25 2024-03-09 18:42:02 +08:00
25869c7e6a update 1.1.25 2024-03-09 18:18:03 +08:00
aa9954b91a update 1.1.25 2024-03-07 15:23:32 +08:00
c7873052f2 update 1.0.22 2024-01-23 03:07:14 +08:00
77cdb14ea5 update sdk version 2024-01-23 03:06:45 +08:00
3eaf8bc789 update 21 2023-12-11 21:14:05 +08:00
950569ee05 1.0.20 2023-11-24 16:16:55 +08:00
1da26e1d74 update sdk version 2023-11-24 16:10:52 +08:00
caf057bb97 1.0.19 2023-11-19 16:21:55 +08:00
41f75ad3d0 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	Assets/package.json
2023-11-19 16:20:53 +08:00
c07a7e5f4a 1.0.18 2023-11-19 16:20:19 +08:00
120d3315fc 1.0.17 2023-11-07 18:54:01 +08:00
5a24a3292c 1.0.16 2023-10-19 18:00:10 +08:00
9a8096f347 版本号更新 1.0.15 2023-10-19 15:49:37 +08:00
0f760ca1a5 update core 2023-10-19 15:45:11 +08:00
4ec2560f30 升级sdk
gromore => 5.6.1.0
Android => 5.2.72
2023-10-19 15:31:19 +08:00
Foldcc_Book
1d22a3dae0 1.0.12 2023-10-12 05:42:18 +08:00
Foldcc_Book
75730fb783 1.0.11 2023-10-12 05:20:31 +08:00
Foldcc_Book
38c9cabad2 1.0.10 2023-10-12 04:08:33 +08:00
f8a4ac18c1 版本号更新 1.0.10 2023-09-25 14:14:20 +08:00
c6bf3ec373 更新sdk Gromore 4.3.0.3 => 5.6.0.8 2023-09-25 14:13:13 +08:00
39014e1de3 1.0.9 2023-09-14 14:20:26 +08:00
97674a4b16 update package.json 2023-09-04 17:02:02 +08:00
a248437870 update core 2023-09-04 16:57:46 +08:00
c2c8dea87d update core 2023-04-04 18:37:45 +08:00
1e04999628 update core 2023-04-04 18:36:47 +08:00
2cabb0e4e8 update core 2023-04-04 18:35:39 +08:00
874b5edf93 update core 2023-04-04 18:34:20 +08:00
49a35b1b6c update core 2023-04-04 18:33:51 +08:00
37f58dcd84 update json 2023-01-29 17:19:48 +08:00
d646659fcf update json 2023-01-29 14:12:51 +08:00
569 changed files with 9317 additions and 5058 deletions

View File

@@ -1,3 +0,0 @@
{
"name": "AnyThinkAds"
}

View File

@@ -1,131 +0,0 @@
//
// ATBaseUnityWrapper.m
// UnityContainer
//
// Created by Martin Lau on 08/08/2018.
// Copyright © 2018 Martin Lau. All rights reserved.
//
#import "ATBaseUnityWrapper.h"
#import "ATUnityUtilities.h"
@interface ATBaseUnityWrapper()
@property(nonatomic, readonly) NSMutableDictionary<NSString*, NSValue*> *callbacks;
@property(nonatomic, readonly) dispatch_queue_t callbackAccessQueue;
@end
@implementation ATBaseUnityWrapper
+(instancetype) sharedInstance {
return nil;
}
-(instancetype) init {
self = [super init];
if (self != nil) {
_callbacks = [NSMutableDictionary<NSString*, NSValue*> dictionary];
_callbackAccessQueue = dispatch_queue_create("com.anythink.UnityPackage", DISPATCH_QUEUE_CONCURRENT);
}
return self;
}
-(void) setCallBack:(void (*)(const char *, const char *))callback forKey:(NSString *)key {
__weak ATBaseUnityWrapper* weakSelf = self;
if (callback != NULL && [key length] > 0)
dispatch_barrier_async(_callbackAccessQueue, ^{
weakSelf.callbacks[key] = [NSValue valueWithPointer:(void*)callback];
});
}
-(void) removeCallbackForKey:(NSString *)key {
__weak ATBaseUnityWrapper* weakSelf = self;
if ([key length] > 0)
dispatch_barrier_async(_callbackAccessQueue, ^{
[weakSelf.callbacks removeObjectForKey:key];
});
}
-(void(*)(const char*, const char *)) callbackForKey:(NSString*)key {
__block void(*callback)(const char*, const char *) = NULL;
if ([key length] > 0) {
__weak ATBaseUnityWrapper* weakSelf = self;
dispatch_barrier_sync(_callbackAccessQueue, ^{
callback = (void(*)(const char*, const char *))[weakSelf.callbacks[key] pointerValue];
});
}
return callback;
}
-(NSString*)scriptWrapperClass {
return @"";
}
- (id)selWrapperClassWithDict:(NSDictionary *)dict callback:(void(*)(const char*, const char*))callback {
return nil;
}
-(void) invokeCallback:(NSString*)callback placementID:(NSString*)placementID error:(NSError*)error extra:(NSDictionary*)extra {
if ([self callbackForKey:placementID] != NULL) {
if ([callback isKindOfClass:[NSString class]] && [callback length] > 0) {
NSMutableDictionary *paraDict = [NSMutableDictionary dictionaryWithObject:callback forKey:@"callback"];
NSMutableDictionary *msgDict = [NSMutableDictionary dictionary];
if (![ATUnityUtilities isEmpty:extra]) {
if (extra[@"extra"] != nil) {
msgDict[@"extra"] = extra[@"extra"];
msgDict[@"rewarded"] = extra[@"rewarded"];
} else {
msgDict[@"extra"] = extra;
}
}
paraDict[@"msg"] = msgDict;
if ([placementID isKindOfClass:[NSString class]] && ![ATUnityUtilities isEmpty:placementID]) {
msgDict[@"placement_id"] = placementID;
};
if ([error isKindOfClass:[NSError class]]) {
NSMutableDictionary *errorDict = [NSMutableDictionary dictionaryWithObject:[NSString stringWithFormat:@"%ld", error.code] forKey:@"code"];
if (![ATUnityUtilities isEmpty:error.userInfo[NSLocalizedDescriptionKey]]) {
errorDict[@"desc"] = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedDescriptionKey]];
} else {
errorDict[@"desc"] = @"";
}
if (![ATUnityUtilities isEmpty:error.userInfo[NSLocalizedFailureReasonErrorKey]]) {
errorDict[@"reason"] = [NSString stringWithFormat:@"%@",error.userInfo[NSLocalizedFailureReasonErrorKey]];
} else {
errorDict[@"reason"] = @"";
}
msgDict[@"error"] = errorDict;
}
[self callbackForKey:placementID]([self scriptWrapperClass].UTF8String, paraDict.jsonString.UTF8String);
}
}
}
- (NSArray *)jsonStrToArray:(NSString *)jsonString{
NSError *error;
NSArray *array = [NSArray array];
@try {
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
array = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&error];
if(error){
return [NSArray array];
}
} @catch (NSException *exception) {
NSLog(@"jsonStrToArray --- exception:%@",exception);
} @finally {}
return array;
}
@end

View File

@@ -1,46 +0,0 @@
<!--
~ Copyright © 2018-2020 TopOn. All rights reserved.
~ https://www.toponad.com
~ Licensed under the TopOn SDK License Agreement
~ https://github.com/toponteam/TopOn-Android-SDK/blob/master/LICENSE
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.anythink.mobrain">
<!--必要权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--必要权限,解决安全风险漏洞,发送和注册广播事件需要调用带有传递权限的接口-->
<permission
android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN"
android:protectionLevel="signature" />
<uses-permission android:name="${applicationId}.openadsdk.permission.TT_PANGOLIN" />
<!--可选权限-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--可选Mobrain SDK提供“获取地理位置权限”方式上报用户位置两种方式均可不选添加位置权限或参数将帮助投放定位广告-->
<!--请注意:无论通过何种方式提供给穿山甲用户地理位置,均需向用户声明地理位置权限将应用于穿山甲广告投放,穿山甲不强制获取地理位置信息-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 如果有视频相关的广告且使用textureView播放请务必添加否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 高于Android 11的系统上如果应用的 targetSdkVersion >= 30 ,推荐增加以下权限声明
SDK将通过此权限正常触发广告行为并保证广告的正确投放。此权限需要在用户隐私文档中声明)-->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<application>
</application>
</manifest>

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 2e98980da5c894df4a84b91d90c80398
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 1610503b01fd04462a2e8403e6b665b5
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 7740db6d6ef4c4268bb57a3003ad8d08
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 9d2021a4299644d1eb7480659541aa89
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: aed66fd54ff77459a87c03be0c243d31
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 9eafffd68d739204a9a9e9065e469602
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 886377a8441c8a54fb70274bb3cbe937
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 74e09de28a301e94384f0f4ea7700036
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,32 +0,0 @@
fileFormatVersion: 2
guid: 08bd2788a542b7846a7b963ec8761583
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,90 +0,0 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-optimizationpasses 5
#混淆时不会产生形形色色的类名
-dontusemixedcaseclassnames
#指定不去忽略非公共的库类
-dontskipnonpubliclibraryclasses
#不预校验
-dontpreverify
#不优化输入的类文件
-dontoptimize
-ignorewarnings
-verbose
#优化
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#保护内部类
-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
## pangle 穿山甲原有的
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.pgl.sys.ces.** {*;}
-keep class com.bytedance.embed_dr.** {*;}
-keep class com.bytedance.embedapplog.** {*;}
## pangle 插件新增 穿山甲插件化版本新增
-keep public class com.ss.android.**{*;}
-keeppackagenames com.bytedance.sdk.openadsdk.api
-keeppackagenames com.bytedance.embed_dr
-keeppackagenames com.bytedance.embedapplog
-keeppackagenames com.ss.android
## 聚合混淆
-keep class bykvm*.**
-keep class com.bytedance.msdk.adapter.**{ public *; }
-keep class com.bytedance.msdk.api.** {
public *;
}
-keep class com.bytedance.msdk.base.TTBaseAd{*;}
-keep class com.bytedance.msdk.adapter.TTAbsAdLoaderAdapter{
public *;
protected <fields>;
}
#oaid 不同的版本混淆代码不太一致你注意你接入的oaid版本 不接入oaid可以不添加
-dontwarn com.bun.**
-keep class com.bun.** {*;}
-keep class a.**{*;}
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class com.zui.opendeviceidlibrary.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 11a2320e9686c45cd8c34ce43c0350cc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><dependencies>
<iosPods>
<iosPod name="AnyThinkiOS" version="6.1.51" />
</iosPods>
</dependencies>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><dependencies>
<iosPods>
<iosPod name="AnyThinkiOS/AnyThinkGDTAdapter" version="6.1.51" />
</iosPods>
</dependencies>

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 90aec42e9f3124004a0b4508d571866e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><dependencies>
<iosPods>
<iosPod name="AnyThinkiOS/AnyThinkKuaiShouAdapter" version="6.1.51" />
<iosPod name="SDWebImage" />
</iosPods>
</dependencies>

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: cd72f2a8b68a442f9a784999739ff3fe
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 5b44b6b990df948d39ae46aa7669b95b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 2923aac3c298e4033a3b415a8f471a55
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><dependencies>
<iosPods>
<iosPod name="AnyThinkiOS/AnyThinkTTAdapter" version="6.1.51" />
</iosPods>
</dependencies>

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 31bf077fc98a646eba2c2bbab09fa1dd
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 687c8129e7770fe47aa2bdceaab14b6b
guid: 6cfab85a96ec246bdb411450b546b791
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 91a7a1e184c2641f79c95f363b8872d2
guid: 39b8ca55bc9e749d1ab7d1ea31d40661
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -10,18 +10,23 @@ namespace AnyThinkAds.Api
{
public String placementId { get; }
public ATCallbackInfo callbackInfo { get; }
public bool isTimeout { get; }
public ATAdEventArgs(String id)
{
placementId = id;
callbackInfo = new ATCallbackInfo("");
}
public bool isDeeplinkSucceed { get; }
public ATAdEventArgs(String id, String callbackJson)
public ATAdEventArgs(string id, string callbackJson = "", bool timeout = false, bool isDeeplinkSucceess = false)
{
placementId = id;
callbackInfo = new ATCallbackInfo(callbackJson);
isTimeout = timeout;
isDeeplinkSucceed = isDeeplinkSucceess;
}
// public ATAdEventArgs(String id, String callbackJson)
// {
// placementId = id;
// callbackInfo = new ATCallbackInfo(callbackJson);
// }
}
public class ATAdErrorEventArgs : ATAdEventArgs
@@ -29,14 +34,14 @@ namespace AnyThinkAds.Api
public String errorMessage { get; }
public String errorCode { get; }
public ATAdErrorEventArgs(String placementId, String message, String code)
public ATAdErrorEventArgs(String placementId, String code, String message)
: base(placementId)
{
errorMessage = message;
errorCode = code;
}
public ATAdErrorEventArgs(String placementId, String callbackJson, String message, String code)
public ATAdErrorEventArgs(String placementId, String callbackJson, String code, String message)
: base(placementId, callbackJson)
{
errorMessage = message;
@@ -191,4 +196,23 @@ namespace AnyThinkAds.Api
event EventHandler<ATAdEventArgs> onPlayAgainReward;
}
public interface IATSplashEvents : IHCommonEvents
{
// called when the ad is shown
event EventHandler<ATAdEventArgs> onAdShowEvent;
// called if the ad has failed to be shown
event EventHandler<ATAdErrorEventArgs> onAdShowFailureEvent;
// called when the ad is closed
event EventHandler<ATAdEventArgs> onAdCloseEvent;
// called when an user has clicked an ad
event EventHandler<ATAdEventArgs> onAdClickEvent;
event EventHandler<ATAdEventArgs> onAdLoadTimeoutEvent;
event EventHandler<ATAdEventArgs> onDeeplinkEvent;
event EventHandler<ATAdEventArgs> onDownloadConfirmEvent;
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 219a4269ecae84c4e9d5b84de8b992de
guid: b85e8925fa22644f1803fbdc727149ba
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c8137f9ecda484f4f82280927f6cc6d3
guid: 303b96d7e38d241d895947db76a77868
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 82a2859cc834c4a2f92c6497ca4ffa5f
guid: e25052682a99b4f11b9ccda0a98ec1ce
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,4 +1,4 @@
using System.Collections;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AnyThinkAds.ThirdParty.LitJson;
@@ -34,8 +34,22 @@ namespace AnyThinkAds.Api
public readonly string sub_channel;
public readonly string channel;
public readonly Dictionary<string, object> custom_rule;
public readonly Dictionary<string, object> ext_info;
public readonly Dictionary<string, object> user_load_extra_data;
public readonly int abtest_id;
public readonly string reward_custom_data;
public readonly int placement_type;
public readonly string shared_placement_id;
public readonly string bid_floor;
public readonly int dismiss_type;
public readonly int ad_source_type;
public readonly string ad_source_custom_ext;
public readonly string network_name;
public readonly string show_custom_ext;
public readonly string e_c;
public readonly int s_id;
private string callbackJson;
@@ -72,18 +86,34 @@ namespace AnyThinkAds.Api
network_placement_id = jsonData.ContainsKey("network_placement_id") ? (string)jsonData["network_placement_id"] : "";
ecpm_level = int.Parse(jsonData.ContainsKey("ecpm_level") ? jsonData["ecpm_level"].ToString() : "0");
abtest_id = int.Parse(jsonData.ContainsKey("abtest_id") ? jsonData["abtest_id"].ToString() : "0");
segment_id = int.Parse(jsonData.ContainsKey("segment_id") ? jsonData["segment_id"].ToString() : "0");
scenario_id = jsonData.ContainsKey("scenario_id") ? (string)jsonData["scenario_id"] : "";// RewardVideo & Interstitial
if (jsonData.ContainsKey("user_load_extra_data")) {
user_load_extra_data = JsonMapper.ToObject<Dictionary<string, object>>(jsonData["user_load_extra_data"].ToJson());
}
scenario_reward_name = jsonData.ContainsKey("scenario_reward_name") ? (string)jsonData["scenario_reward_name"] : "";
scenario_reward_number = int.Parse(jsonData.ContainsKey("scenario_reward_number") ? jsonData["scenario_reward_number"].ToString() : "0");
channel = jsonData.ContainsKey("channel") ? (string)jsonData["channel"] : "";
sub_channel = jsonData.ContainsKey("sub_channel") ? (string)jsonData["sub_channel"] : "";
custom_rule = jsonData.ContainsKey("custom_rule") ? JsonMapper.ToObject<Dictionary<string, object>>(jsonData["custom_rule"].ToJson()) : null;
ext_info = jsonData.ContainsKey("ext_info") ? JsonMapper.ToObject<Dictionary<string, object>>(jsonData["ext_info"].ToJson()) : null;
reward_custom_data = jsonData.ContainsKey("reward_custom_data") ? (string)jsonData["reward_custom_data"] : "";
placement_type = int.Parse(jsonData.ContainsKey("placement_type") ? jsonData["placement_type"].ToString() : "0");
shared_placement_id = jsonData.ContainsKey("shared_placement_id") ? jsonData["shared_placement_id"].ToString() : "";
bid_floor = jsonData.ContainsKey("bid_floor") ? jsonData["bid_floor"].ToString() : "";
dismiss_type = int.Parse(jsonData.ContainsKey("dismiss_type") ? jsonData["dismiss_type"].ToString() : "0");
ad_source_type = int.Parse(jsonData.ContainsKey("ad_source_type") ? jsonData["ad_source_type"].ToString() : "0");
ad_source_custom_ext = jsonData.ContainsKey("ad_source_custom_ext") ? jsonData["ad_source_custom_ext"].ToString() : "";
network_name = jsonData.ContainsKey("network_name") ? jsonData["network_name"].ToString() : "";
show_custom_ext = jsonData.ContainsKey("show_custom_ext") ? jsonData["show_custom_ext"].ToString() : "";
e_c = jsonData.ContainsKey("e_c") ? jsonData["e_c"].ToString() : "";
s_id = int.Parse(jsonData.ContainsKey("s_id") ? jsonData["s_id"].ToString() : "0");
}
catch (System.Exception e) {
System.Console.WriteLine("Exception caught: {0}", e);
@@ -130,13 +160,26 @@ namespace AnyThinkAds.Api
dataDictionary.Add("ecpm_level", ecpm_level);
dataDictionary.Add("segment_id", segment_id);
dataDictionary.Add("scenario_id", scenario_id);
dataDictionary.Add("user_load_extra_data", user_load_extra_data);
dataDictionary.Add("scenario_reward_name", scenario_reward_name);
dataDictionary.Add("scenario_reward_number", scenario_reward_number);
dataDictionary.Add("abtest_id", abtest_id);
dataDictionary.Add("sub_channel", sub_channel);
dataDictionary.Add("channel", channel);
dataDictionary.Add("custom_rule", custom_rule);
dataDictionary.Add("ext_info", ext_info);
dataDictionary.Add("reward_custom_data", reward_custom_data);
dataDictionary.Add("placement_type", placement_type);
dataDictionary.Add("shared_placement_id", shared_placement_id);
dataDictionary.Add("bid_floor", bid_floor);
dataDictionary.Add("dismiss_type", dismiss_type);
dataDictionary.Add("ad_source_type", ad_source_type);
dataDictionary.Add("ad_source_custom_ext", ad_source_custom_ext);
dataDictionary.Add("network_name", network_name);
dataDictionary.Add("show_custom_ext", show_custom_ext);
dataDictionary.Add("e_c", e_c);
dataDictionary.Add("s_id", s_id);
return dataDictionary;
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d71af2c579e014d268a0dfa493b7b42a
guid: ebf4bf9c5f1a54007a31d4a19a30835c
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 96cb1512452b44892ab41a110737bc6f
guid: fc541fdcbb9254973a14d8aa4f305201
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c23fcd22e05664d73ba39e69a58fdfdb
guid: e06efbc55c798478a941850f6726fdbb
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 4655aa99cf2c1475eb148561285c1d0e
guid: 9b7e6ef35d34e47d79856f3e737b5a04
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9b93dd6d343c0473193c776c1ba89ec8
guid: 5417f30bdb0e84db696652694de24b55
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d2b539b7c0e104683ad9789e63c426c1
guid: 1e59697f061674b95b6fc11bf3eb570a
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5ec858a9445e344c6ae02b731012d297
guid: 6f74e005d6e184ccdbd0582232cfb896
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 220e014333c6840fc89f951639f5deba
guid: 63ff9b48e554f481b84df35718d2082c
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a2c5ed4e8516545f0838dddae9200f2f
guid: ea594e5e65c2b44d581e5bbf6e46d2df
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -22,6 +22,7 @@ namespace AnyThinkAds.Api
private string adLogoKey = "adLogo";
private string ctaButtonKey = "cta";
private string dislikeButtonKey = "dislike";
private string elementsKey = "elements";
public string toJSON()
{
@@ -85,6 +86,14 @@ namespace AnyThinkAds.Api
builder.Append("\"").Append(dislikeButtonKey).Append("\"");
builder.Append(":");
builder.Append(JsonUtility.ToJson(config.dislikeButtonProperty));
builder.Append(",");
}
if (config.elementsProperty != null)
{
builder.Append("\"").Append(elementsKey).Append("\"");
builder.Append(":");
builder.Append(JsonUtility.ToJson(config.elementsProperty));
}
string temp = builder.ToString();

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 863e49baa0bfb4c899f6d1591f126aeb
guid: c7e39d0f92be94036b0c3361002bdb6d
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c4cf0c99e1e574b3aa6d4a1a46daf9da
guid: e02adf55e190948ba8238cbbb8e649d6
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3f89a8b127b7346a7a27be7bf6cdc2a1
guid: e977ada5558a4440ab4096ec189d66c3
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -14,5 +14,6 @@ namespace AnyThinkAds.Api
public ATNativeItemProperty adLogoProperty;
public ATNativeItemProperty ctaButtonProperty;
public ATNativeItemProperty dislikeButtonProperty;
public ATNativeItemProperty elementsProperty;
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7472931a01bd34107842d9baa5edf262
guid: 2ff7b39d30d2f48c7886af12676d5dca
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -46,10 +46,14 @@ namespace AnyThinkAds.Api{
this.y = y;
this.width = width;
this.height = height;
this.usesPixel = false;
this.backgroundColor = backgroundColor;
this.textColor = textColor;
this.textSize = textSize;
#if UNITY_ANDROID
this.usesPixel = true;
#else
this.usesPixel = false;
#endif
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e4ce4b4690b764fcd9a5bdba6c7a48b8
guid: 33288477361ec4906b2f2b90af9afe74
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -21,15 +21,18 @@ namespace AnyThinkAds.Api
this.y = y;
this.width = width;
this.height = height;
this.usesPixel = false;
}
public int x = 0;
public int y = 0;
public int width = 0;
public int height = 0;
public bool usesPixel = false;
// public bool usesPixel = false;
#if UNITY_ANDROID
public bool usesPixel = true;
#else
public bool usesPixel = false;
#endif
}
public class ATSize
@@ -45,11 +48,15 @@ namespace AnyThinkAds.Api
{
this.width = width;
this.height = height;
this.usesPixel = false;
}
public int width = 0;
public int height = 0;
public bool usesPixel = false;
#if UNITY_ANDROID
public bool usesPixel = true;
#else
public bool usesPixel = false;
#endif
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8ce958c2c0a294f85981fc0d7efd277e
guid: 2f4d9eae1b90142ca8004116a3e4c869
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5feccd0a003ab4defba25cd4e3f9e870
guid: 6d40b4678e713487ab21c87b284165e9
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a1e0f021a24cc491eb4f054d576982f7
guid: 8e666f918e4a54255ae6d45c5ed483c0
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3c71cf6d83ff4406db7ed141066a54d3
guid: c2a8b39939a6e4561b49ec08c9648efa
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -17,6 +17,12 @@ namespace AnyThinkAds.Api
void didGetUserLocation(int location);
}
public interface ATConsentDismissListener
{
void onConsentDismiss();
}
public interface ATGetAreaListener
{
void onArea(string area);
@@ -82,6 +88,16 @@ namespace AnyThinkAds.Api
client.initSDK(appId, appKey, listener);
}
public static void showDebuggerUI()
{
client.showDebuggerUI();
}
public static void showDebuggerUI(string debugKey)
{
client.showDebuggerUI(debugKey);
}
public static void setGDPRLevel(int level)
{
client.setGDPRLevel(level);
@@ -125,9 +141,15 @@ namespace AnyThinkAds.Api
client.showGDPRAuth();
}
public static void showGDPRConsentDialog(ATConsentDismissListener listener)
{
client.showGDPRConsentDialog(listener);
}
public static void setLogDebug(bool isDebug)
{
client.setLogDebug(isDebug);
ATLogger.IsDebug = isDebug;
}
public static void addNetworkGDPRInfo(int networkType, Dictionary<string,object> dictionary)

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 17ae30f8263a149fc8eba30dad68d0f0
guid: 2668d385cd9ef4bc385b0c1487756d84
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 57b3ce41b10cf46cbb2e5a082691be6d
guid: 92bd41ae21ada4f13ba4f646fe8d8e87
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,73 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Reflection;
using System;
using AnyThinkAds.Common;
using AnyThinkAds.ThirdParty.LitJson;
namespace AnyThinkAds.Api
{
public class ATSplashAdLocalExtra
{
//Only for GDT (true: open download dialog, false: download directly)
public static readonly string kATSplashAdClickConfirmStatus = "ad_click_confirm_status";
}
public class ATSplashAd
{
private static readonly ATSplashAd instance = new ATSplashAd();
public IATSplashAdClient client;
private ATSplashAd()
{
client = AnyThinkAds.ATAdsClientFactory.BuildSplashAdClient();
}
public static ATSplashAd Instance
{
get
{
return instance;
}
}
public void loadSplashAd(string placementId, Dictionary<string, object> pairs, int fetchAdTimeout = 5000, string defaultAdSourceConfig = "")
{
#if UNITY_ANDROID
client.loadSplashAd(placementId, fetchAdTimeout, defaultAdSourceConfig, JsonMapper.ToJson(pairs));
#elif (UNITY_5 && UNITY_IOS) || UNITY_IPHONE
//TODO iOS的开屏加载
pairs.Add("tolerate_timeout", fetchAdTimeout);
pairs.Add("default_adSource_config", defaultAdSourceConfig);
client.loadSplashAd(placementId, fetchAdTimeout, defaultAdSourceConfig, JsonMapper.ToJson(pairs));
#endif
}
public void showSplashAd(string placementId, Dictionary<string, object> pairs)
{
client.showSplashAd(placementId, JsonMapper.ToJson(pairs));
}
public bool hasSplashAdReady(string placementId)
{
return client.hasSplashAdReady(placementId);
}
public string checkAdStatus(string placementId)
{
return client.checkAdStatus(placementId);
}
public string getValidAdCaches(string placementId)
{
return client.getValidAdCaches(placementId);
}
public void entryScenarioWithPlacementID(string placementId, string scenarioID)
{
client.entryScenarioWithPlacementID(placementId, scenarioID);
}
}
}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 88edb880a748a4df7be4481415e44907
guid: 6599afb4d52b14fa098f43f1d01be850
MonoImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -0,0 +1,40 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///summary
///注意对于Android来说所有回调方法均不在Unity的主线程
///sumary
namespace AnyThinkAds.Api
{
public interface ATSplashAdListener
{
void onSplashAdLoad(string unitId, bool isTimeout);
void onSplashAdLoadTimeOut(string unitId);
void onSplashAdLoadFailed(string unitId, string code, string msg);
void onSplashAdShow(string unitId, ATCallbackInfo callbackInfo);
void onSplashAdClick(string unitId, ATCallbackInfo callbackInfo);
void onSplashAdDismiss(string unitId, ATCallbackInfo callbackInfo);
void onSplashAdDeeplinkCallback(string unitId, ATCallbackInfo callbackInfo, bool isSuccess);
void onSplashAdDownloadConfirm(string unitId, ATCallbackInfo callbackInfo);
void startLoadingADSource(string placementId, ATCallbackInfo callbackInfo);
void finishLoadingADSource(string placementId, ATCallbackInfo callbackInfo);
void failToLoadADSource(string placementId,ATCallbackInfo callbackInfo,string code, string message);
void startBiddingADSource(string placementId, ATCallbackInfo callbackInfo);
void finishBiddingADSource(string placementId, ATCallbackInfo callbackInfo);
void failBiddingADSource(string placementId,ATCallbackInfo callbackInfo,string code, string message);
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e99f46e9ff2ba49338673e9655a6b494
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a94c7b266b79787429106afa2514e1bd
guid: c9068fed3449f4957a31b2704d38d9c4
folderAsset: yes
DefaultImporter:
externalObjects: {}

Binary file not shown.

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 19407568a6ed74bcc83f3f2850b9ea1e
guid: 6b000e45df70e44c683d126c70c6c7c5
PluginImporter:
externalObjects: {}
serializedVersion: 2

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1e8456848ebbf4b988a66e831999e0b7
guid: 5e27cbd650c5b4fd280cfda2125e9f1f
folderAsset: yes
DefaultImporter:
externalObjects: {}

Some files were not shown because too many files have changed in this diff Show More