Skip to content

Commit b54e2eb

Browse files
authored
Added class BranchConfigurationController to send operational_metrics with v1/install request. (#1498)
* Added class BranchConfigurationController to send operational_metrics with v1/install request.
1 parent d20daa8 commit b54e2eb

File tree

9 files changed

+290
-2
lines changed

9 files changed

+290
-2
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
//
2+
// BranchConfigurationControllerTests.m
3+
// Branch-SDK-Tests
4+
//
5+
// Created by Nidhi Dixit on 6/12/25.
6+
//
7+
8+
9+
#import <XCTest/XCTest.h>
10+
#import "BranchConfigurationController.h"
11+
#import "BranchConstants.h"
12+
#import "BNCRequestFactory.h"
13+
#import "BNCEncodingUtils.h"
14+
15+
@interface BranchConfigurationControllerTests : XCTestCase
16+
@end
17+
18+
@implementation BranchConfigurationControllerTests
19+
20+
- (void)testSingletonInstance {
21+
22+
BranchConfigurationController *instance1 = [BranchConfigurationController sharedInstance];
23+
XCTAssertNotNil(instance1);
24+
25+
BranchConfigurationController *instance2 = [BranchConfigurationController sharedInstance];
26+
XCTAssertEqual(instance1, instance2);
27+
}
28+
29+
- (void)testPropertySettersAndGetters {
30+
BranchConfigurationController *configController = [BranchConfigurationController sharedInstance];
31+
32+
NSString *keySource = BRANCH_KEY_SOURCE_GET_INSTANCE_API;
33+
configController.branchKeySource = keySource;
34+
XCTAssertTrue([configController.branchKeySource isEqualToString:keySource]);
35+
36+
configController.deferInitForPluginRuntime = YES;
37+
XCTAssertTrue(configController.deferInitForPluginRuntime);
38+
configController.deferInitForPluginRuntime = NO;
39+
XCTAssertFalse(configController.deferInitForPluginRuntime);
40+
41+
configController.checkPasteboardOnInstall = YES;
42+
XCTAssertTrue(configController.checkPasteboardOnInstall);
43+
configController.checkPasteboardOnInstall = NO;
44+
XCTAssertFalse(configController.checkPasteboardOnInstall);
45+
}
46+
47+
- (void)testGetConfiguration {
48+
BranchConfigurationController *configController = [BranchConfigurationController sharedInstance];
49+
configController.branchKeySource = BRANCH_KEY_SOURCE_INFO_PLIST;
50+
configController.deferInitForPluginRuntime = YES;
51+
configController.checkPasteboardOnInstall = YES;
52+
53+
NSDictionary *configDict = [configController getConfiguration];
54+
XCTAssertNotNil(configDict);
55+
56+
XCTAssertTrue([configDict[BRANCH_REQUEST_KEY_BRANCH_KEY_SOURCE] isEqualToString:BRANCH_KEY_SOURCE_INFO_PLIST]);
57+
XCTAssertEqualObjects(configDict[BRANCH_REQUEST_KEY_DEFER_INIT_FOR_PLUGIN_RUNTIME], @(YES));
58+
XCTAssertEqualObjects(configDict[BRANCH_REQUEST_KEY_CHECK_PASTEBOARD_ON_INSTALL], @(YES));
59+
60+
NSDictionary *frameworks = configDict[BRANCH_REQUEST_KEY_LINKED_FRAMEORKS];
61+
XCTAssertNotNil(frameworks);
62+
63+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_SUPPORT], @(YES));
64+
XCTAssertEqualObjects(frameworks[FRAMEWORK_ATT_TRACKING_MANAGER], @(YES));
65+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_FIREBASE_CRASHLYTICS], @(YES));
66+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_SAFARI_SERVICES], @(NO));
67+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_APP_ADS_ONDEVICE_CONVERSION], @(NO));
68+
69+
}
70+
71+
- (void)testInstallRequestParams {
72+
BranchConfigurationController *configController = [BranchConfigurationController sharedInstance];
73+
configController.branchKeySource = BRANCH_KEY_SOURCE_INFO_PLIST;
74+
configController.deferInitForPluginRuntime = YES;
75+
configController.checkPasteboardOnInstall = YES;
76+
77+
NSString* requestUUID = [[NSUUID UUID ] UUIDString];
78+
NSNumber* requestCreationTimeStamp = BNCWireFormatFromDate([NSDate date]);
79+
BNCRequestFactory *factory = [[BNCRequestFactory alloc] initWithBranchKey:@"key_abcd" UUID:requestUUID TimeStamp:requestCreationTimeStamp];
80+
NSDictionary *installDict = [factory dataForInstallWithURLString:@"https://branch.io"];
81+
82+
NSDictionary *configDict = installDict[BRANCH_REQUEST_KEY_OPERATIONAL_METRICS];
83+
XCTAssertNotNil(configDict);
84+
85+
XCTAssertTrue([configDict[BRANCH_REQUEST_KEY_BRANCH_KEY_SOURCE] isEqualToString:BRANCH_KEY_SOURCE_INFO_PLIST]);
86+
XCTAssertEqualObjects(configDict[BRANCH_REQUEST_KEY_DEFER_INIT_FOR_PLUGIN_RUNTIME], @(YES));
87+
XCTAssertEqualObjects(configDict[BRANCH_REQUEST_KEY_CHECK_PASTEBOARD_ON_INSTALL], @(YES));
88+
89+
NSDictionary *frameworks = configDict[BRANCH_REQUEST_KEY_LINKED_FRAMEORKS];
90+
XCTAssertNotNil(frameworks);
91+
92+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_SUPPORT], @(YES));
93+
XCTAssertEqualObjects(frameworks[FRAMEWORK_ATT_TRACKING_MANAGER], @(YES));
94+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_FIREBASE_CRASHLYTICS], @(YES));
95+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_SAFARI_SERVICES], @(NO));
96+
XCTAssertEqualObjects(frameworks[FRAMEWORK_AD_APP_ADS_ONDEVICE_CONVERSION], @(NO));
97+
98+
}
99+
100+
@end

