63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
|  | //
 | ||
|  | //  TAAppLovinSyncData.m
 | ||
|  | //  ThinkingSDK.default-Base-Core-Extension-Util-iOS
 | ||
|  | //
 | ||
|  | //  Created by wwango on 2022/9/28.
 | ||
|  | //
 | ||
|  | 
 | ||
|  | #import "TAAppLovinSyncData.h"
 | ||
|  | 
 | ||
|  | @implementation TAAppLovinSyncData
 | ||
|  | 
 | ||
|  | #pragma clang diagnostic push
 | ||
|  | #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
 | ||
|  | 
 | ||
|  | - (void)syncThirdData:(id<TAThinkingTrackProtocol>)taInstance property:(NSDictionary *)property {
 | ||
|  |     
 | ||
|  |     if (!self.customPropety || [self.customPropety isKindOfClass:[NSDictionary class]]) {
 | ||
|  |         self.customPropety = @{};
 | ||
|  |     }
 | ||
|  |     
 | ||
|  |     NSString *distinctId = [taInstance getDistinctId] ? [taInstance getDistinctId] : @"";
 | ||
|  |     
 | ||
|  |     static dispatch_once_t onceToken;
 | ||
|  |     Class cls = NSClassFromString(@"ALSdk");
 | ||
|  |     SEL sel1 = NSSelectorFromString(@"shared");
 | ||
|  |     SEL sel2 = NSSelectorFromString(@"setUserIdentifier:");
 | ||
|  |     __block id instance;
 | ||
|  |     dispatch_once(&onceToken, ^{
 | ||
|  |         if (cls && [cls respondsToSelector:sel1]) {
 | ||
|  |             instance = [cls performSelector:sel1];
 | ||
|  |             if ([instance respondsToSelector:sel2]) {
 | ||
|  |                 [instance performSelector:sel2 withObject:distinctId];
 | ||
|  |             }
 | ||
|  |         }
 | ||
|  |     });
 | ||
|  |     
 | ||
|  | 
 | ||
|  |     if ([property isKindOfClass:[NSDictionary class]] && [property.allKeys containsObject:TASyncDataKey]) {
 | ||
|  |         id customData = property[TASyncDataKey];
 | ||
|  |         Class cls = NSClassFromString(@"MAAd");
 | ||
|  |         if ([customData isKindOfClass:cls]) {
 | ||
|  |             double revenue = [(NSNumber *)[customData performSelector:@selector(revenue)] doubleValue];
 | ||
|  |             NSString *networkName = [customData performSelector:@selector(networkName)];
 | ||
|  |             NSString *placement = [customData performSelector:@selector(placement)];
 | ||
|  |             NSString *adUnitId = [customData performSelector:@selector(adUnitIdentifier)];
 | ||
|  |             NSString *format  = [[customData performSelector:@selector(format)] performSelector:@selector(label)];
 | ||
|  |             NSString *countryCode = [instance valueForKeyPath:@"configuration.countryCode"];
 | ||
|  |             
 | ||
|  |             [taInstance track:@"appLovin_sdk_ad_revenue" properties:@{
 | ||
|  |                 @"revenue":@(revenue),
 | ||
|  |                 @"networkName":networkName,
 | ||
|  |                 @"placement":placement,
 | ||
|  |                 @"adUnitId":adUnitId,
 | ||
|  |                 @"format":format,
 | ||
|  |                 @"countryCode":countryCode}];
 | ||
|  |         }
 | ||
|  |     }
 | ||
|  |     
 | ||
|  | }
 | ||
|  | #pragma clang diagnostic pop
 | ||
|  | 
 | ||
|  | @end
 |