
ã¹ãã¬ããã·ãŒãã®ããŒã¿ããæ¯æ¥èªåã§ BigQuery ã«åã蟌ããå€éšããŒãã«ïŒå·®åæŽæ°ã¯ãšãªã®çéãã¿ãŒã³ã
ããã«ã¡ã¯ãåºåããŒã¿ã€ã³ãã©ãRobomaïŒãããïŒãã®ã¹ã¿ããã§ãã
GA4 ã®æµå
¥æ°ãã¢ããšãã¹ã®ã³ã³ããŒãžã§ã³ãHubSpot ã®ãªãŒããæ°ã¥ããšãæ¡ä»¶ããšã«å¥ã
ã®ã¹ãã¬ããã·ãŒãã«æäœæ¥ã§éããŠããæ¹ãžã
ãã®ã·ãŒãã BigQuery ããçŽæ¥èªããããAI ã«ãå æã®æµå ¥çµè·¯å¥ã« CV ãŸã§äžæ°é貫ã§èŠããŠããšèãã ãã§åæã§ããããã«ãªããŸãã
ãããŸã§ãGA4 ã®ããŒããŒã¿ã BigQuery ã«ãšã¯ã¹ããŒãããæ¹æ³ãšãSearch Console ã®ããŒã¿ã BigQuery ã«åºåããæ¹æ³ãèšäºã«ããŠããŸãããä»åã¯ãã®ç¶ããšããŠãèªå飿ºã®å£ããªãããŒã¿ãããšãã°æå ã®ã¹ãã¬ããã·ãŒãã«ããç¡ãããŒã¿ã BigQuery ã«æ¯æ¥èªåã§åãèŸŒãæ¹æ³ãã玹ä»ããŸãã
GA4ã»ã¢ããšãã¹ã»HubSpot ã®ããã«ãAPI ã§ãŸãšããŠåºãã®ãé£ããããŒã¿ãããã£ããã¹ãã¬ããã·ãŒãã«éããŠããŸãã° BigQuery ã«èç©ã§ããŸãããããäžåºŠèšå®ããŠããŸãã°ãããšã¯æ¯æãçŽè¿åã ããå·®åæŽæ°ãç¶ããããŸãã
ãªããã¹ãã¬ããã·ãŒã â BigQueryããäœãã®ã
åºåããŒã¿ãã®ãã®ã¯ Roboma çµç±ã§ BigQuery ã«åºåã§ããŸããã§ãããŒã±ãã£ã³ã°åæã®çŸå Žã§æ¬åœã«èŠããã®ã¯ãåºåã®æåãšå¥¥ã«ããããŒã¿ã§ãã
GA4 ã®ã»ãã·ã§ã³ãã¢ããšãã¹ã®ã¢ããªãã¥ãŒã·ã§ã³ãHubSpot ã®ãªãŒããåè«ããã®3ã€ãåºåããŒã¿ãšåã BigQuery ã®äžã«äžŠãã§åããŠããã©ã®åºåãçµç±ããŠããµã€ãã§ã©ãåããŠãæçµçã«åè«ã«ãªã£ããããã²ãšã€ã®ã¯ãšãªã§è¿œããŸãã
ãšããã GA4 ã¯ãšããããã¢ããšãã¹ã HubSpot ã®ã¬ããŒãã¯ãæ¡ä»¶ã«ãã£ãŠåºãæ¹ããã©ãã©ã§ããæ åœè ãã¹ãã¬ããã·ãŒãã«è²Œãä»ããŠç®¡çããŠããããšããã±ãŒã¹ã¯å€ããšæããŸãã
ã ã£ãããã®ã¹ãã¬ããã·ãŒãããBigQuery ã®ããŒã¿ãœãŒã¹ãšããŠãã®ãŸãŸäœ¿ã£ãŠããŸãã°è¯ããšæã£ãã®ãä»åã®çºæ³ã®èµ·ç¹ã§ããã¹ãã¬ããã·ãŒãã«æ°ããè¡ãå¢ããã°ãçŽåŸã«ã¯ BigQuery ã®ããŒãã«ã«ãåæ ãããŠããããããªç¶æ ãç®æããŸãã
å šäœåã¯4ã¹ããã
ããããšã¯å€§ãã4ã€ã§ãã
åºåå ã® BigQuery ã«ããŒã¿ã»ãããäœã
ã¹ãã¬ããã·ãŒãããå€éšããŒãã«ããšããŠå®çŸ©ãã
å€éšããŒãã«ãã¯ã¬ã³ãžã³ã°ããŠãæ¥ä»ã§ããŒãã£ã·ã§ã³ãåã£ãããã€ãã£ãããŒãã«ããååæ§ç¯ïŒ1åã ãïŒ
çŽè¿åã ããæŽãæ¿ããå·®åæŽæ°ã¯ãšãªããæ¯æ¥ã®ã¹ã±ãžã¥ãŒã«ã«ç»é²ãã
ããã§äžçªå€§äºãªã®ãã2 ã®ãå€éšããŒãã«ããš 3 ã®ããã€ãã£ãããŒãã«ãã®åœ¹å²ã®éãã§ããå ã«å³ã§å šäœåãæŽãã§ãããŸãã