Branch-TestBed/Branch-TestBed.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,10 @@
246246
E7AC74752DB069B2002D8C40 /* nanopb in Frameworks */ = {isa = PBXBuildFile; productRef = E7AC74742DB069B2002D8C40 /* nanopb */; };
247247
E7AC747B2DB0700D002D8C40 /* BranchSDK in Frameworks */ = {isa = PBXBuildFile; productRef = E7AC747A2DB0700D002D8C40 /* BranchSDK */; };
248248
E7AC747E2DB0714B002D8C40 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = E7AC747D2DB07145002D8C40 /* libc++.tbd */; };
249+
E7AE4A092DFB2C4400696805 /* BranchConfigurationControllerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E7AE4A082DFB2C4400696805 /* BranchConfigurationControllerTests.m */; };
250+
E7AE4A0C2DFB2D0100696805 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E7AE4A0B2DFB2D0100696805 /* BranchConfigurationController.h */; };
249251
E7E28ECA2DD2424C00F75D0D /* BNCInAppBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E7E28EC82DD2424C00F75D0D /* BNCInAppBrowser.m */; };
252+
E7FC47732DFC7B020072B3ED /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E7FC47722DFC7B020072B3ED /* BranchConfigurationController.m */; };
250253
F1CF14111F4CC79F00BB2694 /* CoreSpotlight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 67F270881BA9FCFF002546A7 /* CoreSpotlight.framework */; settings = {ATTRIBUTES = (Required, ); }; };
251254
/* End PBXBuildFile section */
252255

@@ -569,7 +572,10 @@
569572
E7AC74772DB06D05002D8C40 /* NSError+Branch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSError+Branch.m"; sourceTree = "<group>"; };
570573
E7AC74782DB06D47002D8C40 /* NSError+Branch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSError+Branch.h"; sourceTree = "<group>"; };
571574
E7AC747D2DB07145002D8C40 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk/usr/lib/libc++.tbd"; sourceTree = DEVELOPER_DIR; };
575+
E7AE4A082DFB2C4400696805 /* BranchConfigurationControllerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BranchConfigurationControllerTests.m; sourceTree = "<group>"; };
576+
E7AE4A0B2DFB2D0100696805 /* BranchConfigurationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BranchConfigurationController.h; sourceTree = "<group>"; };
572577
E7E28EC82DD2424C00F75D0D /* BNCInAppBrowser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCInAppBrowser.m; sourceTree = "<group>"; };
578+
E7FC47722DFC7B020072B3ED /* BranchConfigurationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BranchConfigurationController.m; path = ../Sources/BranchSDK/BranchConfigurationController.m; sourceTree = "<group>"; };
573579
F1D4F9AC1F323F01002D13FF /* Branch-TestBed-UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Branch-TestBed-UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
574580
/* End PBXFileReference section */
575581

