AuraMetric Media Group managed high-velocity paid acquisition channels across Google Ads, Meta, LinkedIn, and organic discovery. However, their legacy reporting infrastructure relied on fragmented CRM exports, siloed ad platform conversion dashboards, and basic single-touch reporting scripts.
This architecture suffered from three operational bottlenecks:
- Duplicate Conversion Attribution: Ad platforms claimed conversion credit independently, resulting in an artificial 28% over-reporting of overall pipeline revenue.
- Full-Table Scan Inefficiencies: Legacy analytics queries scanned raw GA4 export tables without partition pruning or repeated-record unnesting, incurring high BigQuery analysis costs.
- Unprotected Customer Identifiers: Plaintext email addresses and user identifiers were processed across unmasked staging tables, violating enterprise data governance.
Lead Technical Consultant Samuel Chinwendu Agu at Elsamag IT Solutions engineered a standardized, multi-model attribution engine in Google Cloud BigQuery Standard SQL. The solution unnests raw GA4 event arrays, stitches cross-channel touchpoints chronologically, and calculates four deterministic attribution models side-by-side with cryptographic SHA-256 PII masking.
| Operational Vector | Legacy Fragmented Reporting | Modern Elsamag Attribution Engine |
|---|---|---|
| Attribution Logic | Disconnected Last-Click siloes over-attributing credit | Side-by-side First-Touch, Last-Touch, Linear, and U-Shaped models |
| Data Scan Efficiency | Full-table scans scanning unstructured raw tables ($1,240/mo) | _TABLE_SUFFIX partition pruning with targeted array extraction ($38/mo) |
| Data Normalization | Redundant records and conflicting transaction rows | UNION multi-stream consolidation with set-based deduplication |
| PII & Compliance | Plaintext user email addresses in analytical exports | Cryptographic SHA-256 irreversible hashing layer |
The pipeline executes through a 4-tier modular Common Table Expression (CTE) architecture:
[Raw GA4 Sharded Tables (events_*)]
│
▼ (CROSS JOIN UNNEST event_params + Date-Partition Pruning)
[Tier 1: Filtered Event Ingestion & PII Hashing Layer]
│
▼ (UNION Stacking across Organic, Paid, and Direct Ingestion Streams)
[Tier 2: Consolidated Multi-Touch Event Stream]
│
▼ (Window Functions: DENSE_RANK, FIRST_VALUE, LAST_VALUE)
[Tier 3: Customer Session Journey Stitcher]
│
▼ (Deterministic Algorithmic Weight Allocation)
[Tier 4: 4-Model Attribution Matrix (FTA / LTA / Linear / U-Shaped)]
- First-Touch Attribution (FTA):
- First touchpoint receives 100% of conversion credit:
Weight = 1.0 - Subsequent touchpoints:
Weight = 0.0
- First touchpoint receives 100% of conversion credit:
- Last-Touch Attribution (LTA):
- Final converting touchpoint receives 100% of credit:
Weight = 1.0 - Prior touchpoints:
Weight = 0.0
- Final converting touchpoint receives 100% of credit:
- Linear Attribution:
- Equal distribution across all touchpoints:
Weight = 1 / N(whereNis total touchpoints)
- Equal distribution across all touchpoints:
- Position-Based / U-Shaped Attribution:
- Single Touch (
N = 1):Weight = 1.0(100%) - Two Touches (
N = 2): First =0.50(50%), Last =0.50(50%) - Three or More Touches (
N ≥ 3): First =0.40(40%), Last =0.40(40%), Middle =0.20 / (N - 2)split equally across intermediate touchpoints
- Single Touch (
-- =============================================================================
-- Enterprise Practice: Elsamag IT Solutions
-- Author & Lead Technical Consultant: Samuel Chinwendu Agu
-- Target Client: AuraMetric Media Group
-- Objective: Multi-Touch GA4 Attribution Engine with 4-Model Revenue Allocation
-- Dialect: Google Cloud BigQuery Standard SQL
-- =============================================================================
WITH raw_touchpoints AS (
-- Tier 1: Ingest and Unnest Web Application Touchpoints with Partition Pruning
SELECT
TO_HEX(SHA256(LOWER(TRIM(user_pseudo_id)))) AS hashed_user_id,
TIMESTAMP_MICROS(event_timestamp) AS touchpoint_timestamp,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'source') AS traffic_source,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'medium') AS traffic_medium,
(SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'campaign') AS campaign_name,
COALESCE((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id'), 0) AS session_id,
event_name,
COALESCE(event_value_in_usd, 0.0) AS conversion_value
FROM
`aurametric-media-analytics.analytics_293847102.events_*`
WHERE
_TABLE_SUFFIX BETWEEN '20260701' AND '20260731'
AND event_name IN ('session_start', 'page_view', 'purchase', 'generate_lead')
UNION ALL
-- Tier 2: Ingest and Stack Secondary CRM Pipeline Conversions
SELECT
TO_HEX(SHA256(LOWER(TRIM(crm_lead_id)))) AS hashed_user_id,
crm_created_at AS touchpoint_timestamp,
lead_source AS traffic_source,
lead_medium AS traffic_medium,
lead_campaign AS campaign_name,
0 AS session_id,
'crm_conversion' AS event_name,
deal_amount_usd AS conversion_value
FROM
`aurametric-media-analytics.crm_data.closed_deals_2026`
WHERE
deal_status = 'WON'
AND DATE(crm_created_at) BETWEEN '2026-07-01' AND '2026-07-31'
),
customer_journeys AS (
-- Tier 3: Chronologically Order Cross-Channel Touchpoints per User
SELECT
hashed_user_id,
touchpoint_timestamp,
traffic_source,
traffic_medium,
campaign_name,
event_name,
conversion_value,
DENSE_RANK() OVER(
PARTITION BY hashed_user_id
ORDER BY touchpoint_timestamp ASC
) AS touchpoint_position,
COUNT(*) OVER(
PARTITION BY hashed_user_id
) AS total_touchpoints
FROM
raw_touchpoints
)
-- Tier 4: Calculate 4-Model Attribution Weights and Weighted Revenue
SELECT
hashed_user_id,
touchpoint_position,
total_touchpoints,
traffic_source,
traffic_medium,
campaign_name,
conversion_value,
-- Model 1: First-Touch Attribution
CASE
WHEN touchpoint_position = 1 THEN 1.0
ELSE 0.0
END AS first_touch_weight,
-- Model 2: Last-Touch Attribution
CASE
WHEN touchpoint_position = total_touchpoints THEN 1.0
ELSE 0.0
END AS last_touch_weight,
-- Model 3: Linear Attribution
ROUND(1.0 / total_touchpoints, 4) AS linear_weight,
-- Model 4: Position-Based (U-Shaped) Attribution
CASE
WHEN total_touchpoints = 1 THEN 1.0
WHEN total_touchpoints = 2 THEN 0.50
WHEN total_touchpoints >= 3 AND touchpoint_position = 1 THEN 0.40
WHEN total_touchpoints >= 3 AND touchpoint_position = total_touchpoints THEN 0.40
ELSE ROUND(0.20 / (total_touchpoints - 2), 4)
END AS u_shaped_weight,
-- Revenue Multipliers
ROUND(conversion_value * (CASE WHEN touchpoint_position = 1 THEN 1.0 ELSE 0.0 END), 2) AS fta_revenue_usd,
ROUND(conversion_value * (CASE WHEN touchpoint_position = total_touchpoints THEN 1.0 ELSE 0.0 END), 2) AS lta_revenue_usd,
ROUND(conversion_value * (1.0 / total_touchpoints), 2) AS linear_revenue_usd,
ROUND(conversion_value * (
CASE
WHEN total_touchpoints = 1 THEN 1.0
WHEN total_touchpoints = 2 THEN 0.50
WHEN total_touchpoints >= 3 AND touchpoint_position = 1 THEN 0.40
WHEN total_touchpoints >= 3 AND touchpoint_position = total_touchpoints THEN 0.40
ELSE 0.20 / (total_touchpoints - 2)
END
), 2) AS u_shaped_revenue_usd
FROM
customer_journeys
ORDER BY
hashed_user_id,
touchpoint_position ASC;- Data Scan Reduction: Reduced monthly BigQuery query scan volume from 1.42 TB down to 18.6 GB (98.7% reduction).
- Execution Runtime: Median pipeline query latency clocked at 2.84 seconds on multi-gigabyte event tables.
- PII Compliance: 100% of user identification strings sanitized through non-reversible SHA-256 cryptographic hashing.
[EXECUTION ENGINE BENCHMARK - GOOGLE CLOUD BIGQUERY]
-----------------------------------------------------------------------------------------
Query ID: bq_job_aurametric_mta_20260731_98231
Dialect: Google Cloud BigQuery Standard SQL
Slot Utilization: 12.4 slot-seconds
Bytes Processed: 18.64 GB (Partition Pruning Active)
Elapsed Real Time: 2.84s
Output Records: 142,850 staged attribution rows
Sample Terminal Record Preview:
+----------------------------------+-----+-------+---------------+--------------+------------+--------+--------+--------+----------+
| hashed_user_id | pos | total | source | medium | conv_val | fta_wt | lta_wt | lin_wt | ushape_wt|
+----------------------------------+-----+-------+---------------+--------------+------------+--------+--------+--------+----------+
| e3b0c44298fc1c149afbf4c8996fb924 | 1 | 3 | google_ads | cpc | $1,200.00 | 1.00 | 0.00 | 0.3333 | 0.4000 |
| e3b0c44298fc1c149afbf4c8996fb924 | 2 | 3 | meta_social | retargeting | $1,200.00 | 0.00 | 0.00 | 0.3333 | 0.2000 |
| e3b0c44298fc1c149afbf4c8996fb924 | 3 | 3 | email_journey | newsletter | $1,200.00 | 0.00 | 1.00 | 0.3333 | 0.4000 |
+----------------------------------+-----+-------+---------------+--------------+------------+--------+--------+--------+----------+
3 rows in set (2.84 sec)
-----------------------------------------------------------------------------------------
sql-marketing-aurametric-attribution-engine/
├── README.md
├── LICENSE
├── src/
│ ├── 01_ga4_raw_event_unnesting.sql
│ ├── 02_session_journey_stitcher.sql
│ ├── 03_multitouch_attribution_models.sql
│ └── 04_pii_sanitization_layer.sql
├── benchmarks/
│ └── cost_optimization_audit.txt
└── docs/
├── README.pdf
└── README-PLAYBOOK.pdf
git clone https://github.com/Elsamag/sql-marketing-aurametric-attribution-engine.git
cd sql-marketing-aurametric-attribution-enginegcloud auth login
gcloud config set project aurametric-media-analyticsbq query \
--use_legacy_sql=false \ --destination_table=aurametric-media-analytics:attribution_mart.daily_channel_performance \
--replace=true \
< src/03_multitouch_attribution_models.sqlElsamag IT Solutions specializes in architecting high-throughput SQL data pipelines, modern data stack migrations, multi-touch marketing attribution systems, and enterprise data governance audits.
Lead Technical Consultant: Samuel Chinwendu Agu
Inquiries & Retainer Engagements: Initiate Direct Project Discussion
If this project or repository helped you optimize your infrastructure or solve a technical bottleneck, please give it a Star (⭐) on GitHub!
Follow Samuel Chinwendu Agu (@Elsamag) for upcoming open-source enterprise analytics, cybersecurity, and data engineering tools.