Adobe Content Analytics API reference
This section details the publicly available API's for Content Analytics.
registerExperience
Registers an experience and return an ID to track the experience.
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 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"];
trackAsset
Tracks an asset with an explicit defined interaction type.
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 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"];
trackAssetClick
Convenience method for tracking asset clicks.
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 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"];
trackAssetCollection
Tracks multiple assets with the same interaction type.
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 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"];
trackAssetView
Convenience method for tracking asset views.
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 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"];
trackExperienceClick
Tracks when an experience is clicked.
You must call registerExperience() before you can track experience clicks. See the Experience Tracking Guide for detailed usage patterns.
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 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}];
trackExperienceView
Tracks when an experience is viewed.
You must call registerExperience() before you can track experience views. See the Experience Tracking Guide for detailed usage patterns.
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 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}];
Data types
contentItem
Represents the content within an experience (assets, texts, CTAs).
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 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}];
interactionType
Defines the type of interaction, either a view or a click.
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];
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];
Configuration
The following config settings are available. These settings can also be managed within the Adobe Content Analytics extension.
| Setting | Type | Default | Description |
|---|---|---|---|
configId | String | N/A | Custom datastream for Content Analytics events (overrides edge.configId) |
batchingEnabled | Boolean | true | |
maxBatchSize | Integer | 10 | |
flushInterval | Integer | 2000 | |
trackExperiences | Boolean | true | |
excludedAssetLocationsRegexp | String | - | |
excludedAssetUrlsRegexp | String | - | |
excludedExperienceLocationsRegexp | String | - | |
debugLogging | Boolean | false |