@@ -651,6 +657,7 @@
651657
4D16837A2098C901008819E3 /* Branch-SDK-Tests */ = {
652658
isa = PBXGroup;
653659
children = (
660+
E7AE4A082DFB2C4400696805 /* BranchConfigurationControllerTests.m */,
654661
E7A728BC2AA9A112009343B7 /* BNCAPIServerTest.m */,
655662
5FC7326F22DD1F93006E6FBC /* BNCAppleReceiptTests.m */,
656663
4D1683972098C901008819E3 /* BNCApplicationTests.m */,
@@ -838,6 +845,7 @@
838845
5F644B6E2B7AA810000DCD78 /* Private */ = {
839846
isa = PBXGroup;
840847
children = (
848+
E7AE4A0B2DFB2D0100696805 /* BranchConfigurationController.h */,
841849
E71E397A2DD3C14800110F59 /* BNCInAppBrowser.h */,
842850
5F644B762B7AA810000DCD78 /* BNCAppGroupsData.h */,
843851
5F644B702B7AA810000DCD78 /* BNCAppleReceipt.h */,
@@ -916,6 +924,7 @@
916924
670016571940F51400A9E103 = {
917925
isa = PBXGroup;
918926
children = (
927+
E7FC47722DFC7B020072B3ED /* BranchConfigurationController.m */,
919928
E7AC74762DB06B42002D8C40 /* Reflection_ODM_Tests.xctestplan */,
920929
6589EBA52674270100F2E28B /* Branch-TestBed-CI.xctestplan */,
921930
033FC71025AC1E5800D8319E /* Branch-TestBed.xctestplan */,
@@ -1088,6 +1097,7 @@
10881097
5F644C062B7AA811000DCD78 /* UIViewController+Branch.h in Headers */,
10891098
5F644C022B7AA811000DCD78 /* BNCPasteboard.h in Headers */,
10901099
5F644C0F2B7AA811000DCD78 /* BranchOpenRequest.h in Headers */,
1100+
E7AE4A0C2DFB2D0100696805 /* BranchConfigurationController.h in Headers */,
10911101
5F644C2C2B7AA811000DCD78 /* BNCRequestFactory.h in Headers */,
10921102
5F644C142B7AA811000DCD78 /* BNCDeviceSystem.h in Headers */,
10931103
);
@@ -1364,6 +1374,7 @@
13641374
isa = PBXSourcesBuildPhase;
13651375
buildActionMask = 2147483647;
13661376
files = (
1377+
E7FC47732DFC7B020072B3ED /* BranchConfigurationController.m in Sources */,
13671378
5F644BB92B7AA811000DCD78 /* NSError+Branch.m in Sources */,
13681379
5F644C482B7AA811000DCD78 /* BNCCallbackMap.m in Sources */,
13691380
5F644BBE2B7AA811000DCD78 /* BNCApplication.m in Sources */,
@@ -1499,6 +1510,7 @@
14991510
C12320B52808DB90007771C0 /* BranchQRCodeTests.m in Sources */,
15001511
5F3D671B233062FD00454FF1 /* BNCJsonLoader.m in Sources */,
15011512
4D1683C02098C902008819E3 /* BranchUniversalObjectTests.m in Sources */,
1513+
E7AE4A092DFB2C4400696805 /* BranchConfigurationControllerTests.m in Sources */,
15021514
5FC7327022DD1F93006E6FBC /* BNCAppleReceiptTests.m in Sources */,
15031515
4D1683C82098C902008819E3 /* NSStringBranchTests.m in Sources */,
15041516
5F892EC5236116CD0023AEC1 /* NSErrorBranchTests.m in Sources */,

BranchSDK.xcodeproj/project.pbxproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,12 @@
499499
E71E39722DD3A92900110F59 /* BNCInAppBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */; };
500500
E71E39732DD3A92900110F59 /* BNCInAppBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E71E396E2DD3A92900110F59 /* BNCInAppBrowser.m */; };
501501
E71E39742DD3A92900110F59 /* BNCInAppBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */; };
502+
E73D02812DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */; };
503+
E73D02822DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */; };
504+
E73D02832DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */; };
505+
E73D02842DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */; };
506+
E73D02852DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */ = {isa = PBXBuildFile; fileRef = E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */; };
507+
E73D02862DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */ = {isa = PBXBuildFile; fileRef = E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */; };
502508
E7F311AE2DACB4D400F824A7 /* BNCODMInfoCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = E7F311AD2DACB4D400F824A7 /* BNCODMInfoCollector.m */; };
503509
E7F311AF2DACB4D400F824A7 /* BNCODMInfoCollector.m in Sources */ = {isa = PBXBuildFile; fileRef = E7F311AD2DACB4D400F824A7 /* BNCODMInfoCollector.m */; };
504510
E7F311B12DACB54100F824A7 /* BNCODMInfoCollector.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */; };
@@ -717,6 +723,8 @@
717723
E52E5B092CC79E5C00F553EE /* BranchFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BranchFileLogger.m; sourceTree = "<group>"; };
718724
E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BNCInAppBrowser.h; sourceTree = "<group>"; };
719725
E71E396E2DD3A92900110F59 /* BNCInAppBrowser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCInAppBrowser.m; sourceTree = "<group>"; };
726+
E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BranchConfigurationController.h; sourceTree = "<group>"; };
727+
E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BranchConfigurationController.m; sourceTree = "<group>"; };
720728
E7F311AD2DACB4D400F824A7 /* BNCODMInfoCollector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BNCODMInfoCollector.m; sourceTree = "<group>"; };
721729
E7F311B02DACB54100F824A7 /* BNCODMInfoCollector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BNCODMInfoCollector.h; sourceTree = "<group>"; };
722730
/* End PBXFileReference section */
@@ -904,6 +912,7 @@
904912
5FCDD3732B7AC6A100EAF29F /* NSMutableDictionary+Branch.m */,
905913
5FCDD37C2B7AC6A100EAF29F /* NSString+Branch.m */,
906914
5FCDD3F52B7AC6A100EAF29F /* UIViewController+Branch.m */,
915+
E73D02802DEE8AE90076C3F1 /* BranchConfigurationController.m */,
907916
5FCDD3B42B7AC6A100EAF29F /* Private */,
908917
5FCDD3982B7AC6A100EAF29F /* Public */,
909918
);
@@ -997,6 +1006,7 @@
9971006
E52E5B052CC79E4E00F553EE /* BranchFileLogger.h */,
9981007
5FCDD3BB2B7AC6A100EAF29F /* UIViewController+Branch.h */,
9991008
E71E396D2DD3A92900110F59 /* BNCInAppBrowser.h */,
1009+
E73D027F2DEE8AE90076C3F1 /* BranchConfigurationController.h */,
10001010
);
10011011
path = Private;
10021012
sourceTree = "<group>";
@@ -1103,6 +1113,7 @@
11031113
5FCDD54F2B7AC6A300EAF29F /* BranchJsonConfig.h in Headers */,
11041114
5FCDD4E02B7AC6A200EAF29F /* BNCSKAdNetwork.h in Headers */,
11051115
5FCDD5102B7AC6A300EAF29F /* BNCDeviceSystem.h in Headers */,
1116+
E73D02832DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */,
11061117
5FCDD51F2B7AC6A300EAF29F /* BNCNetworkInterface.h in Headers */,
11071118
5FA71BA82B7AE6B2008009CA /* Branch.h in Headers */,
11081119
);
@@ -1186,6 +1197,7 @@
11861197
5FCDD4D82B7AC6A200EAF29F /* BNCAppleReceipt.h in Headers */,
11871198
5FCDD5502B7AC6A300EAF29F /* BranchJsonConfig.h in Headers */,
11881199
5FCDD4E12B7AC6A200EAF29F /* BNCSKAdNetwork.h in Headers */,
1200+
E73D02822DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */,
11891201
5FCDD5112B7AC6A300EAF29F /* BNCDeviceSystem.h in Headers */,
11901202
5FCDD5202B7AC6A300EAF29F /* BNCNetworkInterface.h in Headers */,
11911203
);
@@ -1269,6 +1281,7 @@
12691281
5FCDD4D92B7AC6A200EAF29F /* BNCAppleReceipt.h in Headers */,
12701282
5FCDD5512B7AC6A300EAF29F /* BranchJsonConfig.h in Headers */,
12711283
5FCDD4E22B7AC6A200EAF29F /* BNCSKAdNetwork.h in Headers */,
1284+
E73D02862DEE8AE90076C3F1 /* BranchConfigurationController.h in Headers */,
12721285
5FCDD5122B7AC6A300EAF29F /* BNCDeviceSystem.h in Headers */,
12731286
5FCDD5212B7AC6A300EAF29F /* BNCNetworkInterface.h in Headers */,
12741287
);
@@ -1627,6 +1640,7 @@
16271640
5FCDD42C2B7AC6A100EAF29F /* BranchPluginSupport.m in Sources */,
16281641
5FCDD5A62B7AC6A400EAF29F /* BNCQRCodeCache.m in Sources */,
16291642
5FCDD45C2B7AC6A100EAF29F /* BNCReachability.m in Sources */,
1643+
E73D02842DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */,
16301644
5FCDD42F2B7AC6A100EAF29F /* NSString+Branch.m in Sources */,
16311645
5FCDD5A02B7AC6A400EAF29F /* BranchShortUrlRequest.m in Sources */,
16321646
5FCDD46B2B7AC6A100EAF29F /* BNCServerInterface.m in Sources */,
@@ -1734,6 +1748,7 @@
17341748
5FCDD42D2B7AC6A100EAF29F /* BranchPluginSupport.m in Sources */,
17351749
5FCDD5A72B7AC6A400EAF29F /* BNCQRCodeCache.m in Sources */,
17361750
5FCDD45D2B7AC6A100EAF29F /* BNCReachability.m in Sources */,
1751+
E73D02812DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */,
17371752
5FCDD4302B7AC6A100EAF29F /* NSString+Branch.m in Sources */,
17381753
5FCDD5A12B7AC6A400EAF29F /* BranchShortUrlRequest.m in Sources */,
17391754
5FCDD46C2B7AC6A100EAF29F /* BNCServerInterface.m in Sources */,
@@ -1829,6 +1844,7 @@
18291844
5FCDD44C2B7AC6A100EAF29F /* BranchContentDiscoveryManifest.m in Sources */,
18301845
5FCDD46A2B7AC6A100EAF29F /* BNCCrashlyticsWrapper.m in Sources */,
18311846
5FCDD43D2B7AC6A100EAF29F /* BNCServerRequest.m in Sources */,
1847+
E73D02852DEE8AE90076C3F1 /* BranchConfigurationController.m in Sources */,
18321848
5FCDD5842B7AC6A400EAF29F /* BranchLinkProperties.m in Sources */,
18331849
5FCDD59F2B7AC6A400EAF29F /* BranchEvent.m in Sources */,
18341850
5FCDD5812B7AC6A400EAF29F /* BNCAppleReceipt.m in Sources */,

