Skip to content

Commit

Permalink
First build
Browse files Browse the repository at this point in the history
  • Loading branch information
scottrules44 committed Dec 11, 2024
1 parent 0772ee3 commit bf49db1
Show file tree
Hide file tree
Showing 208 changed files with 13,403 additions and 25 deletions.
22 changes: 18 additions & 4 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
Copyright (c) 2020
MIT License

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Copyright (c) 2020 Corona Labs Inc.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. This notice may not be removed or altered from any source distribution.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
33 changes: 12 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
# Plugin template

To make it work for Solar2D plugins directory add your plugin content into the plugins directory. Then in revision, which is minimum requirement to run the plugin. Repository name must me `com.publisher.name-plugin.name` as it would be in build settings `["plugin.name"] = { publisherId = "com.publisher.name"}`.

For example, `mkdir -p plugins/2020.2600/<platform>a`.


Example platforms are:
* `android-kindle` will use `android` if not found
* `android` any android platform
* `macos` only desktop build
* `mac-sim` desktop build or simulator
* `win32` only desktop build
* `win32-sim` desktop build or simulator
* `web` for html5 builds
* `html5` same as `web`
* `iphone` iOS device
* `iphone-sim` iOS simulator
* `tvos` AppleTV device
* `tvos-sim` Apple TV simulator
* `lua` used if no other applicable platform found
Sources for the plugin `plugin.appodeal.AppLovin`.

Add following to your `build.settings` to use:
```lua
{
plugins = {
"plugin.appodeal.AppLovin" = {
publisherId = "com.coronalabs",
},
},
}
```
3 changes: 3 additions & 0 deletions plugins/2018.3326/android/corona.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
implementation 'com.appodeal.ads.sdk.networks:amazon:3.4.0.0'
}
Binary file not shown.
12 changes: 12 additions & 0 deletions plugins/2018.3326/iphone-sim/metadata.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
local metadata =
{
plugin =
{
format = 'staticLibrary',
staticLibs = { 'APDAmazonAdapter', },
frameworks = { 'DTBiOSSDK', },
frameworksOptional = {},
},
}

return metadata
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
//
// APS.h
// This is the main SDK class.
//
// DTBiOSSDK
//
// Copyright © 2022 amazon.com. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@class APSInitConfig;

/**
* Supported ad network type.
*/
typedef NS_ENUM(NSInteger, APSAdNetwork) {
APSAdNetworkNone,
APSAdNetworkGoogleAdManager,
APSAdNetworkAdmob,
APSAdNetworkAdGeneration,
APSAdNetworkUnityLevelPlay,
APSAdNetworkMax,
APSAdNetworkNimbus,
APSAdNetworkOther,
APSAdNetworkCustomMediation
};

/**
* Mobile Rich Media Ad Interface (MRAID) policy type.
*/
typedef NS_ENUM(NSInteger, APSMraidPolicy) {
APSMraidPolicyAutoDetect,
APSMraidPolicyDfp,
APSMraidPolicyNone,
APSMraidPolicyCustom
};

/**
* The privacy type used in the @{ref setPrivacyString:type:}.
*/
typedef NS_ENUM(NSInteger, APSPrivacyType) {
APSPrivacyTypeIABCCPAUSPrivacy,
APSPrivacyTypeIABCCPAAPSPrivacy
};

/**
* Supported MRAID versions.
*/
typedef NSString APSMraidVersion;

/**
* Log level type. A logging method with higher or equal to the level will be logged into the console.
*/
typedef NS_ENUM(NSInteger, APSLogLevel) {
APSLogLevelAll,
APSLogLevelTrace,
APSLogLevelDebug,
APSLogLevelInfo,
APSLogLevelWarn,
APSLogLevelError,
APSLogLevelFatal,
APSLogLevelOff
};

FOUNDATION_EXPORT APSMraidVersion * const APSMraidVersion1_0;
FOUNDATION_EXPORT APSMraidVersion * const APSMraidVersion2_0;
FOUNDATION_EXPORT APSMraidVersion * const APSMraidVersion3_0;

/**
* Main APS SDK class. Use this class to initialize the SDK and set SDK properties.
*/
@interface APS : NSObject