ãå€éšããŒãã«ãã¯ãããŒã¿ã®ã³ããŒãæã¡ãŸãããã¯ãšãªãèµ°ããã³ã«ã¹ãã¬ããã·ãŒããçŽæ¥èªã¿ã«è¡ãããã¥ãŒã®ãããªååšã§ããã ãããã¹ãã¬ããã·ãŒã â å€éšããŒãã«ããšããåã蟌ã¿åŠçã¯ååšããŸãããã¹ãã¬ããã·ãŒããæŽæ°ããã°ãå€éšããŒãã«ã¯åžžã«ææ°ãåæ ããŸãã
äžæ¹ã®ããã€ãã£ãããŒãã«ãã¯ãåãæŽããå®äœã®ããããŒãã«ã§ããåæã JOIN ã¯ãã¡ãã«å¯ŸããŠè¡ããŸããæ¯æ¥ã®æŽæ°ã¯ããã®ãã€ãã£ãããŒãã«ã®ãçŽè¿åã ãããäœãçŽããŸããå šéšãæ¯åäœãçŽããªãã®ãã³ã¹ãåæžã®ãã€ã³ãã§ãã
ãã®éããåãããšãåŸåã®å·®åæŽæ°ããã£ããçè§£ã§ããŸããé çªã«äœã£ãŠãããŸãããã
ã¹ããã1ïŒåºåå ã®ããŒã¿ã»ãããäœã
æåã«ãããŒãã«ã眮ãåãç¿ãçšæããŸããBigQuery ã³ã³ãœãŒã«ã§ãããŒã¿ã»ãããäœæããéããŠã次ã®ããã«èšå®ããŸãã
ããŒã¿ã»ãã IDïŒimport_spreadsheetïŒåãããããååã§å¯ïŒ
ãã±ãŒã·ã§ã³ã¯ïŒasia-northeast1ïŒæ±äº¬ïŒ
ããŒãã«ã®æå¹æéïŒãªã
èšå®ã§äžçªæ°ãã€ãããã®ããã±ãŒã·ã§ã³ã§ããBigQuery ã¯ãªãŒãžã§ã³ãéãããŒã¿ã»ããå士ã1ã€ã®ã¯ãšãªã§ JOIN ã§ããŸããã
GA4 ã Search ConsoleãRoboma ã®åºåããŒã¿ããã§ã«æ±äº¬ãªãŒãžã§ã³ïŒasia-northeast1ïŒã«èç©ãããŠãããªãããã®ããŒã¿ã»ãããå¿ ãåã asia-northeast1 ã«ããããŠãã ããããããéããšã暪æåæã®ãã³ã«ããŒã¿ãã³ããŒããããšã«ãªããŸãã
ãªãŒãžã§ã³ã¯åŸããå€ããããŸãããæåã®äžæãšããŠãæ¢åããŒã¿ã®ãªãŒãžã§ã³ã確èªããŠããäœæããã®ãå®å šã§ãã
ã¹ããã2ïŒã¹ãã¬ããã·ãŒãããå€éšããŒãã«ãã«ãã
ããŒã¿ã»ãããã§ããããã·ãŒããå€éšããŒãã«ãšããŠå®çŸ©ããŸããGA4ã»ã¢ããšãã¹ã»HubSpot ã®3ã·ãŒãåãåãèŠé ã§äœããŸãã以äžã¯GA4ïŒext_ga4ïŒã®äŸã§ãã
CREATE OR REPLACE EXTERNAL TABLE `PROJECT_ID.import_spreadsheet.ext_ga4`
OPTIONS (
format = 'GOOGLE_SHEETS',
uris = ['https://docs.google.com/spreadsheets/d/SHEET_ID'],
sheet_range = 'ga4!A:K',
skip_leading_rows = 0
);uris ã«ã¹ãã¬ããã·ãŒãã® URLãsheet_range ã«èªã¿ããã·ãŒãåãšåç¯å²ãæå®ããŸããããã ãã§ãã·ãŒãã BigQuery ã®ããŒãã«ã®ããã«èŠããããã«ãªããŸãã
ããã§ã²ãšã€ã³ãããããŸããskip_leading_rows = 0 ã«ããŠãããããŒè¡ããšå šéšèªãæžãæ¹ã«ããŠããŸãã
çç±ã¯ãã·ãŒãã®ããããŒã«èšå·ãæ¥æ¬èªãæ··ãã£ãŠãããšãååãšããŠæ±ããšãã«ãšã©ãŒã«ãªããããããã§ããskip_leading_rows = 0 ã§èªããšãååã¯èªåçã« string_field_0ãstring_field_1 ãšããé£çªã«ãªããŸããèšå·ããããŒåé¡ãé¿ããããŠãåŸã®æŽåœ¢ãæžãããããªããŸããããããŒè¡ãã®ãã®ã¯ã次ã®ã¹ãããã§é€å€ããŸãã
ããäžç¹ããã®æ®µéã§ã¯ãåãäžåæå®ããŸãããå šéš STRING ãšããŠçŽ çŽã«èªã¿ãŸãã
ãæ¥ä»å㯠DATE åã§èªãã°ããã®ã§ã¯ããšæããšããã§ãããå€éšããŒãã«ã¯èªã¿åãã®ãã³ã«ã·ãŒããããŒã¹ããŸãã20260101 ã®ãããªåœ¢åŒã¯ BigQuery ã® DATE ãšããŠèªããã28,000 ã®ãããªã«ã³ãå ¥ãã®æ°åã INT64 ã«ããããšãããšããã®1è¡ã§ã¯ãšãªå šäœããšã©ãŒã«ãªã£ãŠããŸããŸãããã¹ãã³ã°ãããã********ãã空ã»ã«ããåäžäžèŽãèµ·ããåå ã§ãã
æ±ããã·ãŒããå£ããã«åãæ¢ããã«ã¯ãå€éšããŒãã«ã¯ STRING ã§çŽ çŽã«èªãã§ãæŽåœ¢ã¯æ¬¡ã®ã¹ãããã«åãããã®äºæ®µæ§ãã«ããããšã§ããªãå®å®ããã¯ãã§ãã
ã¹ããã3ïŒã¯ã¬ã³ãžã³ã°ããŠãã€ãã£ãããŒãã«ãæ§ç¯ãã
ãããå®åã®å±±å Žã§ããå€éšããŒãã«ã® STRING ããåæã§äœ¿ããåãšã«ã©ã åã«æŽããŠããã€ãã£ãããŒãã«ãšããŠçŒãä»ããŸãããã®æ§ç¯ã¯ãšãªã¯ååã ãå®è¡ããŸãã
ãªãã¯ã¬ã³ãžã³ã°ãèŠãã®ããçã®ã·ãŒãã®å€ã¯ããã®ãŸãŸã§ã¯éèšã«äœ¿ããªãããã§ããå ·äœçã«ã¯ãããããæ±ãã綺éºã«ããŠãããŸãã

