요약: 데이터 락커(정기 및 고급 집계)를 통해 Cost ETL 리포트와 코호트 리포트를 결합하여 최고의 최신성, 정확성, 세분화로 마케팅 캠페인의 전체 상황을 파악할 수 있습니다.
Cost ETL 리포트와 코호트 리포트의 결합 정보
데이터 락커를 통해 생성된 Cost ETL 리포트와 코호트 리포트(일반 및 고급 집계)는 각각 고유한 특성을 가지고 있습니다. 예를 들어, Cost ETL 리포트에는 노출, 클릭 및 비용 데이터가 포함되는 반면, 코호트 리포트에는 자세한 어트리뷰션, 인앱 이벤트 및 수익 데이터가 포함됩니다.
가장 좋은 방법은 Cost ETL 리프트와 집계된 코호트 리포트가 수신되어 BI 시스템에 로드되면 내부 BI에 결합하도록 하는 것입니다.
두 리포트를 결합하면 다음과 같은 이점이 있습니다.
- 최고의 최신성, 정확성, 세분화와 함께, 마케팅 성과를 전체적으로 보여줍니다.
- 내부 BI를 앱스플라이어 대시보드에 표시되는 데이터와 일치시킵니다.
- 광고 지출 대비 수익률(ROAS) 및 전환당 비용(CPA)과 같은 중요한 지표를 계산할 수 있습니다.
리포트를 결합하는 쿼리
이후에 이어지는 섹션에서는 Cost ETL 리포트를 다음과 결합할 때의 쿼리와 고려 사항을 제시합니다.
Cost ETL 리포트와 고급 집계 코호트 리포트를 결합하는 쿼리
Cost ETL 리포트와 코호트 리포트를 결합하려면 BI 개발자는 다음을 수행해야 합니다.
- 다음 쿼리를 가이드로 삼아 내부 BI에 맞게 사용자 지정합니다.
-
중요 고려 사항:
- 쿼리 조정:
- 시작 날짜와 종료 날짜를 사용자 지정합니다.
- 리포트 이름을 사용자 지정합니다.
- 특정 Cost ETL 스키마에서 측정항목과 지표를 선택합니다.
- 리포트의 최신성에 차이가 있습니다. 예를 들어, Cost ETL은 하루에 최대 4회 업데이트되고 고급 집계 코호트 리포트는 하루에 여러 번 업데이트됩니다.
- 고급 집계 코호트 리포트에는 지난 1,095일 동안 전환된 사용자가 포함됩니다. 그 이전에 전환한 경우는 고려 대상이 아닙니다.
- Cost ETL 리포트에서는 앱스플라이어에 저장된 데이터의 시간대를 사용합니다. 고급 집계 코호트 리포트에는 버전이 지정된 (UTC) 리포트와 버전이 지정된 시간대 리포트가 포함됩니다. 모범 사례: Cost ETL 리포트와 코호트 시간대 버전 지정 리포트를 결합합니다.
- 쿼리 조정:
쿼리
select ag.app_id,
ag.days_post_attribution,
ag.conversion_date,
ag.event_date,
ag.event_name,
ag.media_source,
ag.campaign,
ag.campaign_id,
ag.adset,
ag.adset_id,
ag.ad,
ag.ad_id,
ag.channel,
ag.site_id,
ag.keywords,
ag.geo,
ag.agency,
ag.selected_currency as revenue_currency,
ag.timezone as cohort_timezone,
cst.timezone as cost_timezone,
cst.os,
cst.ad_account,
cst.currency as cost_currency,
cst.original_currency as cost_original_currency,
cost,
original_cost,
impressions as impressions,
clicks,
reported_impressions,
reported_clicks,
reported_conversions,
ctr,
cvr,
ecpm,
cpi,
ccvr,
cvvr,
reported_cvr,
install_diff,
click_diff,
impression_diff,
ecpc,
video_25p_views,
video_50p_views,
video_75p_views,
video_completions,
campaign_objective,
cost_model,
af_cost_model,
bid_strategy,
af_bid_strategy,
bid_amount,
original_bid_amount,
SUM(cast(ag.revenue_selected_currency as double)) as revenue_selected_currency,
SUM(cast(ag.revenue_usd as double)) as revenue_usd,
SUM(cast(ag.unique_users as int)) as unique_users,
SUM(cast(ag.first_inapps as int)) as first_inapps,
SUM(cast(ag.event_count as int)) as event_count,
coalesce(SUM(cast(case when ag.event_name = 'af_conversion' and ag.conversion_type = 'install' then ag.event_count end as int)),0) as installs,
coalesce(SUM(cast(case when ag.event_name = 'af_conversion' and ag.conversion_type = 're-engagement' then ag.event_count end as int)),0) as re_engagements,
coalesce(SUM(cast(case when ag.event_name = 'af_conversion' and ag.conversion_type = 're-attribution' then ag.event_count end as int)),0) as re_attribution
FROM {YOUR_ADVANCED_AGG_REPORT} as ag
LEFT JOIN {YOUR_COST_ETL_REPORT} as cst
ON ag.event_name = 'af_conversion'
and ag.conversion_date = cst.date
and ag.app_id = cst.app_id
and ag.media_source = cst.media_source
and ag.campaign = cst.campaign
and ag.campaign_id = cst.campaign_id
and ag.adset = cst.adset
and ag.adset_id = cst.adset_id
and ag.ad = cst.ad
and ag.ad_id = cst.ad_id
and ag.channel = cst.channel
and ag.site_id = cst.site_id
and ag.keywords = cst.keywords
and ag.geo = cst.geo
and ag.agency = cst.agency
WHERE ag.conversion_date between {start date} and {end date}
and cst.date between {start date} and {end date}
GROUP BY ALL;
Cost ETL 리포트와 코호트 리포트를 결합하는 쿼리
Cost ETL 리포트와 코호트 리포트를 결합하려면 BI 개발자는 다음을 수행해야 합니다.
- 다음 쿼리를 가이드로 삼아 내부 BI에 맞게 사용자 지정합니다.
-
중요 고려 사항:
- 쿼리 조정:
- 시작 날짜와 종료 날짜를 사용자 지정합니다.
- 리포트 이름을 사용자 지정합니다.
- 특정 Cost ETL 스키마에서 측정항목과 지표를 선택합니다.
- 리포트의 최신성에 차이가 있습니다. 예를 들어, Cost ETL은 하루에 최대 4번 업데이트되고 데이터 락커를 통한 코호트 리포트는 하루에 한 번 업데이트됩니다.
- Cost ETL 리포트에서는 앱스플라이어에 저장된 데이터의 시간대를 사용합니다. 데이터 락커를 통한 코호트 리포트는 UTC를 사용합니다.
- 쿼리 조정:
쿼리
select dl.app_id,
dl.days_post_attribution,
dl.conversion_date,
dl.event_date,
dl.event_name,
dl.media_source,
dl.campaign,
dl.campaign_id,
dl.adset,
dl.adset_id,
dl.ad,
dl.ad_id,
dl.channel,
dl.site_id,
dl.keywords,
dl.geo,
dl.agency,
dl.selected_currency as revenue_currency,
cst.timezone as cost_timezone,
cst.os,
cst.ad_account,
cst.currency as cost_currency,
cst.original_currency as cost_original_currency,
cost,
original_cost,
impressions as impressions,
clicks,
reported_impressions,
reported_clicks,
reported_conversions,
ctr,
cvr,
ecpm,
cpi,
ccvr,
cvvr,
reported_cvr,
install_diff,
click_diff,
impression_diff,
ecpc,
video_25p_views,
video_50p_views,
video_75p_views,
video_completions,
campaign_objective,
cost_model,
af_cost_model,
bid_strategy,
af_bid_strategy,
bid_amount,
original_bid_amount,
SUM(cast(dl.revenue_selected_currency as double)) as revenue_selected_currency,
SUM(cast(dl.revenue_usd as double)) as revenue_usd,
SUM(cast(dl.unique_users as int)) as unique_users,
SUM(cast(dl.event_count as int)) as event_count,
coalesce(SUM(cast(case when dl.event_name = 'af_conversion' and dl.conversion_type = 'install' then dl.event_count end as int)),0) as installs,
coalesce(SUM(cast(case when dl.event_name = 'af_conversion' and dl.conversion_type = 're-engagement' then dl.event_count end as int)),0) as re_engagements,
coalesce(SUM(cast(case when dl.event_name = 'af_conversion' and dl.conversion_type = 're-attribution' then dl.event_count end as int)),0) as re_attribution
FROM {YOUR_DATA_LOCKER_REPORT} as dl
LEFT JOIN {YOUR_COST_ETL_REPORT} as cst
ON dl.event_name = 'af_conversion'
and dl.conversion_date = cst.date
and dl.app_id = cst.app_id
and dl.media_source = cst.media_source
and dl.campaign = cst.campaign
and dl.campaign_id = cst.campaign_id
and dl.adset = cst.adset
and dl.adset_id = cst.adset_id
and dl.ad = cst.ad
and dl.ad_id = cst.ad_id
and dl.channel = cst.channel
and dl.site_id = cst.site_id
and dl.keywords = cst.keywords
and dl.geo = cst.geo
and dl.agency = cst.agency
WHERE dl.conversion_date between {start date} and {end date}
and cst.date between {start date} and {end date}
GROUP BY ALL;