نمونه پرس و جو در Ads Data Hub

این نمونه کوئری‌ها فرض را بر دانش کاری SQL و BigQuery می‌گذارند. برای کسب اطلاعات بیشتر در مورد SQL به BigQuery مراجعه کنید.

سوالات مربوط به انتقال داده 360 درجه مدیر کمپین

متغیرهای Floodlight را با جداول موقت مطابقت دهید

یک تطابق بین user_id و متغیرهای سفارشی Floodlight در جدول فعالیت ایجاد کنید. سپس می‌توان از این برای اتصال داده‌های شخص ثالث به داده‌های Campaign Manager 360 استفاده کرد.


/* Creating the match temp table. This can be a separate query and the
temporary table will persist for 72 hours. */

CREATE TABLE
  temp_table AS (
  SELECT
    user_id,
    REGEXP_EXTRACT(event.other_data, 'u1=([^;]*)') AS u1_val
  FROM
    adh.cm_dt_activities_attributed
  GROUP BY
    1,
    2 )

/* Matching to Campaign Manager 360 impression data */

SELECT
  imp.event.campaign_id,
  temp.u1_val,
  COUNT(*) AS cnt
FROM
  adh.cm_dt_impressions AS imp
JOIN
  tmp.temp_table AS temp USING (user_id)
GROUP BY
  1,
  2

تحویل برداشت

این مثال برای مدیریت نمایش خوب است و نشان می‌دهد که چگونه می‌توان تعداد نمایش‌هایی را که فراتر از سقف تکرار نمایش داده شده‌اند یا اینکه آیا مشتریان بالقوه خاصی کمتر در معرض تبلیغات قرار گرفته‌اند، پیدا کرد. از این دانش برای بهینه‌سازی سایت‌ها و تاکتیک‌های خود استفاده کنید تا تعداد نمایش‌های مناسب را در مقابل مخاطب انتخاب شده به دست آورید.

/* For this query to run, @advertiser_ids and @campaigns_ids
must be replaced with actual IDs. For example [12345] */

WITH filtered_uniques AS (
  SELECT
    user_id,
    COUNT(event.placement_id) AS frequency
  FROM adh.cm_dt_impressions
  WHERE user_id != '0'
    AND event.advertiser_id IN UNNEST(@advertiser_ids)
    AND event.campaign_id IN UNNEST(@campaign_ids)
    AND event.country_domain_name = 'US'
  GROUP BY user_id
)
SELECT
  frequency,
  COUNT(*) AS uniques
FROM filtered_uniques
GROUP BY frequency
ORDER BY frequency
;

این مثال به شناسایی تاکتیک‌ها و قالب‌های تبلیغاتی که منجر به افزایش یا کاهش تعداد یا فراوانی کوکی‌های منحصر به فرد می‌شوند، کمک می‌کند.

/* For this query to run, @advertiser_ids and @campaigns_ids and @placement_ids
must be replaced with actual IDs. For example [12345] */

SELECT
  COUNT(DISTINCT user_id) AS total_users,
  COUNT(DISTINCT event.site_id) AS total_sites,
  COUNT(DISTINCT device_id_md5) AS total_devices,
  COUNT(event.placement_id) AS impressions
FROM adh.cm_dt_impressions
WHERE user_id != '0'
  AND event.advertiser_id IN UNNEST(@advertiser_ids)
  AND event.campaign_id IN UNNEST(@campaign_ids)
  AND event.placement_id IN UNNEST(@placement_ids)
  AND event.country_domain_name = 'US'
;

همچنین می‌توانید شناسه‌های سایت یا مکان را در عبارت WHERE وارد کنید تا جستجوی خود را محدودتر کنید.

این مثال جدول cm_dt_impressions و جدول فراداده cm_dt_state را به هم متصل می‌کند تا کل تعداد نمایش‌ها، تعداد کوکی‌ها در هر ایالت و میانگین نمایش بر اساس کاربر را که بر اساس ایالت یا استان جغرافیایی آمریکای شمالی گروه‌بندی شده‌اند، نشان دهد.


