{"id":2773,"date":"2026-09-08T12:48:57","date_gmt":"2026-09-08T17:48:57","guid":{"rendered":"https:\/\/www.miaprova.com\/blog\/?p=2773"},"modified":"2026-09-08T12:48:58","modified_gmt":"2026-09-08T17:48:58","slug":"measuring-automated-personalization-in-cja","status":"publish","type":"post","link":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/","title":{"rendered":"Measuring Automated Personalization in CJA"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>One field group, six steps. And it works for every other Target activity type while you&#8217;re at it.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured-1024x538.png\" alt=\"\" class=\"wp-image-2774\" srcset=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured-1024x538.png 1024w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured-300x158.png 300w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured-1536x806.png 1536w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured-2048x1075.png 2048w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured-768x403.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What AP is, and why it&#8217;s worth measuring properly<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Automated Personalization is the smartest thing in Adobe Target. Instead of you deciding which experience each segment sees, AP builds a machine learning model per offer, watches which visitors convert on which offers, and learns which visitor attributes predict a winner. Then it makes that call for every visitor, in real time, on every request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s doing something an A\/B test can&#8217;t. An A\/B test finds the one experience that wins on average. AP finds the experience that wins for <em>this<\/em> visitor, and it keeps getting better as more conversions come in. When you&#8217;ve seen one running on a high traffic page with a decent offer set, the difference is not subtle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It also holds out a control group automatically. A slice of visitors get randomly assigned experiences instead of model picked ones, so AP can report lift against what would have happened without it. That control group is the whole reason this post works. Hold that thought.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why you can&#8217;t see it in CJA<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the catch. CJA&#8217;s Target integration rides on A4T, and A4T doesn&#8217;t support Automated Personalization. Adobe&#8217;s docs say it plainly: AP and Auto-Target don&#8217;t support Customer Journey Analytics as a reporting source. A\/B, Experience Targeting, MVT, and Recommendations all flow through. AP doesn&#8217;t.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-cja-support-matrix-1024x576.png\" alt=\"\" class=\"wp-image-2775\" srcset=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-cja-support-matrix-1024x576.png 1024w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-cja-support-matrix-768x432.png 768w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-cja-support-matrix-300x169.png 300w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-cja-support-matrix-1536x864.png 1536w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-cja-support-matrix-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">So the smartest activity type in Target is the one you can&#8217;t put next to your stitched, cross channel, offline inclusive CJA metrics. You can see AP performance inside Target against the goal metric you gave it. You can&#8217;t see whether the people AP personalized went on to do anything the business actually cares about.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fix is to carry the data over yourself. Target already tells you everything you need in every response. You just have to catch it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The six steps<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Turn on response tokens<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Response tokens are metadata Target returns alongside the content it serves. They&#8217;re account level, they&#8217;re off by default, and you turn them on once in Target under Administration, Response Tokens.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You want four of them. <code>activity.name<\/code> and <code>activity.id<\/code> identify the activity. <code>experience.name<\/code> tells you which experience or, for AP, which assembled offer combination the visitor got. And <code>experience.trafficAllocationType<\/code> is the one that makes this whole thing possible: it returns <code>control<\/code> or <code>targeted<\/code>, and it&#8217;s populated only for AP and Auto-Target.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That last token is a randomized, server assigned treatment flag. It&#8217;s the cleanest causal instrument you&#8217;ll ever get for free, and most implementations throw it away on every page load.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Build the XDM field group<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Add a field group to the ExperienceEvent schema your Web SDK datastream writes to. Make it an array of objects, one object per activity the visitor was exposed to on that event.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-schema-to-dataview-1024x576.png\" alt=\"\" class=\"wp-image-2776\" srcset=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-schema-to-dataview-1024x576.png 1024w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-schema-to-dataview-300x169.png 300w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-schema-to-dataview-768x432.png 768w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-schema-to-dataview-1536x864.png 1536w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-schema-to-dataview-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The array shape isn&#8217;t a style choice. CJA&#8217;s Experimentation panel requires the experiment dimension and the variant dimension to live inside the same object array. Split them into flat fields and the panel won&#8217;t pair them. It&#8217;s also what keeps three activities on one page from bleeding into each other, because CJA preserves the row level correlation between fields in the same array element.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Notice the <code>variant<\/code> field. It&#8217;s normalized on purpose. AP and Auto-Target compare control against targeted, so for them <code>variant<\/code> carries the allocation type. A\/B, XT, and MVT compare experiences against each other, so for them it carries the experience name. One Variant dimension, every activity type.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Extract the tokens in Tags<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Response tokens come back on each proposition item&#8217;s <code>meta<\/code>. In Tags, build a rule on the Adobe Experience Platform Web SDK &#8220;Send Event Complete&#8221; event. It hands you <code>event.propositions<\/code>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">javascript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>var seen = {};\nvar rows = &#91;];\n\n(event.propositions || &#91;]).forEach(function (proposition) {\n  (proposition.items || &#91;]).forEach(function (item) {\n    var meta = item.meta;\n    if (!meta || !meta&#91;\"activity.id\"]) { return; }\n\n    \/\/ One activity can span several mboxes. Collapse duplicates.\n    var key = meta&#91;\"activity.id\"] + \"|\" + meta&#91;\"experience.id\"];\n    if (seen&#91;key]) { return; }\n    seen&#91;key] = true;\n\n    \/\/ Only AP and Auto-Target populate this. Absent means fixed split.\n    var alloc = meta&#91;\"experience.trafficAllocationType\"];\n    var variant = alloc || meta&#91;\"experience.name\"];\n\n    var row = {\n      activityId:     String(meta&#91;\"activity.id\"]),\n      activityName:   meta&#91;\"activity.name\"],\n      experienceId:   String(meta&#91;\"experience.id\"]),\n      experienceName: meta&#91;\"experience.name\"],\n      variant:        variant,\n      experimentKey:  meta&#91;\"activity.name\"] + \" :: \" + variant\n    };\n    if (alloc) { row.trafficAllocationType = alloc; }\n    rows.push(row);\n  });\n});\n\nwindow._targetContext = rows;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then a Custom Code data element that returns <code>window._targetContext || []<\/code>, mapped to the array node in your page view XDM. Always an array, never null.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Get it onto the right event<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is where most implementations go sideways. Response tokens don&#8217;t exist until the Edge responds, so they can&#8217;t ride on the call that asked for them. And if you stash them for the next page view, the exposure lands one page late and gets credited to the wrong URL.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-data-flow-1024x576.png\" alt=\"\" class=\"wp-image-2777\" srcset=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-data-flow-1024x576.png 1024w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-data-flow-300x169.png 300w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-data-flow-768x432.png 768w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-data-flow-1536x864.png 1536w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-data-flow-2048x1152.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The fix is two Web SDK calls. Rule one fires at page top: a Send Event with type <code>decisioning.propositionFetch<\/code> and rendering enabled. Rule two fires on Send Event Complete: it runs the extraction above, then sends your actual page view as <code>web.webpagedetails.pageViews<\/code> with the array attached.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing you will hit exactly once and never forget: Send Event Complete fires for every Web SDK call, including the second one rule two just sent. Put a guard on rule two or it loops.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">javascript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if (window._targetPageViewSent) { return false; }\nwindow._targetPageViewSent = true;\nreturn true;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">5. Configure the CJA Data View<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Confirm the dataset is in your CJA connection, then add the array fields as dimensions. Two of them get context labels: apply &#8220;Experimentation Experiment&#8221; to Target Activity Name and &#8220;Experimentation Variant&#8221; to Target Variant. That&#8217;s what makes them show up in the Experimentation panel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Persistence is the trap here. You&#8217;d think you&#8217;d persist Activity Name and Variant so conversions later in the session carry the exposure. With one activity, fine. With several, no. Persistence copies dimension values forward, not array structure, so a conversion event inherits three activity names and three variants with nothing tying them together. Your control group contaminates and the numbers still look plausible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s what <code>experimentKey<\/code> is for. It fuses activity and variant into one string in the browser, before anything can pull them apart. Persist that one (Most recent, bound to Person, expiring with the session or your conversion window). Leave the two labeled dimensions unpersisted and let the Experimentation panel do its own attribution from the exposure event.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Analyze<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Drop an Experimentation panel into Workspace. Pick your AP activity as the experiment, <code>control<\/code> as the control variant, and up to five CJA success metrics. You get lift and anytime valid confidence at 95 percent. That &#8220;anytime valid&#8221; bit matters for AP specifically, since it runs forever and you&#8217;ll check it constantly, and this kind of confidence doesn&#8217;t inflate false positives when you peek.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For everything the panel doesn&#8217;t answer, go freeform. Target Activity and Variant as rows with your conversion metrics as columns is your reconciliation table against Target&#8217;s own report. Break the targeted arm down by Target Experience Name to see which offer combinations the model actually leaned on. Build a Person scoped segment on Target Traffic Allocation equals <code>control<\/code> and you&#8217;ve got a portable holdout you can drop into any project to measure what personalization is worth in aggregate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A few things before you trust the numbers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check the response first. Confirm <code>trafficAllocationType<\/code> is actually on the meta for an AP activity. If it&#8217;s missing, the token is off or the activity isn&#8217;t AP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check the outbound payload second. The second <code>interact<\/code> call should carry a populated array. Empty array with a populated response means the extraction or the guard is misfiring.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If A4T is already feeding your A\/B and XT activities into CJA, decide about the overlap on purpose. Either narrow the extraction to AP and Auto-Target only, so this covers exactly the gap A4T leaves, or send everything through the field group for one consistent dimension set. Both work. Running both without documenting it is how someone builds a report on the wrong dimension six months from now.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And remember occurrence metrics inflate. Three activities on a page view means three array elements on one event. Normalize on Unique People or Sessions, never on event counts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That&#8217;s it. Six steps, one field group, and the most intelligent thing in Target finally sits next to the metrics that matter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One field group, six steps. And it works for every other Target activity type while you&#8217;re at it. What AP is, and why it&#8217;s worth measuring properly Automated Personalization is the smartest thing in Adobe Target. Instead of you deciding which experience each segment sees, AP builds a machine learning model per offer, watches which&#8230;<\/p>\n","protected":false},"author":2,"featured_media":2774,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[3,365],"tags":[10,370],"class_list":["post-2773","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adobe-target","category-customer-journey-analytics","tag-adobe-target","tag-customer-journey-analytics"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Measuring Automated Personalization in CJA - MiaProva Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Measuring Automated Personalization in CJA - MiaProva Blog\" \/>\n<meta property=\"og:description\" content=\"One field group, six steps. And it works for every other Target activity type while you&#8217;re at it. What AP is, and why it&#8217;s worth measuring properly Automated Personalization is the smartest thing in Adobe Target. Instead of you deciding which experience each segment sees, AP builds a machine learning model per offer, watches which...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\" \/>\n<meta property=\"og:site_name\" content=\"MiaProva Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MiaProvaSoftware\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-08T17:48:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-08T17:48:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2400\" \/>\n\t<meta property=\"og:image:height\" content=\"1260\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Brian Hawkins\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@brianthawkins\" \/>\n<meta name=\"twitter:site\" content=\"@brianthawkins\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian Hawkins\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\"},\"author\":{\"name\":\"Brian Hawkins\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/0068d06d7a71d8edd4ac807bee6148d3\"},\"headline\":\"Measuring Automated Personalization in CJA\",\"datePublished\":\"2026-09-08T17:48:57+00:00\",\"dateModified\":\"2026-09-08T17:48:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\"},\"wordCount\":1303,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png\",\"keywords\":[\"Adobe Target\",\"Customer Journey Analytics\"],\"articleSection\":[\"Adobe Target\",\"Customer Journey Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\",\"url\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\",\"name\":\"Measuring Automated Personalization in CJA - MiaProva Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png\",\"datePublished\":\"2026-09-08T17:48:57+00:00\",\"dateModified\":\"2026-09-08T17:48:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage\",\"url\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png\",\"contentUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png\",\"width\":2400,\"height\":1260},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.miaprova.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Measuring Automated Personalization in CJA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#website\",\"url\":\"https:\/\/www.miaprova.com\/blog\/\",\"name\":\"MiaProva - Optimization Management\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.miaprova.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#organization\",\"name\":\"MiaProva\",\"url\":\"https:\/\/www.miaprova.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2024\/03\/favicon-96x96-1.webp\",\"contentUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2024\/03\/favicon-96x96-1.webp\",\"width\":96,\"height\":96,\"caption\":\"MiaProva\"},\"image\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/MiaProvaSoftware\/\",\"https:\/\/x.com\/brianthawkins\",\"https:\/\/www.linkedin.com\/company\/miaprova\/\",\"https:\/\/www.youtube.com\/channel\/UCdm5r7ZVgyYfaMQvuOvqVlA\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/0068d06d7a71d8edd4ac807bee6148d3\",\"name\":\"Brian Hawkins\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/74ea98c8139bde705e154b8b91ec2edc9d24b9e5cd03fc555aa2f13ec334e5f7?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/74ea98c8139bde705e154b8b91ec2edc9d24b9e5cd03fc555aa2f13ec334e5f7?s=96&d=mm&r=g\",\"caption\":\"Brian Hawkins\"},\"url\":\"https:\/\/www.miaprova.com\/blog\/author\/brianmiaprova-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Measuring Automated Personalization in CJA - MiaProva Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/","og_locale":"en_US","og_type":"article","og_title":"Measuring Automated Personalization in CJA - MiaProva Blog","og_description":"One field group, six steps. And it works for every other Target activity type while you&#8217;re at it. What AP is, and why it&#8217;s worth measuring properly Automated Personalization is the smartest thing in Adobe Target. Instead of you deciding which experience each segment sees, AP builds a machine learning model per offer, watches which...","og_url":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/","og_site_name":"MiaProva Blog","article_publisher":"https:\/\/www.facebook.com\/MiaProvaSoftware\/","article_published_time":"2026-09-08T17:48:57+00:00","article_modified_time":"2026-09-08T17:48:58+00:00","og_image":[{"width":2400,"height":1260,"url":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png","type":"image\/png"}],"author":"Brian Hawkins","twitter_card":"summary_large_image","twitter_creator":"@brianthawkins","twitter_site":"@brianthawkins","twitter_misc":{"Written by":"Brian Hawkins","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#article","isPartOf":{"@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/"},"author":{"name":"Brian Hawkins","@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/0068d06d7a71d8edd4ac807bee6148d3"},"headline":"Measuring Automated Personalization in CJA","datePublished":"2026-09-08T17:48:57+00:00","dateModified":"2026-09-08T17:48:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/"},"wordCount":1303,"commentCount":0,"publisher":{"@id":"https:\/\/www.miaprova.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage"},"thumbnailUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png","keywords":["Adobe Target","Customer Journey Analytics"],"articleSection":["Adobe Target","Customer Journey Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/","url":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/","name":"Measuring Automated Personalization in CJA - MiaProva Blog","isPartOf":{"@id":"https:\/\/www.miaprova.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage"},"image":{"@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage"},"thumbnailUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png","datePublished":"2026-09-08T17:48:57+00:00","dateModified":"2026-09-08T17:48:58+00:00","breadcrumb":{"@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#primaryimage","url":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png","contentUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/09\/ap-in-cja-featured.png","width":2400,"height":1260},{"@type":"BreadcrumbList","@id":"https:\/\/www.miaprova.com\/blog\/measuring-automated-personalization-in-cja\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.miaprova.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Measuring Automated Personalization in CJA"}]},{"@type":"WebSite","@id":"https:\/\/www.miaprova.com\/blog\/#website","url":"https:\/\/www.miaprova.com\/blog\/","name":"MiaProva - Optimization Management","description":"","publisher":{"@id":"https:\/\/www.miaprova.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.miaprova.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.miaprova.com\/blog\/#organization","name":"MiaProva","url":"https:\/\/www.miaprova.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2024\/03\/favicon-96x96-1.webp","contentUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2024\/03\/favicon-96x96-1.webp","width":96,"height":96,"caption":"MiaProva"},"image":{"@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/MiaProvaSoftware\/","https:\/\/x.com\/brianthawkins","https:\/\/www.linkedin.com\/company\/miaprova\/","https:\/\/www.youtube.com\/channel\/UCdm5r7ZVgyYfaMQvuOvqVlA"]},{"@type":"Person","@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/0068d06d7a71d8edd4ac807bee6148d3","name":"Brian Hawkins","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/74ea98c8139bde705e154b8b91ec2edc9d24b9e5cd03fc555aa2f13ec334e5f7?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/74ea98c8139bde705e154b8b91ec2edc9d24b9e5cd03fc555aa2f13ec334e5f7?s=96&d=mm&r=g","caption":"Brian Hawkins"},"url":"https:\/\/www.miaprova.com\/blog\/author\/brianmiaprova-com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts\/2773","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/comments?post=2773"}],"version-history":[{"count":1,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts\/2773\/revisions"}],"predecessor-version":[{"id":2778,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts\/2773\/revisions\/2778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/media\/2774"}],"wp:attachment":[{"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/media?parent=2773"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/categories?post=2773"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/tags?post=2773"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}