å®éã®ã¯ãšãªã¯ä»¥äžã®ããã«ãªããŸããã¢ããšãã¹ã®ã·ãŒããäŸã«ããŠããŸããæ³šç®ããŠããã ãããã®ãããPARTITION BYãã§ããæ¥ä»ã®åã§ããŒãã£ã·ã§ã³ïŒããŒãã«ã®å éšçãªåºåãïŒãåã£ãŠãããŸãããããåŸã®å·®åæŽæ°ã軜ãããåžç³ã«ãªããŸãã
CREATE OR REPLACE TABLE `PROJECT_ID.import_spreadsheet.adebis`
PARTITION BY DATE(cv_time) AS
SELECT
string_field_0 AS cv_name,
SAFE.PARSE_DATETIME('%Y-%m-%d %H:%M:%S', string_field_1) AS cv_time,
NULLIF(string_field_3, '') AS user_name,
SAFE_CAST(REPLACE(string_field_4, ',', '') AS INT64) AS revenue,
NULLIF(string_field_15, '********') AS direct_media_type,
NULLIF(string_field_19, '********') AS direct_ad_name
FROM `PROJECT_ID.import_spreadsheet.ext_adebis`
WHERE string_field_0 != 'CVå'; -- ããããŒè¡ãé€å€ã¯ã¬ã³ãžã³ã°ã®ãã¯ããã¯4ã€ãæŒãããŠãã ããã
äžã€ç®ãæ¥ä»ãšæå»ãSAFE.PARSE_DATETIME ã§æååã DATETIME ã«å€æããŸããSAFE. ãé ã«ä»ãããšã倿ã§ããªãå€ãæ¥ãŠã NULL ãè¿ããŠãšã©ãŒã§æ¢ãŸããŸãããHubSpot ã®ããã«ããªç§ã®ã¿ã€ã ã¹ã¿ã³ãã§æ¥ãåã¯ãTIMESTAMP_MILLIS(SAFE_CAST(string_field_1 AS INT64)) ã§å€æããŸãã
äºã€ç®ãåäœä»ãã»ã«ã³ãä»ãã®éé¡ã28,000 ã®ãããªå€ã¯ããŸã REPLACE ã§ã«ã³ããæ¶ããŠãã SAFE_CAST ã§ INT64 ã«ããŸãããÂ¥ãããåããä»ãå ŽåããåãèŠé ã§ REPLACE ã§å¥ãããŸãã
äžã€ç®ããã¹ãã³ã°ãšç©ºã»ã«ã******** ã§ãã¹ã¯ãããå€ã¯ NULLIF(å, '********') ã§ NULL ã«åããŸãã空æå㯠NULLIF(å, '') ã§ NULL ã«ããŸããããããããªããšã空ã®ã»ã«ã空æåãšããŠéèšã«æ··ãã£ãŠããŸããŸãã
åã€ç®ãããããŒè¡ã®é€å€ãã¹ããã2ã§ skip_leading_rows = 0 ã«ããåãããã§ WHERE string_field_0 != 'CVå' ã®ããã«ããããŒæååã匟ããŸãã
ãã®ã¯ãšãªã GA4ã»ã¢ããšãã¹ã»HubSpot ããããã«çšæããŠ1åæµãã°ãå šæéåã®åä»ããã€ãã£ãããŒãã«ã3ã€ã§ãããããŸããããŒãã£ã·ã§ã³ã®ããŒã¯ãGA4 ãªãæ¥ä»åãã¢ããšãã¹ãªã DATE(cv_time)ãHubSpot ãªã DATE(registered_at) ã®ããã«ãããããã®æ¥ä»åã«åãããŸãã
ãã€ãã£ãããŒãã«ãŸã§äœæãããšä»¥äžã®ãããªããŒãã«æ§æã«ãªãããšæããŸãããext_ããšä»ãããã®ãå€éšããŒãã«ã§ããadebisããga4ããhubspotããªã©ããã€ãã£ãããŒãã«ãšãªããŸãã

