diff --git a/mParticle-Google-Analytics-Firebase-GA4/MPKitFirebaseGA4Analytics.m b/mParticle-Google-Analytics-Firebase-GA4/MPKitFirebaseGA4Analytics.m index b2b6597..458b811 100755 --- a/mParticle-Google-Analytics-Firebase-GA4/MPKitFirebaseGA4Analytics.m +++ b/mParticle-Google-Analytics-Firebase-GA4/MPKitFirebaseGA4Analytics.m @@ -536,6 +536,10 @@ - (NSMutableArray *)getParametersForProducts:(id)products { if (product.price) { [productParameters setObject:product.price forKey:kFIRParameterPrice]; } + if (product.position) { + id indexParameter = @(product.position); + [productParameters setObject:indexParameter forKey:kFIRParameterIndex]; + } if (product.userDefinedAttributes) { for (NSString *productCustomAttribute in product.userDefinedAttributes) { [productParameters setObject:product.userDefinedAttributes[productCustomAttribute] forKey:productCustomAttribute]; diff --git a/mParticle-Google-Analytics-Firebase-GA4Tests/MPKitFirebaseGA4AnalyticsTests.m b/mParticle-Google-Analytics-Firebase-GA4Tests/MPKitFirebaseGA4AnalyticsTests.m index 4f8758b..217e0fe 100644 --- a/mParticle-Google-Analytics-Firebase-GA4Tests/MPKitFirebaseGA4AnalyticsTests.m +++ b/mParticle-Google-Analytics-Firebase-GA4Tests/MPKitFirebaseGA4AnalyticsTests.m @@ -13,6 +13,7 @@ - (NSString *)standardizeValue:(id)value forEvent:(BOOL)forEvent; - (NSString *)getEventNameForCommerceEvent:(MPCommerceEvent *)commerceEvent parameters:(NSDictionary *)parameters; - (NSDictionary *)getParameterForCommerceEvent:(MPCommerceEvent *)commerceEvent; - (NSMutableDictionary *)getParametersForScreen:(MPEvent *)screenEvent; +- (NSMutableArray *)getParametersForProducts:(id)products; @end @interface mParticle_Firebase_AnalyticsTests : XCTestCase @@ -298,6 +299,7 @@ - (void)testProductParameters { NSMutableDictionary *testProductCustomAttributes = [[@{@"productCustomAttribute": @"potato", @"store": @"Target"} mutableCopy] mutableCopy]; product.brand = @"LV"; product.category = @"vegetable"; + product.position = 4; product.userDefinedAttributes = testProductCustomAttributes; MPCommerceEvent *event = [[MPCommerceEvent alloc] initWithImpressionName:@"suggested products list" product:product]; @@ -306,8 +308,8 @@ - (void)testProductParameters { NSArray *itemsArray = [exampleKit getParametersForProducts:impressionProducts]; id item = itemsArray[0]; - // The item inside itemsArray should include 8 parameters in total including the 2 product custom attributes - XCTAssertEqual([item count], 8); + // The item inside itemsArray should include 9 parameters in total including the 2 product custom attributes + XCTAssertEqual([item count], 9); } - (void)testCommerceEventCheckoutOptions {