Skip to content

Commit

Permalink
allow AnalyticsEvent's label and value to be optional (issue stephenl…
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Slosser committed Feb 14, 2019
1 parent e22d8e5 commit 17daac8
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 18 deletions.
21 changes: 13 additions & 8 deletions SimpleCocoaAnalytics/AnalyticsEvent.m
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,19 @@ + (AnalyticsEvent*)analyticsEventWithDictionary:(NSDictionary*)dict {
return analyticsEvent;
}

- (NSDictionary*)dictionaryRepresenation {
// We expect all of the values to be filled in here. If not, BOOM.
return @{
kEventCategory:self.category,
kEventActionKey:self.action,
kEventLabelKey:self.label,
kEventValue:self.value
};
- (NSDictionary*)dictionaryRepresentation {
NSMutableDictionary *result = [NSMutableDictionary dictionaryWithDictionary:
@{
kEventCategory:self.category,
kEventActionKey:self.action,
}];
if (self.label != nil) {
result[kEventLabelKey] = self.label;
}
if (self.value != nil) {
result[kEventValue] = self.value;
};
return result.copy;
}

@end
25 changes: 15 additions & 10 deletions SimpleCocoaAnalytics/AnalyticsHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -403,17 +403,22 @@ - (NSData*)createEventPayload:(AnalyticsEvent*)analyticsEvent
&ea=play // Event Action. Required.
*/

NSString *payloadString = [NSString stringWithFormat:@"v=1&tid=%@&cid=%@&an=%@&t=event&ec=%@&ea=%@&el=%@&ev=%@",
accountIdentifier, // account id
machineIdentifier, // client id
appName, // app name
NSMutableString *string = [NSMutableString stringWithFormat:@"v=1&tid=%@&cid=%@&an=%@",
accountIdentifier, // account id
machineIdentifier, // client id
appName // app name
];
[string appendFormat:@"&t=event&ec=%@&ea=%@",
analyticsEvent.category,
analyticsEvent.action,
analyticsEvent.label,
analyticsEvent.value
];

payloadString = [payloadString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
analyticsEvent.action];

if (analyticsEvent.label != nil) {
[string appendFormat:@"&el=%@", analyticsEvent.label];
}
if (analyticsEvent.value != nil) {
[string appendFormat:@"&ev=%@", analyticsEvent.value];
}
NSString *payloadString = [string stringByAddingPercentEncodingWithAllowedCharacters:NSCharacterSet.URLPathAllowedCharacterSet];

return [payloadString dataUsingEncoding:NSUTF8StringEncoding];
}
Expand Down

0 comments on commit 17daac8

Please sign in to comment.