SquareDash/Library/PackageCache/com.unity.services.mediation@1.0.5/Runtime/Plugins/iOS/UMSPImpressionDelegate.mm
kingjuulian06 0efb85038a Arbeit 2
2023-11-21 22:03:49 +01:00

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