На моем веб-сайте внутренняя учетная запись помещается на уровень данных каждый раз, когда кто-либо регистрируется или входит в систему, и сохраняется в пользовательских измерениях. Это позволяет мне использовать ie clientId для внутреннего учета, чтобы я мог сопоставить своих клиентов с их поведением в Интернете. Этот процесс работал для меня и раньше, и задолго до того, как я присоединился к этой компании. Но теперь у меня возникла проблема с дублированием, когда не только один внутренний учет, связанный с несколькими clientIds (что вполне нормально в связи с очисткой cook ie, et c), но и один clientId связан со многими внутренние учетные записи (все они, по-видимому, не связаны со всем земным шаром, и я подтвердил, что они настоящие клиенты, а не учетные записи спама).
Я думал о том, что могут привести к этому реальные примеры странные данные, но я не могу думать ни о чем. Общий компьютер в домашнем хозяйстве или общедоступный c компьютер может иметь несколько учетных записей на одном clientId, но эти учетные записи имеют адреса по всему миру.
Кто-нибудь испытывал нечто подобное? Если да, то нашли ли вы решение?
Мой код довольно прост. Я просто отменяю визиты, затем беру все различные связанные идентификаторы клиентов и учетные записи:
WITH clientid_accountid_unnest AS (
SELECT
CONCAT(clientId, CAST(visitId AS STRING)) as visitId,
clientId,
accid.value as internal_accountid
FROM `###.###.ga_sessions_*`, UNNEST(customDimensions) AS accid
WHERE accid.index = 13
)
SELECT distinct clientId, internal_accountid FROM clientid_accountid_unnest
WHERE clientId is not null
AND internal_accountid not like ''
AND internal_accountid is not null