Я бы не рекомендовал присоединяться ко всей таблице ga_sessions.Выберите только нужный вам столбец (более эффективный и более дешевый), прежде чем вы сможете использовать пользовательские размеры, которые вам нужны, чтобы получить их из своих массивов.Самый простой способ сделать это - создать подзапрос.
with base as (
SELECT
DATE,
(SELECT value FROM UNNEST(hits.customDimensions) WHERE index=1 LIMIT 1) AS hit_level_cd1,
(SELECT value FROM UNNEST(t.customDimensions) WHERE index=3 LIMIT 1) session_level_cd3
FROM `wehco-bi.64884663.ga_sessions_20180928` AS t, UNNEST(hits) AS hits
)
SELECT DATE, hit_level_cd1,session_level_cd3
FROM base AS GA
LEFT JOIN
`wehco-bi.BlueConic.ao` AS BC
ON GA.session_level_cd2 = BC.bc_profile_id
LIMIT 100
сначала я создаю временную базовую таблицу, в которой я раскручиваю нестандартные измерения (я показывал разницу как для сеанса, так и для уровня попадания), затем я использую одиниз них, чтобы присоединить их к новой таблице так же, как вы пытались это сделать.