Java
Syntax
Copied to your clipboardstatic void trackAsset(String assetURL)static void trackAsset(String assetURL, InteractionType interactionType)static void trackAsset(String assetURL, InteractionType interactionType, String assetLocation)static void trackAsset(String assetURL, InteractionType interactionType, String assetLocation, Map<String, Object> additionalData)
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackAsset("https://example.com/image.jpg",InteractionType.VIEW,"home");
Kotlin
Syntax
Copied to your clipboardfun trackAsset(assetURL: String,interactionType: InteractionType = InteractionType.VIEW,assetLocation: String? = null,additionalData: Map<String, Any>? = null): Unit
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackAsset(assetURL: "https://example.com/image.jpg",interactionType: InteractionType.VIEW,assetLocation: "home");
Swift
Syntax
Copied to your clipboardstatic func trackAsset(assetURL: String,interactionType: InteractionType = .view,assetLocation: String? = nil,additionalData: [String: Any]? = nil)
Example
Copied to your clipboardContentAnalytics.trackAsset(assetURL: "https://example.com/image.jpg",interactionType: InteractionType.VIEW,assetLocation: "home");
Objective-C
Syntax
Copied to your clipboard+ (void)trackAsset:(NSString *)assetURLinteractionType:(AEPInteractionType)interactionTypeassetLocation:(nullable NSString *)assetLocationadditionalData:(nullable NSDictionary<NSString *,id> *)additionalData;
Example
Copied to your clipboard[AEPContentAnalytics trackAsset:@"https://example.com/image.jpg"interactionType:AEPInteractionTypeViewassetLocation:@"home"];
Java
Syntax
Copied to your clipboardstatic void trackAssetView(String assetURL)static void trackAssetView(String assetURL, String assetLocation)static void trackAssetView(String assetURL, String assetLocation, Map<String, Object> additionalData)additionalData)
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackAssetView("https://example.com/image.jpg","home");
Kotlin
Syntax
Copied to your clipboardfun trackAssetView(assetURL: String,assetLocation: String? = null,additionalData: Map<String, Any>? = null): Unit
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackAssetView(assetURL: "https://example.com/image.jpg",assetLocation: "home");
Swift
Syntax
Copied to your clipboardstatic func trackAssetView(assetURL: String,assetLocation: String? = nil,additionalData: [String: Any]? = nil)
Example
Copied to your clipboardContentAnalytics.trackAsset(assetURL: "https://example.com/image.jpg",assetLocation: "home");
Objective-C
Syntax
Copied to your clipboard+ (void)trackAssetView:(NSString *)assetURLassetLocation:(nullable NSString *)assetLocationadditionalData:(nullable NSDictionary<NSString *,id> *)additionalData;
Example
Copied to your clipboard[AEPContentAnalytics trackAssetView:@"https://example.com/image.jpg"assetLocation:@"home"];
Java
Syntax
Copied to your clipboardstatic void trackAssetClick(String assetURL)static void trackAssetClick(String assetURL, String assetLocation)static void trackAssetClick(String assetURL, String assetLocation, Map<String, Object> additionalData)
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackAssetClick("https://example.com/image.jpg","home",null);
Kotlin
Syntax
Copied to your clipboardfun trackAssetClick(assetURL: String,assetLocation: String? = null,additionalData: Map<String, Any>? = null): Unit
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackAssetClick("https://example.com/image.jpg","home",null);
Swift
Syntax
Copied to your clipboardstatic func trackAssetClick(assetURL: String,assetLocation: String? = nil,additionalData: [String: Any]? = nil)
Example
Copied to your clipboardContentAnalytics.trackAssetClick(assetURL: "https://example.com/image.jpg",assetLocation: "home");
Objective-C
Syntax
Copied to your clipboard+ (void)trackAssetClick:(NSString *)assetURLassetLocation:(nullable NSString *)assetLocationadditionalData:(nullable NSDictionary<NSString *,id> *)additionalData;
Example
Copied to your clipboard[AEPContentAnalytics trackAssetClick:@"https://example.com/image.jpg"assetLocation:@"home"];
Java
Syntax
Copied to your clipboardstatic void trackAssetCollection(List<String> assetURLs)static void trackAssetCollection(List<String> assetURLs, InteractionType interactionType)static void trackAssetCollection(List<String> assetURLs, InteractionType interactionType, String assetLocation)
Example
Copied to your clipboardContentAnalytics.trackAssetCollection(List.of("https://example.com/img1.jpg","https://example.com/img2.jpg"),"product-carousel");
Kotlin
Syntax
Copied to your clipboardfun trackAssetCollection(assetURLs: List<String>,interactionType: InteractionType = InteractionType.VIEW,assetLocation: String? = null): Unit
Example
Copied to your clipboardContentAnalytics.trackAssetCollection(assetURLs = listOf("https://example.com/img1.jpg","https://example.com/img2.jpg"),assetLocation = "product-carousel");
Swift
Syntax
Copied to your clipboardstatic func trackAssetCollection(assetURLs: [String],interactionType: InteractionType = .view,assetLocation: String? = nil)
Example
Copied to your clipboardContentAnalytics.trackAssetCollection(assetURLs: ["https://example.com/image1.jpg", "https://example.com/image1.jpg"],assetLocation: "home");
Objective-C
Syntax
Copied to your clipboard+ (void)trackAssetCollectionWithAssetURLs:(NSArray<NSString *> *)assetURLsinteractionType:(AEPInteractionType)interactionTypeassetLocation:(nullable NSString *)assetLocation;
Example
Copied to your clipboard[AEPContentAnalytics trackAssetCollectionWithAssetURLs:@[@"https://example.com/image1.jpg",@"https://example.com/image1.jpg"]interactionType:AEPInteractionTypeViewassetLocation:@"home"];
Java
Syntax
Copied to your clipboardstatic String registerExperience(List<ContentItem> assets, List<ContentItem> texts)static String registerExperience(List<ContentItem> assets, List<ContentItem> texts, List<ContentItem> ctas)
Example
Copied to your clipboardString expId = ContentAnalytics.registerExperience(List.of(new ContentItem("https://example.com/product.jpg")),List.of(new ContentItem("iPhone 16 Pro", Map.of("role", "headline")),new ContentItem("$999", Map.of("role", "price"))),List.of(new ContentItem("Buy Now", Map.of("enabled", true))));ContentAnalytics.trackExperienceView(expId, "product.detail")
Kotlin
Syntax
Copied to your clipboardfun registerExperience(assets: List<ContentItem>,texts: List<ContentItem>,ctas: List<ContentItem>? = null): String
Example
Copied to your clipboard// Using InteractionType enum directlyval expId = ContentAnalytics.registerExperience(assets = listOf(ContentItem("https://example.com/product.jpg")),texts = listOf(ContentItem("iPhone 16 Pro", mapOf("role" to "headline")),ContentItem("$999", mapOf("role" to "price"))),ctas = listOf(ContentItem("Buy Now", mapOf("enabled" to true))));ContentAnalytics.trackExperienceView(experienceId: expId, experienceLocation: "product.detail")
Swift
Syntax
Copied to your clipboard@discardableResultstatic func registerExperience(assets: [ContentItem],texts: [ContentItem],ctas: [ContentItem]? = nil) -> String
Example
Copied to your clipboardlet expId = ContentAnalytics.registerExperience(assets: [ContentItem(value: "https://example.com/product.jpg", styles: [:])],texts: [ContentItem(value: "iPhone 16 Pro", styles: ["role": "headline"]),ContentItem(value: "$999", styles: ["role": "price"])],ctas: [ContentItem(value: "Buy Now", styles: ["enabled": true])])ContentAnalytics.trackExperienceView(experienceId: expId, experienceLocation: "product.detail")
Objective-C
Syntax
Copied to your clipboard+ (NSString *)registerExperienceWithAssets:(NSArray<AEPContentItem *> *)assetstexts:(NSArray<AEPContentItem *> *)textsctas:(nullable NSArray<AEPContentItem *> *)ctas;
Example
Copied to your clipboardNSString *expId = [AEPContentAnalytics registerExperienceWithAssets:@[[[AEPContentItem alloc] initWithValue:@"https://example.com/product.jpg" styles:@{}]]texts:@[[[AEPContentItem alloc] initWithValue:@"iPhone 16 Pro" styles:@{@"role": @"headline"}],[[AEPContentItem alloc] initWithValue:@"$999" styles:@{@"role": @"price"}]]ctas:@[[[AEPContentItem alloc] initWithValue:@"Buy Now" styles:@{@"enabled": @YES}]]];[AEPContentAnalytics trackExperienceViewWithExperienceId:expIdexperienceLocation:@"product.detail"];
Java
Syntax
Copied to your clipboardstatic void trackExperienceView(String experienceId)static void trackExperienceView(String experienceId, String experienceLocation)static void trackExperienceView(String experienceId, String experienceLocation, Map<String, Object> additionalData)
Example
Copied to your clipboardContentAnalytics.trackExperienceView(expId,"homepage.hero",Map.of("viewDuration", 5.2));
Kotlin
Syntax
Copied to your clipboardfun trackExperienceView(experienceId: String,experienceLocation: String? = null,additionalData: Map<String, Any>? = null): Unit
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackExperienceView(experienceId: expId,experienceLocation: "homepage.hero",additionalData: ["viewDuration": 5.2])
Swift
Syntax
Copied to your clipboardstatic func trackExperienceView(experienceId: String,experienceLocation: String? = nil,additionalData: [String: Any]? = nil)
Example
Copied to your clipboardContentAnalytics.trackExperienceView(experienceId: expId,experienceLocation: "homepage.hero",additionalData: ["viewDuration": 5.2])
Objective-C
Syntax
Copied to your clipboard+ (void)trackExperienceView:(NSString *)assetURLassetLocation:(nullable NSString *)assetLocationadditionalData:(nullable NSDictionary<NSString *,id> *)additionalData;
Example
Copied to your clipboard[AEPContentAnalytics trackExperienceView:expIdexperienceLocation:@"homepage.hero"additionalData:@{@"viewDuration": @5.2}];
Java
Syntax
Copied to your clipboardstatic void trackExperienceClick(String experienceId)static void trackExperienceClick(String experienceId, String experienceLocation)static void trackExperienceClick(String experienceId, String experienceLocation, Map<String, Object> additionalData)
Example
Copied to your clipboardContentAnalytics.trackExperienceClick(expId,"homepage.hero",Map.of("viewDuration", 5.2));
Kotlin
Syntax
Copied to your clipboardfun trackExperienceClick(experienceId: String,experienceLocation: String? = null,additionalData: Map<String, Any>? = null): Unit
Example
Copied to your clipboard// Using InteractionType enum directlyContentAnalytics.trackExperienceClick(experienceId: expId,experienceLocation: "homepage.hero",additionalData: ["viewDuration": 5.2])
Swift
Syntax
Copied to your clipboardstatic func trackExperienceClick(experienceId: String,experienceLocation: String? = nil,additionalData: [String: Any]? = nil)
Example
Copied to your clipboardContentAnalytics.trackExperienceClick(experienceId: expId,experienceLocation: "homepage.hero",additionalData: ["viewDuration": 5.2])
Objective-C
Syntax
Copied to your clipboard+ (void)trackExperienceClick:(NSString *)assetURLassetLocation:(nullable NSString *)assetLocationadditionalData:(nullable NSDictionary<NSString *,id> *)additionalData;
Example
Copied to your clipboard[AEPContentAnalytics trackExperienceClick:expIdexperienceLocation:@"homepage.hero"additionalData:@{@"viewDuration": @5.2}];
Java
Syntax
Copied to your clipboardpublic class ContentItem {private final String value;private final Map<String, Object> styles;public ContentItem(String value, Map<String, Object> styles) {this.value = value;this.styles = styles;}// Convenience constructor to mirror the default parameterpublic ContentItem(String value) {this(value, Collections.emptyMap());}public String getValue() {return value;}public Map<String, Object> getStyles() {return styles;}public Map<String, Object> toMap() {Map<String, Object> map = new HashMap<>();map.put("value", value);map.put("styles", styles);return map;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (!(o instanceof ContentItem)) return false;ContentItem that = (ContentItem) o;return Objects.equals(value, that.value) &&Objects.equals(styles, that.styles);}@Overridepublic int hashCode() {return Objects.hash(value, styles);}@Overridepublic String toString() {return "ContentItem{value='" + value + "', styles=" + styles + "}";}}
Example
Copied to your clipboard// Asset with URLContentItem("https://example.com/hero.jpg")// Text with roleContentItem("Welcome!", mapOf("role" to "headline"))// CTA with enabled stateContentItem("Shop Now", mapOf("enabled" to true, "role" to "primary"))
Kotlin
Syntax
Copied to your clipboarddata class ContentItem(val value: String,val styles: Map<String, Any> = emptyMap()) {fun toMap(): Map<String, Any>}
Example
Copied to your clipboard// Asset with URLContentItem(value: "https://example.com/hero.jpg")// Text with roleContentItem(value: "Welcome!", styles: mapOf("role" to "headline"))// CTA with enabled stateContentItem(value: "Shop Now", styles: mapOf("enabled" to true, "role" to "primary"))
Swift
Syntax
Copied to your clipboardpublic struct ContentItem {let value: Stringlet styles: [String: Any]init(value: String, styles: [String: Any])}
Example
Copied to your clipboard// AssetContentItem(value: "https://example.com/image.jpg", styles: [:])// Text with roleContentItem(value: "Product Title", styles: ["role": "headline"])ContentItem(value: "$99.99", styles: ["role": "price"])// CTAContentItem(value: "Buy Now", styles: ["enabled": true])
Objective-C
Syntax
Copied to your clipboard@implementation AEPContentItem- (instancetype)initWithValue:(NSString *)valuestyles:(NSDictionary<NSString *, id> *)styles {if (self = [super init]) {_value = value;_styles = styles;}return self;}
Example
Copied to your clipboardAEPContentItem *asset = [[AEPContentItem alloc] initWithValue:@"https://example.com/image.jpg"styles:@{}];AEPContentItem *title = [[AEPContentItem alloc] initWithValue:@"Product Title"styles:@{@"role": @"headline"}];AEPContentItem *price = [[AEPContentItem alloc] initWithValue:@"$99.99"styles:@{@"role": @"price"}];AEPContentItem *cta = [[AEPContentItem alloc] initWithValue:@"Buy Now"styles:@{@"enabled": @YES}];
Java
Syntax
Copied to your clipboardpublic enum InteractionType {VIEW,CLICK,DEFINITION;public String getStringValue() {return name().toLowerCase();}}
Example
Copied to your clipboardContentAnalytics.trackAsset("https://example.com/hero.jpg",InteractionType.VIEW)
Kotlin
Syntax
Copied to your clipboardenum class InteractionType {VIEW,CLICK,DEFINITION;val stringValue: Stringget() = name.lowercase()}
Example
Copied to your clipboardContentAnalytics.trackAsset(assetURL = "https://example.com/hero.jpg",interactionType = InteractionType.VIEW)
Swift
Syntax
Copied to your clipboardpublic enum InteractionType: Int {case view = 0case click = 1public var stringValue: String { ... }public static func from(string: String) -> InteractionType?}
Example
Copied to your clipboardContentAnalytics.trackAsset(assetURL: "https://example.com/hero.jpg",interactionType: .view)
Objective-C
Syntax
Copied to your clipboard@objc(AEPInteractionType)public enum InteractionType: Int {case view = 0case click = 1public var stringValue: String { ... }public static func from(string: String) -> InteractionType?}
Example
Copied to your clipboard[ContentAnalytics trackAsset:@"https://example.com/hero.jpg"interactionType:AEPInteractionTypeViewassetLocation:niladditionalData:nil];