WITH impression_stats AS (
  SELECT
    event.country_domain_name AS country,
    CONCAT(event.country_domain_name, '-', event.state) AS state,
    COUNT(DISTINCT user_id) AS users,
    COUNT(*) AS impressions
  FROM adh.cm_dt_impressions
  WHERE event.country_domain_name = 'US'
    OR event.country_domain_name = 'CA'
  GROUP BY 1, 2
)
SELECT
  country,
  IFNULL(state_name, state) AS state_name,
  users,
  impressions,
  FORMAT(
    '%0.2f',
    IF(
      IFNULL(impressions, 0) = 0,
      0,
      impressions / users
    )
  ) AS avg_imps_per_user
FROM impression_stats
LEFT JOIN adh.cm_dt_state USING (state)
;

نمایش و ویدیوی ۳۶۰ درجه برای مخاطبان

این مثال نحوه تجزیه و تحلیل مخاطبان Display and Video 360 را نشان می‌دهد. بیاموزید که کدام مخاطبان به نمایش در می‌آیند و تعیین کنید که آیا برخی از مخاطبان عملکرد بهتری نسبت به سایرین دارند یا خیر. این دانش می‌تواند به تعادل تعداد کوکی‌های منحصر به فرد (قرار دادن تبلیغات در مقابل تعداد زیادی از کاربران) و کیفیت (هدف‌گیری محدود و نمایش‌های قابل مشاهده) بسته به اهداف شما کمک کند.

/* For this query to run, @advertiser_ids and @campaigns_ids and @placement_ids
must be replaced with actual IDs. For example [12345] */

WITH filtered_impressions AS (
  SELECT
    event.event_time as date,
    CASE
      WHEN (event.browser_enum IN ('29', '30', '31')
            OR event.os_id IN
              (501012, 501013, 501017, 501018,
               501019, 501020, 501021, 501022,
               501023, 501024, 501025, 501027))
      THEN 'Mobile'
      ELSE 'Desktop'
    END AS device,
    event.dv360_matching_targeted_segments,
    event.active_view_viewable_impressions,
    event.active_view_measurable_impressions,
    user_id
  FROM adh.cm_dt_impressions
  WHERE event.dv360_matching_targeted_segments != ''
    AND event.advertiser_id in UNNEST(@advertiser_ids)
    AND event.campaign_id IN UNNEST(@campaign_ids)
    AND event.dv360_country_code = 'US'
)
SELECT
  audience_id,
  device,
  COUNT(*) AS impressions,
  COUNT(DISTINCT user_id) AS uniques,
  ROUND(COUNT(*) / COUNT(DISTINCT user_id), 1) AS frequency,
  SUM(active_view_viewable_impressions) AS viewable_impressions,
  SUM(active_view_measurable_impressions) AS measurable_impressions
FROM filtered_impressions
JOIN UNNEST(SPLIT(dv360_matching_targeted_segments, ' ')) AS audience_id
GROUP BY 1, 2
;

قابلیت مشاهده

این مثال‌ها نحوه اندازه‌گیری معیارهای مشاهده‌پذیری Active View Plus را نشان می‌دهند.


WITH T AS (
   SELECT cm_dt_impressions.event.impression_id AS Impression,
          cm_dt_impressions.event.active_view_measurable_impressions AS AV_Measurable,
          SUM(cm_dt_active_view_plus.event.active_view_plus_measurable_count) AS AVP_Measurable
     FROM adh.cm_dt_impressions
FULL JOIN adh.cm_dt_active_view_plus
          ON (cm_dt_impressions.event.impression_id =
              cm_dt_active_view_plus.event.impression_id)
    GROUP BY Impression, AV_Measurable
)
SELECT COUNT(Impression), SUM(AV_Measurable), SUM(AVP_Measurable)
  FROM T
;


WITH Raw AS (
  SELECT
    event.ad_id AS Ad_Id,
  SUM(event.active_view_plus_measurable_count) AS avp_total,
  SUM(event.active_view_first_quartile_viewable_impressions) AS avp_1st_quartile,
  SUM(event.active_view_midpoint_viewable_impressions) AS avp_2nd_quartile,
  SUM(event.active_view_third_quartile_viewable_impressions) AS avp_3rd_quartile,
  SUM(event.active_view_complete_viewable_impressions) AS avp_complete
  FROM
    adh.cm_dt_active_view_plus
  GROUP BY
    1
)

