Дублирование между clientId и внутренней учетной записью из нестандартных пользовательских измерений - PullRequest
0 голосов
/ 03 апреля 2020

На моем веб-сайте внутренняя учетная запись помещается на уровень данных каждый раз, когда кто-либо регистрируется или входит в систему, и сохраняется в пользовательских измерениях. Это позволяет мне использовать 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

...