{"id":2496,"date":"2026-04-04T16:38:31","date_gmt":"2026-04-04T21:38:31","guid":{"rendered":"https:\/\/www.miaprova.com\/blog\/?p=2496"},"modified":"2026-04-04T17:56:06","modified_gmt":"2026-04-04T22:56:06","slug":"warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time","status":"publish","type":"post","link":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/","title":{"rendered":"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time)"},"content":{"rendered":"\n<p>If you\u2019ve spent any time in Adobe Target, you\u2019ve probably hit the same ceiling I have: you can build great experiences with on-site behavior, a few profile attributes, and some Analytics segments\u2026 but your <em>best<\/em> customer context usually lives somewhere else.<\/p>\n\n\n\n<p>For a lot of orgs, that \u201csomewhere else\u201d is the data warehouse (BigQuery, Snowflake, Databricks). That\u2019s where you\u2019ve got LTV, lifecycle stage, churn risk, product affinities, lead\/account health, eligibility rules, and all the modeled attributes your teams actually trust.<\/p>\n\n\n\n<p>This post walks through two practical ways a Hightouch user can bring warehouse attributes into Adobe Target so you can <strong>target audiences<\/strong> and <strong>personalize experiences<\/strong> with the same governed warehouse logic your business already runs on:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Offline profile syncing<\/strong> into Target\u2019s profile store (great for stable attributes &amp; audience flags)<\/li>\n\n\n\n<li><strong>Real-time enrichment<\/strong> using <strong>Hightouch Personalization API<\/strong> (great for fast-changing \/ computed-at-request-time attributes)<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The core Target concept you need to get right: identity<\/h2>\n\n\n\n<p>Before we talk about pipelines, you need a clean plan for <em>who<\/em> you\u2019re updating.<\/p>\n\n\n\n<p>Adobe Target\u2019s <code>mbox3rdPartyId<\/code> is essentially \u201cyour ID for this person\u201d (loyalty ID, customer ID, membership ID, etc.). When you pass it, Target links it to Target\u2019s own anonymous ID (PCID) and merges profiles, with the 3rd-party ID taking precedence in merge conflicts.<\/p>\n\n\n\n<p>In practice, that means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If you can identify a visitor (login, known ID, authenticated session), <strong>use a stable 3rd-party ID<\/strong>.<\/li>\n\n\n\n<li>Decide whether you will use <code>mbox3rdPartyId<\/code> \/ <code>thirdPartyId<\/code> <em>or<\/em> ECID <code>customerIds<\/code> patterns\u2014Adobe warns against mixing them for the same visitor because it can create bad merges.<\/li>\n<\/ul>\n\n\n\n<p>Once identity is stable, everything else gets much easier.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-1024x564.jpg\" alt=\"\" class=\"wp-image-2504\" srcset=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-1024x564.jpg 1024w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-300x165.jpg 300w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-768x423.jpg 768w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-1536x846.jpg 1536w, https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-2048x1128.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Path 1: Offline profile syncing (warehouse \u2192 Target profile store)<\/h2>\n\n\n\n<p>This is the \u201creverse ETL\u201d pattern. You compute attributes\/flags in the warehouse, and push them into Target so Target can use them like native profile attributes.<\/p>\n\n\n\n<p>Hightouch supports syncing <strong>Profiles<\/strong> into Adobe Target (create\/update visitor profile attributes), and does it via Target\u2019s <strong>Bulk Profile API<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When offline syncing is the best fit<\/h3>\n\n\n\n<p>Use this when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Attributes change <strong>daily\/hourly<\/strong> (or even every few minutes), but not \u201cper pageview\u201d<\/li>\n\n\n\n<li>You want targeting based on <strong>modeled business logic<\/strong> (eligibility, lifecycle, LTV buckets)<\/li>\n\n\n\n<li>You want <strong>zero added latency<\/strong> on the Target request (because Target already has the data)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What you typically sync<\/h3>\n\n\n\n<p>Think \u201cdurable decisioning inputs,\u201d like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>loyalty_tier<\/code>: Bronze \/ Silver \/ Gold<\/li>\n\n\n\n<li><code>ltv_12m_bucket<\/code>: low \/ mid \/ high<\/li>\n\n\n\n<li><code>churn_risk<\/code>: low \/ medium \/ high<\/li>\n\n\n\n<li><code>eligible_for_offer_X<\/code>: true\/false<\/li>\n\n\n\n<li><code>preferred_category<\/code>: \u201cclosets\u201d, \u201ckitchen\u201d, \u201ctravel\u201d, etc.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step-by-step (practitioner version)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1) Build a model in the warehouse<\/h4>\n\n\n\n<p>Example (conceptual) output columns:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>customer_id<\/code> (the ID you\u2019ll match on in Target)<\/li>\n\n\n\n<li><code>loyalty_tier<\/code><\/li>\n\n\n\n<li><code>ltv_12m<\/code><\/li>\n\n\n\n<li><code>next_best_category<\/code><\/li>\n\n\n\n<li><code>offer_eligibility_flag<\/code><\/li>\n<\/ul>\n\n\n\n<p>In Hightouch terms, this is your <strong>model<\/strong> (a SQL-defined dataset).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2) Configure the Adobe Target destination in Hightouch<\/h4>\n\n\n\n<p>A few key details from Hightouch\u2019s Target destination docs:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Adobe Target is a <strong>premium destination<\/strong> (Business tier plans).<\/li>\n\n\n\n<li>You\u2019ll authenticate using Adobe Developer Console OAuth Server-to-Server, and you must enable \u201cRequire Authentication\u201d for the Target Profile API in Target admin settings.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">3) Choose record matching (this matters)<\/h4>\n\n\n\n<p>Hightouch lets you match warehouse rows to Target profiles using:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>thirdPartyId<\/code> (<strong>recommended<\/strong>)<\/li>\n\n\n\n<li><code>pcID<\/code><\/li>\n<\/ul>\n\n\n\n<p>In almost every real-world Target implementation I\u2019ve seen, <code>thirdPartyId<\/code> is the cleanest long-term approach\u2014because you control it and it\u2019s stable across devices once associated.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">4) Map fields to Target profile attributes<\/h4>\n\n\n\n<p>Map your model columns to Target fields, keeping types consistent.<\/p>\n\n\n\n<p>My strong recommendation: <strong>don\u2019t send raw continuous values unless you truly need them<\/strong>. Instead, bucketize in the warehouse (e.g., <code>ltv_bucket<\/code>) so Target targeting rules stay simple and stable.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">5) (Optional but powerful) Sync \u201caudience flags\u201d<\/h4>\n\n\n\n<p>Hightouch can create a very simple \u201cmembership\u201d attribute pattern for you:<\/p>\n\n\n\n<p>It sets a boolean attribute like <code>__hightouch_audience_{model name}<\/code> and then builds an audience that includes profiles where that flag is <code>true<\/code>.<\/p>\n\n\n\n<p>This is a cheat code for Target teams:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Warehouse decides membership<\/li>\n\n\n\n<li>Target just consumes it cleanly<\/li>\n\n\n\n<li>No one is rewriting complex segmentation logic in the UI<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">6) Use the attributes in Target<\/h4>\n\n\n\n<p>Now your Target practitioners can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create audiences based on profile attributes<\/li>\n\n\n\n<li>Target experiences\/offers accordingly<\/li>\n\n\n\n<li>Use attributes in personalization logic (e.g., Experience A for Gold tier)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Path 2: Real-time enrichment using Hightouch Personalization API (warehouse \u2192 low-latency API \u2192 Target decisioning)<\/h2>\n\n\n\n<p>Offline syncing is great, but sometimes you need <em>freshness<\/em> or <em>runtime computation<\/em>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201cWhat products are in stock near this user right now?\u201d<\/li>\n\n\n\n<li>\u201cWhat\u2019s the user\u2019s most recent predicted propensity after last night\u2019s model run?\u201d<\/li>\n\n\n\n<li>\u201cWhat\u2019s the next-best-offer computed from their last 5 actions?\u201d<\/li>\n<\/ul>\n\n\n\n<p>That\u2019s where <strong>Hightouch Personalization API<\/strong> fits.<\/p>\n\n\n\n<p>Hightouch describes it as a managed, low-latency API that acts like a cache for your warehouse-defined models.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The key security rule<\/h3>\n\n\n\n<p>Hightouch explicitly recommends <strong>not<\/strong> calling the Personalization API directly from untrusted clients (like a browser). Instead, proxy through a service you control.<\/p>\n\n\n\n<p>That lines up perfectly with how many Target teams already think about \u201cdecision services.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">A practical architecture for Target<\/h3>\n\n\n\n<p><strong>Warehouse \u2192 Hightouch Personalization API \u2192 Your backend\/edge \u2192 Target<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>You define a \u201ccustomers\u201d collection keyed by <code>customer_id<\/code> (or another stable key).<\/li>\n\n\n\n<li>Hightouch materializes it into a low-latency cache and exposes HTTP endpoints.<\/li>\n\n\n\n<li>At request time, <strong>your backend<\/strong> fetches the record and then:\n<ul class=\"wp-block-list\">\n<li>passes relevant values into Target as <strong>mbox parameters<\/strong>, or<\/li>\n\n\n\n<li>uses Target server-side decisioning (Delivery API), or<\/li>\n\n\n\n<li>feeds Target via a Data Provider endpoint you control (more on that next)<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Two ways to wire \u201creal-time data\u201d into Target<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Option A: Your app backend calls Hightouch, then calls Target (server-side decisioning)<\/h4>\n\n\n\n<p>This is my favorite when you already have server-side rendering, an API gateway, or edge functions.<\/p>\n\n\n\n<p>Flow:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>request comes in<\/li>\n\n\n\n<li>you look up user context in Personalization API<\/li>\n\n\n\n<li>you call Target\u2019s Delivery API with <code>thirdPartyId<\/code> plus the enrichment parameters<\/li>\n\n\n\n<li>you render the experience<\/li>\n<\/ul>\n\n\n\n<p>Why it\u2019s nice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>clean latency budget control<\/li>\n\n\n\n<li>easy to log\/debug<\/li>\n\n\n\n<li>no sensitive keys exposed client-side<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Option B: Target calls <em>you<\/em> (Data Provider), and you call Hightouch behind the scenes<\/h4>\n\n\n\n<p>If you\u2019re using Target\u2019s Data Provider feature, you can implement the provider endpoint to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>accept Target\u2019s identifiers<\/li>\n\n\n\n<li>call Hightouch Personalization API<\/li>\n\n\n\n<li>return a lightweight JSON payload for Target to use in the activity<\/li>\n<\/ul>\n\n\n\n<p>Why it\u2019s nice:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>keeps page\/app code simpler<\/li>\n\n\n\n<li>standardizes enrichment across activities<\/li>\n<\/ul>\n\n\n\n<p>Tradeoff:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>you\u2019re adding a dependency into the Target decision path, so your endpoint must be very reliable and fast.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Offline vs real-time: how I decide as a Target practitioner<\/h2>\n\n\n\n<p><strong>Default to offline sync<\/strong> when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the attribute is stable enough to refresh on a schedule<\/li>\n\n\n\n<li>you want the simplest, fastest Target execution<\/li>\n\n\n\n<li>the targeting logic should be governed centrally in the warehouse<\/li>\n<\/ul>\n\n\n\n<p><strong>Use real-time enrichment<\/strong> when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the attribute changes frequently or needs runtime computation<\/li>\n\n\n\n<li>you need \u201clatest known state\u201d at the moment of decision<\/li>\n\n\n\n<li>you\u2019re doing recommendations, inventory-aware messaging, dynamic pricing, etc.<\/li>\n<\/ul>\n\n\n\n<p>A common hybrid that works well:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Offline sync: tiers, buckets, eligibility flags, suppressions<\/li>\n\n\n\n<li>Real-time: \u201ctop 3 recs,\u201d nearest store, in-stock decisions, session-aware context<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">A concrete use case example (what this looks like in the real world)<\/h2>\n\n\n\n<p>Let\u2019s say your warehouse defines:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>eligible_free_shipping = true<\/code><\/li>\n\n\n\n<li><code>loyalty_tier = \"Gold\"<\/code><\/li>\n\n\n\n<li><code>category_affinity = \"Closet Organization\"<\/code><\/li>\n\n\n\n<li><code>recommendations = [SKU123, SKU456, SKU789]<\/code><\/li>\n<\/ul>\n\n\n\n<p>You might implement:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Offline sync<\/strong> of <code>eligible_free_shipping<\/code>, <code>loyalty_tier<\/code>, <code>category_affinity<\/code> (fast audience targeting inside Target)<\/li>\n\n\n\n<li><strong>Real-time<\/strong> pull of <code>recommendations<\/code> (because the list is larger, changes more often, and you don\u2019t want to jam it into profile attributes)<\/li>\n<\/ul>\n\n\n\n<p>Then Target can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Target an activity to <code>eligible_free_shipping == true<\/code><\/li>\n\n\n\n<li>Personalize hero copy based on <code>category_affinity<\/code><\/li>\n\n\n\n<li>Populate a \u201cRecommended for you\u201d module with the real-time SKU list<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Implementation checklist (the stuff that prevents headaches)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Identity<\/strong>\n<ul class=\"wp-block-list\">\n<li>Pick your \u201cknown user\u201d key (usually <code>thirdPartyId<\/code>) and implement it consistently<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Data modeling<\/strong>\n<ul class=\"wp-block-list\">\n<li>Prefer <strong>buckets + booleans<\/strong> over raw continuous values<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Sync hygiene<\/strong>\n<ul class=\"wp-block-list\">\n<li>Ensure IDs are unique to avoid mis-updates<\/li>\n\n\n\n<li>Decide delete behavior: do nothing vs clear fields managed by Hightouch<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Real-time safety<\/strong>\n<ul class=\"wp-block-list\">\n<li>Don\u2019t call Personalization API from the browser; proxy it<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Activation simplicity<\/strong>\n<ul class=\"wp-block-list\">\n<li>Consider syncing \u201caudience flags\u201d to keep Target UI rules dead simple<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Where this gets really fun (Target team payoff)<\/h2>\n\n\n\n<p>Once Target can \u201csee\u201d warehouse attributes, you stop building fragile, one-off targeting logic and start operating like a modern decisioning system:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Personalize by lifecycle stage (acquisition \u2192 onboarding \u2192 retention)<\/li>\n\n\n\n<li>Suppress promos for high-LTV users who don\u2019t need them<\/li>\n\n\n\n<li>Show different experiences by account health (B2B)<\/li>\n\n\n\n<li>Trigger messaging based on modeled propensities<\/li>\n\n\n\n<li>Keep your personalization consistent across Target, email, paid media, and in-app<\/li>\n<\/ul>\n\n\n\n<p>And most importantly: your Target activities stop being disconnected experiments and start becoming <strong>the activation layer for your warehouse truth<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Adobe Target and Hightouch\" width=\"720\" height=\"405\" src=\"https:\/\/www.youtube.com\/embed\/oVi6sqf6DpI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019ve spent any time in Adobe Target, you\u2019ve probably hit the same ceiling I have: you can build great experiences with on-site behavior, a few profile attributes, and some Analytics segments\u2026 but your best customer context usually lives somewhere else. For a lot of orgs, that \u201csomewhere else\u201d is the data warehouse (BigQuery, Snowflake,&#8230;<\/p>\n","protected":false},"author":3,"featured_media":2504,"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":[6,3],"tags":[],"class_list":["post-2496","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adobe","category-adobe-target"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time) - 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\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time) - MiaProva Blog\" \/>\n<meta property=\"og:description\" content=\"If you\u2019ve spent any time in Adobe Target, you\u2019ve probably hit the same ceiling I have: you can build great experiences with on-site behavior, a few profile attributes, and some Analytics segments\u2026 but your best customer context usually lives somewhere else. For a lot of orgs, that \u201csomewhere else\u201d is the data warehouse (BigQuery, Snowflake,...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\" \/>\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-04-04T21:38:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-04T22:56:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1410\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"MiaProva Product\" \/>\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=\"MiaProva Product\" \/>\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\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\"},\"author\":{\"name\":\"MiaProva Product\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/6b82d979af9ce47a562d1956f35b7d72\"},\"headline\":\"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time)\",\"datePublished\":\"2026-04-04T21:38:31+00:00\",\"dateModified\":\"2026-04-04T22:56:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\"},\"wordCount\":1368,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg\",\"articleSection\":[\"Adobe\",\"Adobe Target\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\",\"url\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\",\"name\":\"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time) - MiaProva Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg\",\"datePublished\":\"2026-04-04T21:38:31+00:00\",\"dateModified\":\"2026-04-04T22:56:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage\",\"url\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg\",\"contentUrl\":\"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg\",\"width\":2560,\"height\":1410},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.miaprova.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time)\"}]},{\"@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\/6b82d979af9ce47a562d1956f35b7d72\",\"name\":\"MiaProva Product\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6436602dcb8d0540947da036e51a6a1f444311f92fe69bf8e72685e37426401d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6436602dcb8d0540947da036e51a6a1f444311f92fe69bf8e72685e37426401d?s=96&d=mm&r=g\",\"caption\":\"MiaProva Product\"},\"url\":\"https:\/\/www.miaprova.com\/blog\/author\/miaprova-product\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time) - 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\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/","og_locale":"en_US","og_type":"article","og_title":"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time) - MiaProva Blog","og_description":"If you\u2019ve spent any time in Adobe Target, you\u2019ve probably hit the same ceiling I have: you can build great experiences with on-site behavior, a few profile attributes, and some Analytics segments\u2026 but your best customer context usually lives somewhere else. For a lot of orgs, that \u201csomewhere else\u201d is the data warehouse (BigQuery, Snowflake,...","og_url":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/","og_site_name":"MiaProva Blog","article_publisher":"https:\/\/www.facebook.com\/MiaProvaSoftware\/","article_published_time":"2026-04-04T21:38:31+00:00","article_modified_time":"2026-04-04T22:56:06+00:00","og_image":[{"width":2560,"height":1410,"url":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg","type":"image\/jpeg"}],"author":"MiaProva Product","twitter_card":"summary_large_image","twitter_creator":"@brianthawkins","twitter_site":"@brianthawkins","twitter_misc":{"Written by":"MiaProva Product","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#article","isPartOf":{"@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/"},"author":{"name":"MiaProva Product","@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/6b82d979af9ce47a562d1956f35b7d72"},"headline":"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time)","datePublished":"2026-04-04T21:38:31+00:00","dateModified":"2026-04-04T22:56:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/"},"wordCount":1368,"commentCount":0,"publisher":{"@id":"https:\/\/www.miaprova.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage"},"thumbnailUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg","articleSection":["Adobe","Adobe Target"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/","url":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/","name":"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time) - MiaProva Blog","isPartOf":{"@id":"https:\/\/www.miaprova.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage"},"image":{"@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage"},"thumbnailUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg","datePublished":"2026-04-04T21:38:31+00:00","dateModified":"2026-04-04T22:56:06+00:00","breadcrumb":{"@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#primaryimage","url":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg","contentUrl":"https:\/\/www.miaprova.com\/blog\/wp-content\/uploads\/2026\/04\/AdobeTarget_Hightouch-scaled.jpg","width":2560,"height":1410},{"@type":"BreadcrumbList","@id":"https:\/\/www.miaprova.com\/blog\/warehouse-to-target-using-hightouch-to-power-smarter-adobe-target-personalization-offline-profiles-real-time\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.miaprova.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Warehouse-to-Target: using Hightouch to power smarter Adobe Target personalization (offline profiles + real-time)"}]},{"@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\/6b82d979af9ce47a562d1956f35b7d72","name":"MiaProva Product","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.miaprova.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6436602dcb8d0540947da036e51a6a1f444311f92fe69bf8e72685e37426401d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6436602dcb8d0540947da036e51a6a1f444311f92fe69bf8e72685e37426401d?s=96&d=mm&r=g","caption":"MiaProva Product"},"url":"https:\/\/www.miaprova.com\/blog\/author\/miaprova-product\/"}]}},"_links":{"self":[{"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts\/2496","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/comments?post=2496"}],"version-history":[{"count":5,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts\/2496\/revisions"}],"predecessor-version":[{"id":2508,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/posts\/2496\/revisions\/2508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/media\/2504"}],"wp:attachment":[{"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/media?parent=2496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/categories?post=2496"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.miaprova.com\/blog\/wp-json\/wp\/v2\/tags?post=2496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}