SELECT
  Ad_Id,
  avp_1st_quartile / avp_total AS Viewable_Rate_1st_Quartile,
  avp_2nd_quartile / avp_total AS Viewable_Rate_2nd_Quartile,
    avp_3rd_quartile / avp_total AS Viewable_Rate_3rd_Quartile,
    avp_complete / avp_total AS Viewable_Rate_Completion_Quartile
FROM
  Raw
WHERE
  avp_total > 0
ORDER BY
  Viewable_Rate_1st_Quartile DESC
;

داده‌های پویا در انتقال داده‌ی Campaign Manager 360

تعداد نمایش‌ها به ازای هر پروفایل و فید پویا

SELECT
  event.dynamic_profile,
  feed_name,
  COUNT(*) as impressions
FROM adh.cm_dt_impressions
JOIN UNNEST (event.feed) as feed_name
GROUP BY 1, 2;

تعداد نمایش‌ها به ازای هر برچسب گزارش‌دهی پویا در فید ۱

SELECT
  event.feed_reporting_label[SAFE_ORDINAL(1)] feed1_reporting_label,,
  COUNT(*) as impressions
FROM adh.cm_dt_impressions
WHERE event.feed_reporting_label[SAFE_ORDINAL(1)] <> “” # where you have at least one reporting label set
GROUP BY 1;

تعداد نمایش‌هایی که در فید ۲، برچسب گزارش‌دهی = «قرمز» است

SELECT
  event.feed_reporting_label[SAFE_ORDINAL(2)] AS feed1_reporting_label,
  COUNT(*) as impressions
FROM adh.cm_dt_impressions
WHERE event.feed_reporting_label[SAFE_ORDINAL(2)] = red
GROUP BY 1;

تعداد نمایش‌هایی که در آن‌ها dimension_1 = 'red' و dimension_2 = 'car' در فید ۱ گزارش شده است

SELECT
  event.feed_reporting_label[SAFE_ORDINAL(1)] AS feed1_reporting_label,
  event.feed_reporting_dimension1[SAFE_ORDINAL(1)] AS feed1_reporting_dimension1,
  event.feed_reporting_dimension2[SAFE_ORDINAL(1)] AS feed2_reporting_dimension1,
  event.feed_reporting_dimension3[SAFE_ORDINAL(1)] AS feed3_reporting_dimension1,
  event.feed_reporting_dimension4[SAFE_ORDINAL(1)] AS feed4_reporting_dimension1,
  event.feed_reporting_dimension5[SAFE_ORDINAL(1)] AS feed5_reporting_dimension1,
  event.feed_reporting_dimension6[SAFE_ORDINAL(1)] AS feed6_reporting_dimension1,
  COUNT(*) as impressions
FROM adh.cm_dt_impressions
WHERE event.feed_reporting_dimension1[SAFE_ORDINAL(1)] = red
AND event.feed_reporting_dimension2[SAFE_ORDINAL(1)] = car
GROUP BY 1,2,3,4,5,6,7;

قالب‌های تبلیغاتی در Campaign Manager 360 Data Transfer

این مثال‌ها نشان می‌دهند که چگونه می‌توان تعیین کرد کدام قالب‌های تبلیغاتی، تعداد کوکی‌های منحصر به فرد یا فراوانی نمایش را به حداکثر می‌رسانند. از این دانش برای ایجاد تعادل بین تعداد کل کوکی‌های منحصر به فرد و میزان نمایش تبلیغات توسط کاربر استفاده کنید.

تحویل برداشت

/* For this query to run, @advertiser_ids and @campaigns_ids
must be replaced with actual IDs. For example [12345]. YOUR_BQ_DATASET must be
replaced with the actual name of your dataset.*/

