68 lines
2.6 KiB
Plaintext
68 lines
2.6 KiB
Plaintext
#import "UMSPImpressionDelegate.h"
|
|
|
|
@implementation UMSPImpressionDelegate
|
|
|
|
- (id)initWithCallback:(ImpressionCallback)onImpression {
|
|
self = [super init];
|
|
|
|
if (self) {
|
|
self.onImpression = onImpression;
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
- (void)onImpressionWithAdUnitId:(NSString *)adUnitId impressionData:(UMSImpressionData *)impressionData {
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
UMSPImpressionData unityImpressionData;
|
|
|
|
if (impressionData) {
|
|
unityImpressionData.Timestamp = [impressionData.timestamp UTF8String];
|
|
unityImpressionData.AdUnitName = [impressionData.adUnitName UTF8String];
|
|
unityImpressionData.AdUnitId = [impressionData.adUnitId UTF8String];
|
|
unityImpressionData.AdUnitFormat = [impressionData.adUnitFormat UTF8String];
|
|
unityImpressionData.ImpressionId = [impressionData.impressionId UTF8String];
|
|
unityImpressionData.Currency = [impressionData.currency UTF8String];
|
|
unityImpressionData.RevenueAccuracy = [impressionData.revenueAccuracy UTF8String];
|
|
unityImpressionData.publisherRevenuePerImpression = [impressionData.publisherRevenuePerImpression doubleValue];
|
|
unityImpressionData.publisherRevenuePerImpressionInMicros = impressionData.publisherRevenuePerImpressionInMicros;
|
|
unityImpressionData.AdSourceName = [impressionData.adSourceName UTF8String];
|
|
unityImpressionData.AdSourceInstance = [impressionData.adSourceInstance UTF8String];
|
|
unityImpressionData.AppVersion = [impressionData.appVersion UTF8String];
|
|
unityImpressionData.LineItemId = [impressionData.lineItemId UTF8String];
|
|
unityImpressionData.LineItemName = [impressionData.lineItemName UTF8String];
|
|
unityImpressionData.LineItemPriority = [impressionData.lineItemPriority UTF8String];
|
|
unityImpressionData.Country = [impressionData.country UTF8String];
|
|
}
|
|
|
|
if (self.onImpression) {
|
|
self.onImpression([adUnitId UTF8String], impressionData ? &unityImpressionData : nil);
|
|
}
|
|
});
|
|
}
|
|
|
|
@end
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
void * UMSPImpressionDelegateCreate(ImpressionCallback impressionCallback) {
|
|
UMSPImpressionDelegate *delegate = [[UMSPImpressionDelegate alloc] initWithCallback:impressionCallback];
|
|
|
|
return (__bridge_retained void *)delegate;
|
|
}
|
|
|
|
void UMSPImpressionDelegateDestroy(void *ptr) {
|
|
if (!ptr) return;
|
|
|
|
UMSPImpressionDelegate *delegate = (__bridge_transfer UMSPImpressionDelegate *)ptr;
|
|
|
|
delegate.onImpression = nil;
|
|
}
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
|
|
#endif
|