Querying
- 1 Basic
- 1.1 Click
- 1.1.1 Find clicks by ICLID
- 1.2 Conversion
- 1.3 Touchpoint
- 1.4 Positions
- 1.5 Free parameters
- 1.6 Untracked
- 1.7 Attribution
- 1.8 Partnerships
- 1.9 Creatives
- 1.9.1 Get Vouchers
- 1.1 Click
- 2 Advanced
Basic
Basic queries for conversions. In this section, the result is containing single conversions with different fields, filtered by performedAt
Click
Find clicks by ICLID
Given a list of ICLIDs, how to find all according clicks.
with iclids as (
SELECT
-- Conversion to requestIds
cast('0x' || SUBSTR(id, 3,8) || SUBSTR(id, 12,4) || SUBSTR(id, 27,2) || SUBSTR(id, 19,2) as int64) as requestId
from unnest(ARRAY[
-- List of ICLIDs
'1-200f169d-998e-3cbd-80bd-9c8e999d160f-a77370',
'1-200f169d-99dc-35ad-80ad-95dc999d160f-a77370'
]) id
)
SELECT * -- c.requestId as cli, adspaceId
FROM i19s-insights.insights.trail_click c
JOIN iclids i on c.requestId = i.requestId
WHERE DATE(requestTime) = '2023-10-09'
-- and c.networkId = 'XXX'
-- and advertiserId = 'XXX'
Conversion
Conversions of today
Single list of todays conversions with additional information about advertiser and target. Descended ordering by performance date.
SELECT performedAt, updatedAt, conversionId, adv as advertiser, ctg as target
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
ORDER BY performedAt DESC
Conversions by attribution and rating status
Single list of todays conversions, filtered by attribution
and rating status
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND attributionStatus='ATTRIBUTED' and ratingStatus in ('CONFIRMED','REJECTED')
Conversions by list of conversionIds
Single list of todays conversions, filtered by a list of conversionIds
(separated by comma)
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND conversionId in ('abc123','def456','ghi789')
Touchpoint
Conversions and touchpoint
Single list of todays conversions and touchpoint list
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus, userJourney
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
Conversions and touchpoint object
Single list of todays conversions and single touchpoint object
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus, userJourney[OFFSET(0)] as touchpoint
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND attributionStatus='ATTRIBUTED'
Conversions and touchpoint fields
Single list of todays conversions and single touchpoint fields
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus, userJourney[OFFSET(0)].admediaCode as touchpointAdmediaCode
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND attributionStatus='ATTRIBUTED'
Conversions with total amount, commission from touchpoint
Single list of todays conversions and totals for amount, commission and fee from touchpoint list
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus, currencyCode,
(SELECT AS STRUCT
SUM(rating.revenue) AS amount,
SUM(rating.revenue) - SUM(rating.discount) AS amountDiscounted,
SUM(rating.commission) AS commission,
SUM(rating.fee) as fee
FROM UNNEST(userJourney)
) AS totals
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND attributionStatus='ATTRIBUTED'
Positions
Conversions with position list object
Single list of todays conversions and position list
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus, positions
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
Conversions with total amount, commission and fee
Single list of todays conversions and totals for amount, commission and fee from position list
SELECT performedAt, updatedAt, conversionId, advertiserId, conversionTargetId, ratingStatus, currencyCode,
(
SELECT AS STRUCT
SUM(price) AS price,
SUM(quantity) AS quantity,
SUM(revenue) AS amount,
FROM UNNEST(positions)
WHERE status IN( 'OPEN', 'CONFIRMED','REJECTED')
) as totals,
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND attributionStatus='ATTRIBUTED'
Free parameters
Attributed conversions having pattern 'Madrid' in user value 3
Single list of todays conversions
Selecting
conversionUuiD
from meta objectSelecting
customerId
from processing objectSelecting specific parameters from free parameters
Filtering for specific free parameter
%Madrid%
SELECT
performedAt, eventMeta.id AS conversionUuid, conversionId,
processing.customerId AS customerId,
(select value from unnest(freeParameters) where key ='uv1') AS userValue1,
(select value from unnest(freeParameters) where key ='uv2') AS userValue2,
(select value from unnest(freeParameters) where key ='uv3') AS userValue3,
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND processing.totalWinnerCount > 0
AND (select value from unnest(freeParameters) where key ='uv3') LIKE '%Madrid%'
Untracked
Total number of untracked conversions for a given advertiser
SELECT sum(cnt) count
FROM `i19s-insights.insights.trail_untracked_cnt`
WHERE DATE(requestDate) = current_date()
AND advertiserId = <advertiserId>
AND requestType = 'Conversion'
Number of untracked conversions by reason for a given advertiser
SELECT reason, sum(cnt) count
FROM `i19s-insights.insights.trail_untracked_cnt`
WHERE DATE(requestDate) = current_date()
AND advertiserId = <advertiserId>
AND requestType = 'Conversion'
group by 1
Attribution
Total number of successfully processed conversions for a given advertiser
SELECT sum(count) count
FROM `i19s-insights.insights.insights_conversion_hourly`
WHERE DATE(performanceHour) = current_date()
AND advertiserId = <advertiserId>
Total number of attributed conversions for a given advertiser
SELECT count(*) count
FROM `i19s-insights.insights.insights_conversion`
WHERE DATE(performedAt) = current_date()
AND advertiserId = <advertiserId>
AND processing.totalWinnerCount > 0
Partnerships
Find email addresses of key account managers
WITH
partners AS (
SELECT
partnerId,
label,
CASE keyAccountManagerId
WHEN 'ENTITY_DEFAULT' THEN entity.defaultPartnerKeyaccount
ELSE
keyAccountManagerId
END
AS effKeyAccountManagerId
FROM
`i19s-insights.insights.partnerships_partner`
)
SELECT
p.*,
kam.userId as kamUserId,
kam.email as kamEmail
FROM
partners p
LEFT JOIN
`i19s-insights.insights.access_user` kam
ON
p.effKeyAccountManagerId = kam.userId
Creatives
Get Vouchers
Vouchers table contains the full history of all voucher settings, so that if we need only the current values, a filter is required.
SELECT *
FROM `i19s-insights.insights.creatives_voucher`
WHERE entryType = 'CURRENT_VALUES'
Advanced
Access for Free parameters of User Journey Touchpoints.
Fields on touchpoint level that can be submitted in the tracking tag on advertiser side can now be found in the free parameter list.
SELECT
ic.processing.trackingId requestId,
uj.touchpointid as requestIdOfTheTouchpoint,
uj.touchpointType,
(SELECT value FROM UNNEST(uj.freeParameters) WHERE key = 'gclid' ) AS gclid,
(select value from unnest(uj.freeParameters) where key ='uv1') as userValue1,
(select value from unnest(uj.freeParameters) where key ='uv2') as userValue2,
(select value from unnest(uj.freeParameters) where key ='uv3') as userValue3,
(select value from unnest(uj.freeParameters) where key ='uv4') as userValue4,
(select value from unnest(uj.freeParameters) where key ='smc1') as clickin_subId1,
(select value from unnest(uj.freeParameters) where key ='smc2') as clickin_subId2,
(select value from unnest(uj.freeParameters) where key ='smc3') as clickin_subId3,
(select value from unnest(uj.freeParameters) where key ='smc4') as clickin_subId4,
(select value from unnest(uj.freeParameters) where key ='smc5') as clickin_subId5,
(select value from unnest(uj.freeParameters) where key ='smc6') as clickin_subId6,
(select value from unnest(uj.freeParameters) where key ='sid') as clickin_siteId,
-- check your platform configuration, this key 'pid' is default and can be changed by customer
(select value from unnest(ic.freeParameters) where key ='pid') as clickin_productId,
FROM `i19s-insights.insights.insights_conversion` ic
LEFT JOIN UNNEST(userJourney) uj
WHERE
DATE(ic.performedAt) = current_date()
AND ic.processing.totalWinnerCount > 0 -- if you want to analyse conversions with winner
AND uj.rating is not null -- if you want to take winner touchpoints only
Filtering by free parameters
This query filters user journey for touch points having gclid
SELECT
ic.processing.trackingId requestId,
uj.touchpointid as requestIdOfTheTouchpoint,
uj.touchpointType,
(
SELECT value FROM
UNNEST(uj.freeParameters)
WHERE key = 'gclid'
) AS gclid
FROM `i19s-insights.insights.insights_conversion` ic
LEFT JOIN UNNEST(userJourney) uj
WHERE
DATE(ic.performedAt) = current_date()
AND EXISTS(
SELECT value FROM
UNNEST(uj.freeParameters)
WHERE key = 'gclid'
);
Partner validation
This query calculates the successfull bounce click redirection rate per advertiser /partner / adspace on advertisers working with Ingenious onpage tag
with adv as (
select distinct advertiserId
from i19s-insights.insights.trail_click_cnt
where requestDate = current_date()
and networkId = <networkId>
and ( billingCat != 'trailClickPartnerBounce' or billingCat is null)
and cnt > 0
),
x as (
select
DISTINCT
a.requestId,
a.advertiserId,
a.partnerId,
a.adspaceId,
b.redirectingId as followClick,
FROM i19s-insights.insights.trail_click a
inner join adv c
on a.advertiserId = c.advertiserId
left join i19s-insights.insights.trail_click b
on b.redirectingId = a.requestId and date(b.requestTime) = current_date() and b.networkId=<networkId>
WHERE date(a.requestTime) = current_date()
and a.networkId = <networkId>
and a.mediaTarget is not null
)
select advertiserId, partnerId, adspaceId, count(*) total, count(followClick) as redirected, round(count(followClick)*100/count(*),2) as share
from x
-- where partnerId = <partnerId>
group by 1,2,3
order by total desc