WITH filtered_uniques AS (
  SELECT
    user_id,
    CASE
      WHEN creative_type LIKE '%Video%' THEN 'Video'
      WHEN creative_type IS NULL THEN 'Unknown'
      ELSE 'Display'
    END AS creative_format,
    COUNT(*) AS impressions
  FROM adh.cm_dt_impressions impression
  LEFT JOIN YOUR_BQ_DATASET.campaigns creative
    ON creative.rendering_id = impression.event.rendering_id
  WHERE user_id != '0'
    AND event.advertiser_id IN UNNEST(@advertiser_ids)
    AND event.campaign_id IN UNNEST(@campaign_ids)
    AND event.country_domain_name = 'US'
  GROUP BY user_id, creative_format
)
SELECT
  impressions AS frequency,
  creative_format,
  COUNT(DISTINCT user_id) AS uniques,
  SUM(impressions) AS impressions
FROM filtered_uniques
GROUP BY frequency, creative_format
ORDER BY frequency
;

/* For this query to run, @advertiser_ids and @campaigns_ids
must be replaced with actual IDs. For example [12345]. YOUR_BQ_DATASET must be
replaced with the actual name of your dataset. */

WITH filtered_impressions AS (
  SELECT
    event.campaign_id AS campaign_id,
    event.rendering_id AS rendering_id,
    user_id
  FROM adh.cm_dt_impressions
  WHERE user_id != '0'
    AND event.advertiser_id IN UNNEST(@advertiser_ids)
    AND event.campaign_id IN UNNEST(@campaign_ids)
    AND event.country_domain_name = 'US'
)
SELECT
  Campaign,
  CASE
    WHEN creative_type LIKE '%Video%' THEN 'Video'
    WHEN creative_type IS NULL THEN 'Unknown'
    ELSE 'Display'
  END AS creative_format,
  COUNT(DISTINCT user_id) AS users,
  COUNT(*) AS impressions
FROM filtered_impressions
LEFT JOIN YOUR_BQ_DATASET.campaigns USING (campaign_id)
LEFT JOIN YOUR_BQ_DATASET.creatives USING (rendering_id)
GROUP BY 1, 2
;

نمایش‌های اپلیکیشن موبایل با جداول _rdid

پرس و جو ۱:


SELECT
  campaign_id,
  COUNT(*) AS imp,
  COUNT(DISTINCT user_id) AS users
FROM adh.google_ads_impressions
WHERE is_app_traffic
GROUP BY 1
;

پرس و جو ۲:


SELECT
  campaign_id,
  COUNT(DISTINCT device_id_md5) AS device_ids
FROM adh.google_ads_impressions_rdid
GROUP BY 1
;

نتایج را می‌توان با استفاده از campaign_id به هم متصل کرد.

توزیع جمعیتی

این مثال نشان می‌دهد که چگونه می‌توان تعیین کرد کدام کمپین‌ها به یک جمعیت خاص دسترسی دارند.

/* For this query to run, @customer_id
must be replaced with an actual ID. For example [12345] */

WITH impression_stats AS (
  SELECT
    campaign_id,
    demographics.gender AS gender_id,
    demographics.age_group AS age_group_id,
    COUNT(DISTINCT user_id) AS users,
    COUNT(*) AS impressions
  FROM adh.google_ads_impressions
  WHERE customer_id = @customer_id
  GROUP BY 1, 2, 3
)
SELECT
  campaign_name,
  gender_name,
  age_group_name,
  users,
  impressions
FROM impression_stats
LEFT JOIN adh.google_ads_campaign USING (campaign_id)
LEFT JOIN adh.gender USING (gender_id)
LEFT JOIN adh.age_group USING (age_group_id)
ORDER BY 1, 2, 3
;

قابلیت مشاهده

برای مرور کلی قابلیت مشاهده با نمونه‌های پرس‌وجو، به معیارهای پیشرفته مشاهده فعال مراجعه کنید.

SELECT
  customer_id,
  customer_timezone,
  count(1) as impressions
FROM adh.google_ads_impressions i
  INNER JOIN adh.google_ads_customer c
    ON c.customer_id = i.customer_id