/**
* @abstract Initialize the SDK without a configuration.
* @description This should be the first call before using the SDK. We recommend the call in a main thread from
* the -[AppDelegate application:didFinishLaunchingWithOptions:] method.
*
* @param appKey The publisher application key. If the appKey is nil or empty, it will throws a runtime NSException in
* development and will not initialize the SDK but does not throw an exception in production.
* @param adNetwork The main ad network used by the app.
* parameters in the config object may be overriden by the DTB portal.
* @param completion Optional completion block called when the initialize is complete. This block will be called
* from a background thread.
*/
+ (void)initializeWithAppKey:(NSString *)appKey
adNetwork:(APSAdNetwork)adNetwork
completion:(nullable void (^)(NSError *error))completion;

/**
* @abstract Initialize the SDK with a configuration.
* @description This should be the first call before using the SDK. We recommend the call in a main thread from
* the -[AppDelegate application:didFinishLaunchingWithOptions:] method.
*
* @param appKey The publisher application key. If the appKey is nil or empty, it will throws a runtime NSException in
* development and will not initialize the SDK but does not throw an exception in production.
* @param adNetwork The main ad network used by the app.
* @param config The initialize config object. If nil, the config parameters will use default values. Note that
* parameters in the config object may be overriden by the DTB portal.
* @param completion Optional completion block called when the initialize is complete. This block will be called
* from a background thread.
*/
+ (void)initializeWithAppKey:(NSString *)appKey
adNetwork:(APSAdNetwork)adNetwork
config:(APSInitConfig * _Nullable)config
completion:(nullable void (^)(NSError *error))completion;

/**
* @abstract Set a custom attribute key value strings.
*
* @param value The custom attribute value.
* @param key The custom attribute key. If the key already exists, the value will be replaced.
* @note If the key or value is nil or empty, it will throw an NSException in development and will not add the
* custom attribute but does not throw an exception in production.
*/
+ (void)setCustomAttribute:(NSString *)value forKey:(NSString *)key;

/**
* @abstract Ad network.
*
* @return The current ad network.
*/
+ (APSAdNetwork)adNetwork;

/**
* @abstract Set the privacy string.
*
* @param string The privacy string associated with the privacyType.
* @param privacyType A @{ref APSPrivacyType} of the privacy string.
*/
+ (void)setPrivacyString:(NSString *)string type:(APSPrivacyType)privacyType;

/**
* @abstract Set the content URL.
* @descritpion The URL of the content you are displaying to users. For example, if you are displaying content from
* https://yourdomain.com/section/content, you can pass this URL.
*
* @param contentUrl The URL of the app content. If the parameter is nil or empty, it will throw an NSException in
* development and will not set the content URL but does not throw an exception in production.
*/
+ (void)setContentUrl:(NSString *)contentUrl;

/**
* @abstract Set the current impression depth level.
* @description The count of impressions in a given app session. Maintain a global counter within the app for each
* session, then update and pass the counter in this method. This will include total impressions from all of your
* demand and can be reset once a session ends.
*
* @param depthLevel A positive integer of the current impression counter. if the parameter is less than or equal to
* zero, it will throw an NSException in development and will not set the impression depth but does not throw
* an exeception in production.
*/
+ (void)setImpressionDepth:(NSInteger)depthLevel;

/**
* @abstract Set the duration of the session.
* @description The total duration of time a user has spent thus far in a specific app session, expressed in seconds.
* A session can be defined as the following examples: when a user logs in/out or when a user dismisses the app to the
* background. This can be anything that you define as a session within your app.
*
* @param sessionDurationInSeconds The current duration from the beginning of the session in seconds. If the parameter
* is less than or equal to zero, it will throw an NSException in development and wil not set the session duration but
* does not throw an exception in production.
*/
+ (void)setSessionDurationInSeconds:(NSInteger)sessionDurationInSeconds;

/**
* @abstract The SDK Version
*
* @return The current SDK version string.
*/
+ (NSString *)version;

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
//
// APSAd+AdMobAdditions.h
// DTBiOSSDK
//
// Copyright © 2022 amazon.com. All rights reserved.
//

#import <DTBiOSSDK/APSAd.h>

