Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -647,7 +647,8 @@ - (void)messageViewPageImpressionRequest:(OSInAppMessageInternal *)message withP
withPlayerId:OneSignalUserManagerImpl.sharedInstance.pushSubscriptionId
withMessageId:message.messageId
withPageId:pageId
forVariantId:message.variantId];
forVariantId:message.variantId
withEventId:[NSUUID UUID].UUIDString];

[OneSignalCoreImpl.sharedClient executeRequest:metricsRequest
onSuccess:^(NSDictionary *result) {
Expand Down Expand Up @@ -683,10 +684,14 @@ - (void)messageViewImpressionRequest:(OSInAppMessageInternal *)message {
[self.impressionedInAppMessages addObject:message.messageId];

// Create the request and attach a payload to it
// Per-occurrence event_id so turbine can dedup at-least-once retries. The
// request object is reused across client reattempts, so this id is stable
// across them (NOTP-1520).
let metricsRequest = [OSRequestInAppMessageViewed withAppId:OneSignalIdentifiers.currentAppId
withPlayerId:OneSignalUserManagerImpl.sharedInstance.pushSubscriptionId
withMessageId:message.messageId
forVariantId:message.variantId];
forVariantId:message.variantId
withEventId:[NSUUID UUID].UUIDString];

[OneSignalCoreImpl.sharedClient executeRequest:metricsRequest
onSuccess:^(NSDictionary *result) {
Expand Down Expand Up @@ -1098,7 +1103,8 @@ - (void)sendClickRESTCall:(OSInAppMessageInternal *)message withAction:(OSInAppM
withPlayerId:OneSignalUserManagerImpl.sharedInstance.pushSubscriptionId
withMessageId:message.messageId
forVariantId:message.variantId
withAction:action];
withAction:action
withEventId:[NSUUID UUID].UUIDString];

[OneSignalCoreImpl.sharedClient executeRequest:metricsRequest
onSuccess:^(NSDictionary *result) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@
@end

@interface OSRequestInAppMessageViewed : OneSignalRequest
+ (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId withPlayerId:(NSString * _Nonnull)playerId withMessageId:(NSString * _Nonnull)messageId forVariantId:(NSString * _Nonnull)variantId;
+ (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId withPlayerId:(NSString * _Nonnull)playerId withMessageId:(NSString * _Nonnull)messageId forVariantId:(NSString * _Nonnull)variantId withEventId:(NSString * _Nonnull)eventId;
@end

@interface OSRequestInAppMessagePageViewed : OneSignalRequest
+ (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId withPlayerId:(NSString * _Nonnull)playerId withMessageId:(NSString * _Nonnull)messageId withPageId:(NSString * _Nonnull)pageId forVariantId:(NSString * _Nonnull)variantId;
+ (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId withPlayerId:(NSString * _Nonnull)playerId withMessageId:(NSString * _Nonnull)messageId withPageId:(NSString * _Nonnull)pageId forVariantId:(NSString * _Nonnull)variantId withEventId:(NSString * _Nonnull)eventId;
@end

@interface OSRequestLoadInAppMessageContent : OneSignalRequest
Expand All @@ -53,5 +53,6 @@
withPlayerId:(NSString * _Nonnull)playerId
withMessageId:(NSString * _Nonnull)messageId
forVariantId:(NSString * _Nonnull)variantId
withAction:(OSInAppMessageClickResult * _Nonnull)action;
withAction:(OSInAppMessageClickResult * _Nonnull)action
withEventId:(NSString * _Nonnull)eventId;
@end
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,16 @@ @implementation OSRequestInAppMessageViewed
+ (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId
withPlayerId:(NSString * _Nonnull)playerId
withMessageId:(NSString * _Nonnull)messageId
forVariantId:(NSString *)variantId {
forVariantId:(NSString *)variantId
withEventId:(NSString *)eventId {
let request = [OSRequestInAppMessageViewed new];

let params = [NSMutableDictionary new];
params[@"device_type"] = @0;
params[@"player_id"] = playerId;
params[@"app_id"] = appId;
params[@"variant_id"] = variantId;
params[@"event_id"] = eventId;

request.parameters = params;
request.method = POST;
Expand All @@ -87,7 +89,8 @@ + (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId
withPlayerId:(NSString * _Nonnull)playerId
withMessageId:(NSString * _Nonnull)messageId
withPageId:(NSString * _Nonnull)pageId
forVariantId:(NSString *)variantId {
forVariantId:(NSString *)variantId
withEventId:(NSString *)eventId {
let request = [OSRequestInAppMessagePageViewed new];

let params = [NSMutableDictionary new];
Expand All @@ -96,6 +99,7 @@ + (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId
params[@"app_id"] = appId;
params[@"variant_id"] = variantId;
params[@"page_id"] = pageId;
params[@"event_id"] = eventId;

request.parameters = params;
request.method = POST;
Expand All @@ -110,7 +114,8 @@ + (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId
withPlayerId:(NSString * _Nonnull)playerId
withMessageId:(NSString * _Nonnull)messageId
forVariantId:(NSString * _Nonnull)variantId
withAction:(OSInAppMessageClickResult * _Nonnull)action {
withAction:(OSInAppMessageClickResult * _Nonnull)action
withEventId:(NSString * _Nonnull)eventId {
let request = [OSRequestInAppMessageClicked new];

let params = [NSMutableDictionary new];
Expand All @@ -120,6 +125,7 @@ + (instancetype _Nonnull)withAppId:(NSString * _Nonnull)appId
params[@"click_id"] = action.clickId ?: @"";
params[@"variant_id"] = variantId;
params[@"first_click"] = @(action.firstClick);
params[@"event_id"] = eventId;

request.parameters = params;
request.method = POST;
Expand Down
34 changes: 23 additions & 11 deletions iOS_SDK/OneSignalSDK/OneSignalInAppMessagesTests/IAMRequestTests.m
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,17 @@ - (void)testInAppMessageViewed {
withAppId:testAppId
withPlayerId:testSubscriptionId
withMessageId:testMessageId
forVariantId:testVariantId];
forVariantId:testVariantId
withEventId:@"test_event_id"];
NSString *correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/impression", testMessageId]);

XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString);
XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{
@"device_type": @0,
@"player_id": testSubscriptionId,
@"app_id": testAppId,
@"variant_id": testVariantId
@"variant_id": testVariantId,
@"event_id": @"test_event_id"
}));
}

Expand All @@ -102,11 +104,13 @@ - (void)testInAppMessageViewed_withNilArguments {
withAppId:testAppId
withPlayerId:nil
withMessageId:testMessageId
forVariantId:nil];
forVariantId:nil
withEventId:@"test_event_id"];

XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{
@"device_type": @0,
@"app_id": testAppId
@"app_id": testAppId,
@"event_id": @"test_event_id"
}));
}

Expand All @@ -116,7 +120,8 @@ - (void)testInAppMessagePageViewed {
withPlayerId:testSubscriptionId
withMessageId:testMessageId
withPageId:testPageId
forVariantId:testVariantId];
forVariantId:testVariantId
withEventId:@"test_event_id"];
NSString *correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/pageImpression", testMessageId]);

XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString);
Expand All @@ -125,7 +130,8 @@ - (void)testInAppMessagePageViewed {
@"player_id": testSubscriptionId,
@"app_id": testAppId,
@"variant_id": testVariantId,
@"page_id": testPageId
@"page_id": testPageId,
@"event_id": @"test_event_id"
}));
}

Expand All @@ -135,11 +141,13 @@ - (void)testInAppMessagePageViewed_withNilArguments {
withPlayerId:nil
withMessageId:testMessageId
withPageId:nil
forVariantId:nil];
forVariantId:nil
withEventId:@"test_event_id"];

XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{
@"device_type": @0,
@"app_id": testAppId,
@"event_id": @"test_event_id"
}));
}

Expand All @@ -149,7 +157,8 @@ - (void)testInAppMessageClicked {
withPlayerId:testSubscriptionId
withMessageId:testMessageId
forVariantId:testVariantId
withAction:testClickResult];
withAction:testClickResult
withEventId:@"test_event_id"];
NSString *correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/click", testMessageId]);

XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString);
Expand All @@ -159,7 +168,8 @@ - (void)testInAppMessageClicked {
@"player_id": testSubscriptionId,
@"click_id": testClickResult.clickId ?: @"",
@"variant_id": testVariantId,
@"first_click": @(testClickResult.firstClick)
@"first_click": @(testClickResult.firstClick),
@"event_id": @"test_event_id"
}));
}

Expand All @@ -169,13 +179,15 @@ - (void)testInAppMessageClicked_withNilArguments {
withPlayerId:nil
withMessageId:testMessageId
forVariantId:nil
withAction:testClickResult];
withAction:testClickResult
withEventId:@"test_event_id"];

XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{
@"app_id": testAppId,
@"device_type": @0,
@"click_id": testClickResult.clickId ?: @"",
@"first_click": @(testClickResult.firstClick)
@"first_click": @(testClickResult.firstClick),
@"event_id": @"test_event_id"
}));
}

Expand Down
Loading