WHERE TIMESTAMP_MICROS(i.query_id.time_usec) >= CAST(DATETIME(@date, c.customer_timezone) AS TIMESTAMP)
AND TIMESTAMP_MICROS(i.query_id.time_usec) < CAST(DATETIME_ADD(DATETIME(@date, c.customer_timezone), INTERVAL 1 DAY) AS TIMESTAMP)
GROUP BY customer_id, customer_timezone

نوع موجودی

این نمونه کوئری مفهوم نوع موجودی را نشان می‌دهد. می‌توانید از فیلد inventory_type برای تعیین اینکه تبلیغات شما روی کدام موجودی نمایش داده می‌شود، مانند Gmail یا YouTube Music، استفاده کنید. مقادیر ممکن: YOUTUBE ، YOUTUBE_TV ، YOUTUBE_MUSIC ، SEARCH ، GMAIL ، GOOGLE_TV ، OTHER . Other به شبکه نمایش یا ویدیوی گوگل اشاره دارد.

SELECT
 i.campaign_id,
 cmp.campaign_name,
 i.inventory_type,
 COUNT(i.query_id.time_usec) AS impressions
FROM adh.google_ads_impressions i
LEFT JOIN adh.google_ads_campaign cmp ON (i.campaign_id = cmp.campaign_id)
WHERE
 TIMESTAMP_MICROS(i.query_id.time_usec)
  BETWEEN @local_start_date
  AND TIMESTAMP_ADD(@local_start_date,INTERVAL @number_days*24 HOUR)
GROUP BY 1, 2, 3
ORDER BY 4 DESC

کار با مدل‌های انتساب

مرکز داده‌های تبلیغات گوگل (Ads Data Hub) از هر دو مدل انتساب مبتنی بر داده (DDA) و انتساب آخرین کلیک (LCA) در جداول تبدیلات گوگل ادز پشتیبانی می‌کند. قبل از ۱۹ سپتامبر ۲۰۲۳، فقط LCA پشتیبانی می‌شد. مثال‌های زیر به شما نشان می‌دهند که چگونه تبدیل‌هایی را که از هر دو مدل استفاده می‌کنند، پیدا کنید و چگونه از جدول فراداده تنظیمات تبدیل استفاده کنید.

تبدیل‌های انتسابی مبتنی بر داده را پیدا کنید

این مثال تبدیل‌هایی را پیدا می‌کند که از مدل DDA استفاده می‌کنند:

SELECT
  s.name
  SUM(conv.num_conversion_micros)/1000000 AS num_convs
FROM adh.google_ads_conversions AS conv
JOIN adh.google_ads_conversion_settings AS s
  ON (conv.conversion_type = s.conversion_type_id)
WHERE s.action_optimization = 'Primary'
    AND s.attribution_model = 'DATA_DRIVEN'
GROUP BY 1;

تبدیل‌های انتساب آخرین کلیک را پیدا کنید

برای حفظ رفتار قدیمی، یک عبارت WHERE به کوئری‌های خود اضافه کنید تا نتایج تبدیل انتساب آخرین کلیک خود را فیلتر کنید:

SELECT COUNT(*)
FROM adh.google_ads_conversions
WHERE conversion_type = 123
  AND conversion_attribution_model_type = 'LAST_CLICK';

از جدول فراداده برای فیلتر کردن بر اساس نام تبدیل استفاده کنید

جدول فراداده تنظیمات تبدیل به شما امکان می‌دهد به جای اعداد، بر اساس نام‌های معنادار فیلتر کنید.

برای مثال، به جای فیلتر کردن تبدیل‌ها بر اساس conversion_type :

SELECT COUNT(*)
FROM adh.google_ads_conversions
WHERE conversion_type = 291496508;

از یک عبارت JOIN برای فیلتر کردن با استفاده از فیلدهای موجود در جدول فراداده تنظیمات تبدیل استفاده کنید:

SELECT SUM(num_conversion_micros)/1000000 AS num_convs
FROM adh.google_ads_conversions AS conv
JOIN adh.google_ads_conversion_settings AS s
     ON (conv.conversion_type = s.conversion_type_id)
WHERE s.name = 'LTH Android Order';
SELECT s.name, SUM(conv.num_conversion_micros)/1000000 AS num_convs
FROM adh.google_ads_conversions AS conv
JOIN adh.google_ads_conversion_settings AS s
     ON (conv.conversion_type = s.conversion_type_id)
