@protocol ATAdAdapter <NSObject>
#pragma mark - Initialize the network SDK and start using the network SDK to load ads
/// Adapter initialization method
/// - Parameters:
/// - serverInfo: Data from the server
/// - localInfo: Local data
- (nonnull instancetype)initWithNetworkCustomInfo:(nonnull NSDictionary *)serverInfo
localInfo:(nonnull NSDictionary *)localInfo;
#pragma mark - General
/// The Adapter sends a load request, indicating that the ad source is sending an ad load request.
/// - Parameters:
/// - serverInfo: Data from the server
/// - localInfo: Local data
/// - completion: Completion callback
- (void)loadADWithInfo:(nonnull NSDictionary *)serverInfo
localInfo:(nonnull NSDictionary *)localInfo
completion:(nonnull void (^)(NSArray<NSDictionary *> * _Nonnull array, NSError * _Nonnull error))completion;
/// Check whether the ad source is ready
/// - Parameters:
/// - customObject: Ad source object
/// - info: Information
+ (BOOL)adReadyWithCustomObject:(nonnull id)customObject info:(nonnull NSDictionary *)info;
@optional
@property (nonatomic, copy) void (^metaDataDidLoadedBlock)(void);
/*
* Create a reward instance for download events, only used for download events.
*/
+ (id<ATAd>)readyFilledAdWithPlacementModel:(ATPlacementModel *)placementModel
requestID:(NSString *)requestID
priority:(NSInteger)priority
unitGroup:(ATUnitGroupModel *)unitGroup
finalWaterfall:(ATWaterfallModel *)finalWaterfall
localInfo:(NSDictionary *)localInfo;
+ (BOOL)adReadyForInfo:(NSDictionary *)info;
@end