@@ -404,22 +404,45 @@ int SetDeferredDeepLinkTimeout_(int duration){
404404 }
405405
406406 // Revenue methods
407- void Revenue_ (const char * currency, double amount){
407+ void Revenue_ (const char * currency, double amount) {
408408 [Singular revenue: [NSString stringWithUTF8String: currency] amount: amount];
409409 }
410410
411- void CustomRevenue_ (const char * eventName, const char * currency, double amount){
411+ void CustomRevenue_ (const char * eventName, const char * currency, double amount) {
412412 [Singular customRevenue: [NSString stringWithUTF8String: eventName] currency: [NSString stringWithUTF8String: currency] amount: amount];
413413 }
414414
415- void RevenueWithAllParams_ (const char * currency, double amount, const char * productSKU, const char * productName, const char * productCategory, int productQuantity, double productPrice){
415+ void RevenueWithAllParams_ (const char * currency, double amount, const char * productSKU, const char * productName, const char * productCategory, int productQuantity, double productPrice) {
416416 [Singular revenue: [NSString stringWithUTF8String: currency] amount: amount productSKU: [NSString stringWithUTF8String: productSKU] productName: [NSString stringWithUTF8String: productName] productCategory: [NSString stringWithUTF8String: productCategory] productQuantity: productQuantity productPrice: productPrice];
417417 }
418418
419- void CustomRevenueWithAllParams_ (const char * eventName, const char * currency, double amount, const char * productSKU, const char * productName, const char * productCategory, int productQuantity, double productPrice){
419+ void CustomRevenueWithAllParams_ (const char * eventName, const char * currency, double amount, const char * productSKU, const char * productName, const char * productCategory, int productQuantity, double productPrice) {
420420 [Singular customRevenue: [NSString stringWithUTF8String: eventName] currency: [NSString stringWithUTF8String: currency] amount: amount productSKU: [NSString stringWithUTF8String: productSKU] productName: [NSString stringWithUTF8String: productName] productCategory: [NSString stringWithUTF8String: productCategory] productQuantity: productQuantity productPrice: productPrice];
421421 }
422-
422+
423+ void RevenueWithAttributes_ (const char * currency, double amount, const char * attributesAsJson) {
424+ NSError *error;
425+ NSDictionary * attributesDictionary = [NSJSONSerialization JSONObjectWithData: [[NSString stringWithUTF8String: attributesAsJson]
426+ dataUsingEncoding: NSUTF8StringEncoding] options: 0 error: &error];
427+ if (!error) {
428+ [Singular revenue: [NSString stringWithUTF8String: currency]
429+ amount: amount
430+ withAttributes: attributesDictionary];
431+ }
432+ }
433+
434+ void CustomRevenueWithAttributes_ (const char * eventName, const char * currency, double amount, const char * attributesAsJson) {
435+ NSError *error;
436+ NSDictionary * attributesDictionary = [NSJSONSerialization JSONObjectWithData: [[NSString stringWithUTF8String: attributesAsJson]
437+ dataUsingEncoding: NSUTF8StringEncoding] options: 0 error: &error];
438+ if (!error) {
439+ [Singular customRevenue: [NSString stringWithUTF8String: eventName]
440+ currency: [NSString stringWithUTF8String: currency]
441+ amount: amount
442+ withAttributes: attributesDictionary];
443+ }
444+ }
445+
423446 // Custom user id
424447 void SetCustomUserId_ (const char * customUserId){
425448 [Singular setCustomUserId: [NSString stringWithUTF8String: customUserId]];
0 commit comments