• Home
  • Matomo
  • Gids: hoe voeg je Matomo sites samen (na de Google Analytics Import)

Gids: hoe voeg je Matomo sites samen (na de Google Analytics Import)

door dec 13, 2022Matomo

Je bent misschien gestart met Matomo, om er vervolgens snel achter te komen dat al die data toch wel handig is.
In Google Analytics zit al die geschiedenis en die je wil wel graag in Matomo hebben.
Gelukkig heeft Matomo een plugin om de oude gegevens uit Google Analytics te importeren.
Makkie toch?

De google analytics importer zal altijd een nieuwe site id aanmaken (bronverwijzing matomo). Vervolgens heb je dus 2 sites in Matomo: 1 met oude data, 1 met nieuwe.

 Dus hoe los je dit op?

Matomo sites samenvoegen (na Google Analytics import)

Eigenlijk hoef je maar 1 ding te doen: in elk record de ID van jouw “Google Analytics site” samen voegen met jouw “Matomo site”. Om jouw dit makkelijk te maken hebben wij onderaan een kort script voor jou.
 

Handleiding

  1. Zoek de ID’s op van beide sites
  2. Kopieer en plak dit script naar een kladblok (Notepad++ FTW) en pas het volgende aan:
    1. Regel 1: USE <database naam>;. Bijv: USE matomo;
    2. Regel 55: oude analytics matomo ID . Bijv: 2
    3. Regel 56: huidige site matomo ID. Bijv: 1
    4. Regel 57: maand oudste datum in analytics site. Bijv: ‘2019-07’
    5. Regel 58: maand laatste datum in analytics site (wanneer je matomo bent gestart). Bijv: ‘2022-06’
  3. Als je een prefix hebt voor elke tabel zet deze dan voor de volgende:
    1. Regel 20 & 21: archive_numeric_
    2. Regel 23 & 24: archive_blob_
    3. Regel 47: site
  4. login op jouw mysql via de console, phpMyAdmin of adminer.
  5. Maak een backup van jouw matomo database
  6. Kopieer en plak de SQL opdracht en voer deze uit
  7. Controleer of de gegevens nu goed staan
  8. Maak een overwinningsdansje

Matomo sites samenvoegen MySQL script

Met dank aan Github gebruiker Haet:

USE <database naam>;

delimiter //

drop procedure if exists merge_sites //
create procedure merge_sites(
IN id_old INT,
IN id_new INT,
IN month_start VARCHAR(7),
IN month_end VARCHAR(7)
)
begin
DECLARE done BOOL default false;
DECLARE tablename CHAR(255);

DECLARE cur1 cursor for
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE (
TABLE_NAME >= CONCAT(“archive_numeric_”, REPLACE( month_start, ‘-‘, ‘_’ ) )
AND TABLE_NAME <= CONCAT(“archive_numeric_”, REPLACE( month_end, ‘-‘, ‘_’ ) )
) OR (
TABLE_NAME >= CONCAT(“archive_blob_”, REPLACE( month_start, ‘-‘, ‘_’ ) )
AND TABLE_NAME <= CONCAT(“archive_blob_”, REPLACE( month_end, ‘-‘, ‘_’ ) )
)
;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open cur1;

myloop: loop
fetch cur1 into tablename;
if done then
leave myloop;
end if;
— SELECT tablename;

set @sql = CONCAT(‘UPDATE ‘, tablename, ‘ SET idsite=’, id_new, ‘ WHERE idsite=’, id_old );
— SELECT @sql;
prepare stmt from @sql;
execute stmt;
drop prepare stmt;

end loop;

close cur1;

UPDATE site
SET ts_created=TIMESTAMP( CONCAT( month_start, ‘-01 00:00:00.000’ ) )
WHERE idsite = id_new ;
end //

delimiter ;

call merge_sites(
1, — oude analytics site id
2, — huidige matomo site id
‘2019-07’, — startmaand
‘2022-06’ — eindmaand
);