ã¹ããã4ïŒå·®åæŽæ°ãæ¯æ¥ã¹ã±ãžã¥ãŒã«ãã
æåŸã«ãæ¯æ¥ã®èªåæŽæ°ã¯ãšãªãèšå®ããŸããæ¯åå šããŒã¿ãäœãçŽããªãã®ããã€ã³ãã§ãã
æ¯æã·ãŒãå šäœãèªã¿çŽããŠããŒãã«ããŒãããäœããšãã¹ãã¬ããã·ãŒãã®ããŒã¿ãå¢ããã»ã©èªã¿åãéãå¢ããBigQuery ã®ã¹ãã£ã³æéãããã¿ãŸããããã§ãæžãæããã®ã¯çŽè¿ã®æ°æ¥åã ãã«ããŸãã忥ã«å¢ããè¡ãšãçŽè¿ã§åŸããä¿®æ£ãå ¥ã£ãè¡ãæŸããã°ãå®åäžã¯å°ããªãããšæããŸãã
ããæ¹ã¯ã·ã³ãã«ã§ãçŽè¿3æ¥åãäžåºŠæ¶ããŠãåã3æ¥åãã·ãŒãããèªã¿çŽããŠå ¥ãçŽãã ãã§ãã
-- æ¯æ¥ã¹ã±ãžã¥ãŒã«å®è¡ããå·®åæŽæ°ïŒçŽè¿3æ¥åã ãæŽãæ¿ãïŒ
DECLARE win_start DATE DEFAULT DATE_SUB(CURRENT_DATE('Asia/Tokyo'), INTERVAL 3 DAY);
-- â çŽè¿3æ¥åãäžåºŠåé€ãã
DELETE FROM `PROJECT_ID.import_spreadsheet.adebis`
WHERE DATE(cv_time) >= win_start;
-- â¡ åã3æ¥åãã·ãŒãããèªã¿çŽããŠå
¥ãçŽãïŒæŽåœ¢ã¯ã¹ããã3ãšåãïŒ
INSERT INTO `PROJECT_ID.import_spreadsheet.adebis`
SELECT
string_field_0 AS cv_name,
SAFE.PARSE_DATETIME('%Y-%m-%d %H:%M:%S', string_field_1) AS cv_time,
NULLIF(string_field_3, '') AS user_name,
SAFE_CAST(REPLACE(string_field_4, ',', '') AS INT64) AS revenue,
NULLIF(string_field_15, '********') AS direct_media_type,
NULLIF(string_field_19, '********') AS direct_ad_name
FROM `PROJECT_ID.import_spreadsheet.ext_adebis`
WHERE string_field_0 != 'CVå'
AND SAFE.PARSE_DATE('%Y-%m-%d', SUBSTR(string_field_1, 1, 10)) >= win_start;ãã®ããæ¹ã«ã¯ãè¯ãç¹ã3ã€ãããŸãã
æžãæããã®ã¯çŽè¿ã®ããŒãã£ã·ã§ã³ã ããªã®ã§ãèªã¿åãéãå°ããã³ã¹ããæããããŸããåãæ¥ã«2åæµããŠããäžæŠæ¶ããŠããå ¥ãçŽãã®ã§éè€ããŸããã忥åã®è¿œèšã ãã§ãªããçŽè¿3æ¥ã®ãã¡ã«åŸããä¿®æ£ãããè¡ãã¡ãããšæŸããŸãããçŽè¿ N æ¥ãã®ãŠã£ã³ããŠã¯ãããŒã¿ã®ä¿®æ£ãã©ããããåŸè¿œãã§å ¥ããã«åãããŠã3æ¥ã§ã7æ¥ã§ã調æŽå¯èœã§ãã
ã¹ã±ãžã¥ãŒã«ã«ç»é²ããã®ã¯ãã®å·®åæŽæ°ã¯ãšãªã®æ¹ã§ããBigQuery ã³ã³ãœãŒã«ã®ã¯ãšãªãšãã£ã¿ã«ãã®ã¯ãšãªã貌ãä»ããŠãã¹ã±ãžã¥ãŒã«ããæŒããç¹°ãè¿ãããæ¯æ¥ãã«èšå®ããŸãã
ããã§1ã€ã ã倧äºãªã¿ã€ãã³ã°ã®è©±ããããŸãããã®å·®åæŽæ°ã¯ãã¹ãã¬ããã·ãŒããææ°åãããåŸã«èµ°ãããããã«ããŠãã ããã
å€ãã®å ŽåãGAS ã RPA ãªã©ã§æ¯æã¹ãã¬ããã·ãŒãã«åæ¥åãæžãè¶³ããšæããŸãããã®è¿œèšãçµããåã« BigQuery åŽã®å·®åæŽæ°ãèµ°ããšãå€ãã·ãŒããèªãã§ããŸããŸããäŸãã°ã¹ãã¬ããã·ãŒãã®æŽæ°ãæ 7 æå°ãªããBigQuery ã®å·®åæŽæ°ã¯ 8 æå°ã«ããšããããã«æéãããããŠèšå®ããã®ãå®å šã§ãã
ããã§ãã¹ãã¬ããã·ãŒããææ°åããã â BigQuery ãçŽè¿åã ãåã蟌ãããšããæµããã§ããŸããRoboma ã®åºåããŒã¿ã BigQuery ã«åºåãããã¿ã€ãã³ã°ãšæé垯ãæããŠãããšããã®æ¥ã®ãã¡ã«åºåããŒã¿ãšçªãåãããåæã«å ¥ããŸãã
ãŸãšã
ã¹ãã¬ããã·ãŒããæ¯æ¥ BigQuery ã«åãèŸŒãæµãããæ¹ããŠæŽçããŸãã
ã¹ããã1ïŒä»ã®ããŒã¿ãšåããªãŒãžã§ã³ã§ããŒã¿ã»ãããäœãã
ã¹ããã2ïŒã·ãŒãã STRING ã®ãŸãŸå€éšããŒãã«ãšããŠå®çŸ©ããã
ã¹ããã3ïŒæ¥ä»ã»éé¡ã»ãã¹ãã³ã°ã»ç©ºã»ã«ãã¯ã¬ã³ãžã³ã°ããŠãæ¥ä»ã§ããŒãã£ã·ã§ã³ãåã£ããã€ãã£ãããŒãã«ã1åã ãæ§ç¯ããã
ã¹ããã4ïŒçŽè¿åã ããæŽãæ¿ããå·®åæŽæ°ã¯ãšãªããã·ãŒãæŽæ°ã®åŸã®æå»ã§æ¯æ¥ã¹ã±ãžã¥ãŒã«ããã
ãã€ã³ã3ã€ã§ãã
å€éšããŒãã«ã¯ STRING ã§çŽ çŽã«èªãã§æŽåœ¢ã¯ SELECT åŽã«å¯ããããšã
ãã€ãã£ãããŒãã«ã¯æ¥ä»ã§ããŒãã£ã·ã§ã³ãåã£ãŠãæ¯æ¥ã¯çŽè¿åã ãå·®åæŽæ°ããããšã
æåŸã«ãå·®åæŽæ°ã¯ã·ãŒããææ°åãããåŸã«èµ°ãããããšã
ãã®3ã€ãæŒãããã°ãã©ããªã¹ãã¬ããã·ãŒãã§ãå¹ççã«ãå£ããã«æŽæ°ãç¶ããããããšæããŸãã
GA4ã»ã¢ããšãã¹ã»HubSpot ãªã©ã®ããŒã¿ãåã BigQuery ã®äžã§åä»ãã§ããããšãAI ã«æãããã仮説ã®å¹ ãäžæ°ã«åºãããŸããæµå ¥å ããåè«ãŸã§æšªæã§AIåæã§ããæåããã²å³ãã£ãŠã¿ãŠãã ããã
åŒç€Ÿã§ã¯ãåºåããŒã¿ã€ã³ãã©ãRobomaããæäŸããŠããŸãã60以äžã®åºååªäœã®ããŒã¿ãäžå 管çããBigQuery ã«èªååºåããŠãAI åæããããããã«å å·¥ã»éèšããŠããŸãã
ã¹ãã¬ããã·ãŒãã«ããç¡ãããŒã¿ã®åã蟌ã¿ããBigQuery ãèµ·ç¹ã«ããåæç°å¢æ§ç¯ã®ãçžè«ãæ¿ã£ãŠããŸããèå³ã®ããæ¹ã¯ãã¡ããããåãåãããã ããã