Вы уже правильно его настраиваете. Если вы ссылаетесь на то, что видите в URL-адресе запроса, то именно так его отправляет библиотека Adobe. В вашем примере «myco» является пространством имен, а «rsid» является переменной в этом пространстве имен. И вы можете иметь другие переменные в этом пространстве имен. Например, если у вас есть
s.contextData['myco.rsid1'] = 'value';
s.contextData['myco.rsid2'] = 'value';
Вы увидите в URL запроса AA (просто показывает соответствующую часть):
c.&myco.&rsid1=value&rsid2=value&.myco&.c
Я предполагаю, что вы спрашиваете, потому что вы хотите более легко проанализировать / qa URL-адреса запросов на сбор данных AA из вкладки сети браузера, расширения или какого-либо юнит-тестера? Невозможно заставить AA не вести себя подобным образом при использовании точечного синтаксиса (пространств имен) в ваших переменных.
Но нет ничего особенного в использовании пространств имен для ваших contextData
переменных; это просто для вашей собственной организации, если вы выберете. Поэтому, если вы хотите, чтобы все переменные были «верхнего уровня» и отображали полные имена в URL-адресе запроса, не используйте точечный синтаксис.
Если вы хотите по-прежнему использовать некоторую меру организации / иерархии, я предлагаю вместо этого использовать подчеркивание _
:
s.contextData['myco_rsid1'] = 'value';
s.contextData['myco_rsid2'] = 'value';
Что даст вам:
c.&myco_rsid1=value&myco_rsid2=value&.c
Side Примечание: Вы не можете сделать полный синтаксис записи объекта / точки с s.contextData
, например,
s.contextData = {
foo:'bar', // <--- this will properly parse
myco:{ // this will not properly parse
rsid:'value' //
} //
};
Библиотека АА не анализирует это правильно; он просто перебирает свойства верхнего уровня contextData
при создании URL запроса. Поэтому, если вы выполните полный синтаксис объекта, как описано выше, вы получите:
c.&foo=bar&myco=%5Bobject%20Object%5D&&.c
foo
будет в порядке, но в итоге вы получите просто myco
с "[object Object]" в качестве записанного значения. Почему Adobe не учитывает полный синтаксис объекта и просто JSON.stringify(s.contextData)
? ¯\_(ツ)_/¯