WHERE s.conversion_category = 'PURCHASE'
  AND s.action_optimization = 'Primary'
GROUP BY 1;

سوالات مربوط به غلاف تبلیغات یوتیوب

پادهای تبلیغاتی، در طول مدت تماشای طولانی‌تر ویدیو در یوتیوب، دو تبلیغ را در یک پیام تبلیغاتی واحد گروه‌بندی می‌کنند. (مثل پیام بازرگانی، اما محدود به دو تبلیغ.) تبلیغاتی که در پادهای تبلیغاتی نمایش داده می‌شوند، قابل رد شدن هستند. با این حال، اگر کاربری تبلیغ اول را رد کند، تبلیغ دوم نیز رد می‌شود.

SELECT
 cmp.campaign_name,
 imp.is_app_traffic,
 COUNT(*) AS total_impressions,
 COUNTIF(clk.click_id IS NOT NULL) AS total_trueview_views
FROM adh.google_ads_impressions imp
JOIN adh.google_ads_campaign cmp USING (campaign_id)
JOIN adh.google_ads_adgroup adg USING (adgroup_id)
LEFT JOIN adh.google_ads_creative_conversions clk ON
  imp.impression_id = clk.impression_id
WHERE
 imp.customer_id IN UNNEST(@customer_ids)
 AND adg.adgroup_type = 'VIDEO_TRUE_VIEW_IN_STREAM'
 AND cmp.advertising_channel_type = 'VIDEO'
GROUP BY 1, 2

معیارهای قابلیت مشاهده نمایشگر و ویدیوی ۳۶۰ درجه بر اساس آیتم‌های خطی

WITH
 imp_stats AS (
   SELECT
     imp.line_item_id,
     count(*) as total_imp,
     SUM(num_active_view_measurable_impression) AS num_measurable_impressions,
     SUM(num_active_view_eligible_impression) AS num_enabled_impressions
   FROM adh.dv360_youtube_impressions imp
   WHERE
     imp.line_item_id IN UNNEST(@line_item_ids)
   GROUP BY 1
 ),
 av_stats AS (
   SELECT
     imp.line_item_id,
     SUM(num_active_view_viewable_impression) AS num_viewable_impressions
   FROM adh.dv360_youtube_impressions imp
   LEFT JOIN
     adh.dv360_youtube_active_views av
     ON imp.impression_id = av.impression_id
   WHERE
     imp.line_item_id IN UNNEST(@line_item_ids)
   GROUP BY 1
 )
SELECT
 li.line_item_name,
 SUM(imp.total_imp) as num_impressions,
 SUM(imp.num_measurable_impressions) AS num_measurable_impressions,
 SUM(imp.num_enabled_impressions) AS num_enabled_impressions,
 SUM(IFNULL(av.num_viewable_impressions, 0)) AS num_viewable_impressions
FROM imp_stats as imp
LEFT JOIN av_stats AS av USING (line_item_id)
JOIN adh.dv360_youtube_lineitem li ON (imp.line_item_id = li.line_item_id)
GROUP BY 1

درخواست‌های رزرو یوتیوب

ارائه نمایش توسط تبلیغ‌کننده

این پرس‌وجو تعداد نمایش‌ها و کاربران متمایز به ازای هر تبلیغ‌کننده را اندازه‌گیری می‌کند. می‌توانید از این اعداد برای محاسبه میانگین تعداد نمایش‌ها به ازای هر کاربر (یا «فراوانی تبلیغ») استفاده کنید.

SELECT
  advertiser_name,
  COUNT(*) AS imp,
  COUNT(DISTINCT user_id) AS users
FROM adh.yt_reserve_impressions AS impressions
JOIN adh.yt_reserve_order order ON impressions.order_id = order.order_id
GROUP BY 1
;

رد شدن تبلیغات

این کوئری تعداد رد شدن تبلیغات را به ازای هر مشتری، کمپین، گروه تبلیغاتی و تبلیغ خلاقانه اندازه‌گیری می‌کند.

