diff --git a/templates/components/targeting_selector_simple.html b/templates/components/targeting_selector_simple.html
index bb84f4cce..4fc026bf4 100644
--- a/templates/components/targeting_selector_simple.html
+++ b/templates/components/targeting_selector_simple.html
@@ -123,7 +123,7 @@
🎯 Custom Targeting
document.addEventListener('DOMContentLoaded', async function() {
try {
const tenantId = '{{ tenant_id }}';
- const response = await fetch(`/api/tenant/${tenantId}/targeting/all`, {
+ const response = await fetch(`{{ script_name }}/api/tenant/${tenantId}/targeting/all`, {
credentials: 'same-origin'
});
const data = await response.json();
@@ -171,7 +171,7 @@ 🎯 Custom Targeting
try {
const tenantId = '{{ tenant_id }}';
- const response = await fetch(`/api/tenant/${tenantId}/targeting/values/${keyId}`, {
+ const response = await fetch(`{{ script_name }}/api/tenant/${tenantId}/targeting/values/${keyId}`, {
credentials: 'same-origin'
});
const data = await response.json();
diff --git a/templates/targeting_browser.html b/templates/targeting_browser.html
index 24485aa6b..2dc2ead81 100644
--- a/templates/targeting_browser.html
+++ b/templates/targeting_browser.html
@@ -277,7 +277,12 @@ Values for Selected Key
}
const data = await response.json();
- targetingData = data;
+
+ // Merge data instead of replacing to preserve customValues cache
+ targetingData.customKeys = data.customKeys || [];
+ targetingData.audiences = data.audiences || [];
+ targetingData.labels = data.labels || [];
+ // Don't overwrite customValues - it's populated on-demand by loadCustomValues()
// Update UI
updateSyncInfo(data.last_sync);