Sources/BranchSDK/BNCRequestFactory.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#import "BNCReferringURLUtility.h"
3636
#import "BNCPasteboard.h"
3737
#import "BNCODMInfoCollector.h"
38+
#import "BranchConfigurationController.h"
3839

3940
@interface BNCRequestFactory()
4041

@@ -135,6 +136,9 @@ - (NSDictionary *)dataForInstallWithURLString:(NSString *)urlString {
135136

136137
// Add Enhanced Web UX params
137138
[self addWebUXParams:json];
139+
140+
// Add Operation Metrics for Install only.
141+
[self addOperationalMetrics:json];
138142

139143
return json;
140144
}
@@ -425,6 +429,12 @@ - (void)addLocalURLToOpenJSON:(NSMutableDictionary *)json {
425429
}
426430
}
427431

432+
// If the client uses a UIPasteControl, force a new open to fetch the payload
433+
- (void)addOperationalMetrics:(NSMutableDictionary *)json {
434+
[self safeSetValue:[[BranchConfigurationController sharedInstance] getConfiguration] forKey:BRANCH_REQUEST_KEY_OPERATIONAL_METRICS onDict:json];
435+
}
436+
437+
428438
- (void)clearLocalURLFromStorage {
429439
self.preferenceHelper.localUrl = nil;
430440
#if !TARGET_OS_TV

0 commit comments

Comments
 (0)