NS_ASSUME_NONNULL_BEGIN

@class DTBAdResponse;

@interface APSAd (AdMobAdditions)

/**
* A utility method to build keywords property for Google AdMob's GADRequest from a slot UUID.
*
* GADBannerView *adView = ...;
* GADRequest *request = [GADRequest request];
* request.keywords = [APSAd keywordsWithSlotUUID:@"a_slot_uuid"];
* [adView loadRequest:request];
*
* @param slotUUID A slot UUID string.
* @return keywords string array used by the AdMob adpater.
*/
+ (NSArray<NSString *> * _Nullable)keywordsWithSlotUUID:(NSString *)slotUUID;

/**
* A utility method to build keywords property for Google AdMob's GADRequest from a slot UUID and a banner ad format.
* The method will throw a runtime exception if the ad format is not a banner type in the development environment and
* return nil in production.
*
* GADBannerView *adView = ...;
* GADRequest *request = [GADRequest request];
* request.keywords = [APSAd keywordsWithSlotUUID:@"a_slot_uuid" adFormat:APSAdFormatBanner];
* [adView loadRequest:request];
*
* @param slotUUID A slot UUID string. Must not be empty.
* @param adFormat An @{ref APSAdFormat}. Must be a banner format type, e.g. APSAdFormatBanner,
* APSAdFormatLeaderBoard or APSAdFormatMREC.
* @return keywords string array used by the AdMob adpater. If parameters have errrors, returns nil.
*/
+ (NSArray<NSString *> * _Nullable)keywordsWithSlotUUID:(NSString *)slotUUID adFormat:(APSAdFormat)adFormat;

/**
* Utility method to verify that the serverParameter provided by Admob callback is valid.
* @param serverParameter A server parameter provided by the GADCustomEventBanner protocol.
* @return YES if the APSAd object contains a valid price point specified in the @{ref serverParameter}, NO otherwise.
*/
- (BOOL)isValidPricePoint:(NSString *)serverParameter;

@end

NS_ASSUME_NONNULL_END
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//
// APSAd+MAXAdditions.h
// DTBiOSSDK
//
// Copyright © 2023 amazon.com. All rights reserved.
//

#ifndef APSAd_MAXAdditions_h
#define APSAd_MAXAdditions_h

/**
* Use the constant as a key for passing a local extra paramerter with a successful APSAd
* in the APSAdRequest completion handler.
*
* [maxBannerView setLocalExtraParameterForKey:AMAZON_SUCCESS_RESPONSE
* value:ad.adResponse];
*/
#define AMAZON_SUCCESS_RESPONSE @"amazon_ad_response"

/**
* Use the constant as a key for passing a local extra paramerter with a failed APSAd
* in the APSAdRequest completion handler.
*
* [maxBannerView setLocalExtraParameterForKey:AMAZON_ERROR_RESPONSE
* value:ad.adError];
*/
#define AMAZON_ERROR_RESPONSE @"amazon_ad_error"

#endif /* APSAd_MAXAdditions_h */
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//
// APSAd+UnityLevelPlayAdditions.h
// DTBiOSSDK
//
// Copyright © 2022 amazon.com. All rights reserved.
//

#import "APSAd.h"

NS_ASSUME_NONNULL_BEGIN

/**
* Use the constant as a key to set the network data for APS.
*
* [IronSource setNetworkDataWithNetworkKey:APS_NETWORK_KEY andNetworkData:networkData];
*/
#define APS_NETWORK_KEY @"APS"

@interface APSAd (UnityLevelPlayAdditions)

/**
* Use this method to build UnityLevelPlay (previously known as IronSource) APS network data.
* [IronSource setNetworkDataWithNetworkKey:@"APS" andNetworkData:[ad networkDataWithKey:IS_BANNER]];
*
* @param key The constant key string of the network data dictionary. The constants, e.g., IS_BANNER, IS_INTERSTITIAL
* are defined in IronSource.h.
* @return A dictionary of APS network data.
*/
- (NSDictionary *)networkDataWithKey:(NSString *)key;

@end

NS_ASSUME_NONNULL_END
Loading

0 comments on commit bf49db1

Please sign in to comment.