SELECT
  impression_data.customer_id,
  impression_data.campaign_id,
  impression_data.adgroup_id,
  impression_data.ad_group_creative_id,
  COUNTIF(label = "videoskipped") AS num_skips
FROM
  adh.google_ads_conversions
GROUP BY 1, 2, 3, 4;

سوالات عمومی

تفریق یک گروه از کاربران از گروه دیگر

این مثال نشان می‌دهد که چگونه می‌توان یک گروه از کاربران را از گروه دیگر کم کرد. این تکنیک طیف گسترده‌ای از کاربردها را دارد، از جمله شمارش کاربرانی که تبدیل‌کننده نیستند، کاربرانی که هیچ بازدید قابل مشاهده‌ای ندارند و کاربرانی که هیچ کلیکی نمی‌کنند.

WITH exclude AS (
  SELECT DISTINCT user_id
  FROM adh.google_ads_impressions
  WHERE campaign_id = 123
)

SELECT
  COUNT(DISTINCT imp.user_id) -
      COUNT(DISTINCT exclude.user_id) AS users
FROM adh.google_ads_impressions imp
LEFT JOIN exclude
  USING (user_id)
WHERE imp.campaign_id = 876
;

همپوشانی سفارشی

این پرس‌وجو همپوشانی دو یا چند کمپین را اندازه‌گیری می‌کند. می‌توان آن را برای اندازه‌گیری همپوشانی بر اساس معیارهای اختیاری سفارشی‌سازی کرد.

/* For this query to run, @campaign_1 and @campaign_2 must be replaced with
actual campaign IDs. */

WITH flagged_impressions AS (
SELECT
  user_ID,
  SUM(IF(campaign_ID in UNNEST(@campaign_1), 1, 0)) AS C1_impressions,
  SUM(IF(campaign_ID in UNNEST(@campaign_2), 1, 0)) AS C2_impressions
FROM adh.cm_dt_impressions
GROUP BY user_ID

SELECT COUNTIF(C1_impressions > 0) as C1_cookie_count,
 COUNTIF(C2_impressions > 0) as C2_cookie_count,
 COUNTIF(C1_impressions > 0 and C2_impressions > 0) as overlap_cookie_count
FROM flagged_impressions
;

فروش شریک - فروش متقابل

این پرس و جو، تعداد نمایش‌ها و کلیک‌های مربوط به موجودی فروخته شده توسط شرکا را اندازه‌گیری می‌کند.

SELECT
  a.record_date AS record_date,
  a.line_item_id AS line_item_id,
  a.creative_id AS creative_id,
  a.ad_id AS ad_id,
  a.impressions AS impressions,
  a.click_through AS click_through,
  a.video_skipped AS video_skipped,
  b.pixel_url AS pixel_url
FROM
  (
    SELECT
      FORMAT_TIMESTAMP('%D', TIMESTAMP_MICROS(i.query_id.time_usec), 'Etc/UTC') AS record_date,
      i.line_item_id as line_item_id,
      i.creative_id as creative_id,
      i.ad_id as ad_id,
      COUNT(i.query_id) as impressions,
      COUNTIF(c.label='video_click_to_advertiser_site') AS click_through,
      COUNTIF(c.label='videoskipped') AS video_skipped
    FROM
      adh.partner_sold_cross_sell_impressions AS i
      LEFT JOIN adh.partner_sold_cross_sell_creative_conversions AS c
        ON i.impression_id = c.impression_id
    GROUP BY
      1, 2, 3, 4
    ) AS a
    JOIN adh.partner_sold_cross_sell_creative_pixels AS b
      ON (a.ad_id = b.ad_id)
;

نمایش در اپ استور

کوئری زیر تعداد کل نمایش‌ها (impressions) را که بر اساس فروشگاه اپلیکیشن و اپلیکیشن گروه‌بندی شده‌اند، شمارش می‌کند.

SELECT app_store_name, app_name, COUNT(*) AS number
FROM adh.google_ads_impressions AS imp
JOIN adh.mobile_app_info
USING (app_store_id, app_id)
WHERE imp.app_id IS NOT NULL
GROUP BY 1,2
ORDER BY 3 DESC