late-sdk 0.0.711 → 0.0.712

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56ae3bd8ba940b4cc2c13e628030af1c05219411a5442ad054ad162efd5df820
4
- data.tar.gz: bb08eec50b5e4eeb46ac5167e7cf01690a417b8fde0d1f7fe7f166259455522d
3
+ metadata.gz: 2e2dede122bdc22380ddb34f95c88d683fb5293de67a7b1f103d172227d3d0a8
4
+ data.tar.gz: 5d62e5125f5b1e31caee6e2ba5d25eea8102e738ffa2e6a3acbd05f831435ac6
5
5
  SHA512:
6
- metadata.gz: d35aa3c5868e43010e6a3442a6f69e0606c636d6268c22f28cb3ff3889dc4cfb451e8d5e34690b5212856ad18ed4a47c992058168aa0045e4cb1ad9505e7237a
7
- data.tar.gz: a28aa965f5dee8dabd0a2160da7a88d04b4b887652da0eac4bf5da2a93b5ba54b685dd5095ef492d4343cfb6d85492f0ac2f30f41e37072b17b181956400ab09
6
+ metadata.gz: 27298a74f36d392ccd5ea40600ab1ddff6d7e61f9fd1c033ae7486b4f0b0e015854fe5bff5972c66b7dbcba5a57f4a532b7068f260d3204dc4e8318c5d4e8388
7
+ data.tar.gz: 35950d25ac955a78cb99a5c4d9c8e6e84ac353043cc01b76740f74b2d73cd1ce86b3982bcc28ca0c4e92c745a4aaf1855a590d1dd880ae995821265321c5a089
@@ -18,16 +18,16 @@
18
18
  | **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying — values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
19
19
  | **purchase_value** | **Float** | Convenience sum of purchase-type action values — picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
20
20
  | **roas** | **Float** | Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
21
- | **video_play_actions** | **Integer** | Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level. | [optional] |
22
- | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`. | [optional] |
23
- | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`. | [optional] |
24
- | **video_p25_watched_actions** | **Integer** | Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`. | [optional] |
25
- | **video_p50_watched_actions** | **Integer** | Views reaching 50% of the video's length. Meta `video_p50_watched_actions`. | [optional] |
26
- | **video_p75_watched_actions** | **Integer** | Views reaching 75% of the video's length. Meta `video_p75_watched_actions`. | [optional] |
27
- | **video_p95_watched_actions** | **Integer** | Views reaching 95% of the video's length. Meta `video_p95_watched_actions`. | [optional] |
28
- | **video_p100_watched_actions** | **Integer** | Views reaching 100% of the video's length. Meta `video_p100_watched_actions`. | [optional] |
29
- | **video_avg_time_watched_actions** | **Float** | Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. | [optional] |
30
- | **cost_per_thruplay** | **Float** | Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays. | [optional] |
21
+ | **video_play_actions** | **Integer** | Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`. | [optional] |
22
+ | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only). | [optional] |
23
+ | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only). | [optional] |
24
+ | **video_p25_watched_actions** | **Integer** | Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`. | [optional] |
25
+ | **video_p50_watched_actions** | **Integer** | Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`. | [optional] |
26
+ | **video_p75_watched_actions** | **Integer** | Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`. | [optional] |
27
+ | **video_p95_watched_actions** | **Integer** | Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only). | [optional] |
28
+ | **video_p100_watched_actions** | **Integer** | Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`. | [optional] |
29
+ | **video_avg_time_watched_actions** | **Float** | Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`. | [optional] |
30
+ | **cost_per_thruplay** | **Float** | Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only). | [optional] |
31
31
  | **funnel** | [**AdFunnelCounts**](AdFunnelCounts.md) | | [optional] |
32
32
  | **engagement_breakdown** | [**AdEngagementCounts**](AdEngagementCounts.md) | | [optional] |
33
33
  | **last_synced_at** | **Time** | Present on individual ads only, not on campaign aggregations | [optional] |
data/docs/AdMetrics.md CHANGED
@@ -18,16 +18,16 @@
18
18
  | **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying — values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
19
19
  | **purchase_value** | **Float** | Convenience sum of purchase-type action values — picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
20
20
  | **roas** | **Float** | Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
21
- | **video_play_actions** | **Integer** | Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level. | [optional] |
22
- | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`. | [optional] |
23
- | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`. | [optional] |
24
- | **video_p25_watched_actions** | **Integer** | Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`. | [optional] |
25
- | **video_p50_watched_actions** | **Integer** | Views reaching 50% of the video's length. Meta `video_p50_watched_actions`. | [optional] |
26
- | **video_p75_watched_actions** | **Integer** | Views reaching 75% of the video's length. Meta `video_p75_watched_actions`. | [optional] |
27
- | **video_p95_watched_actions** | **Integer** | Views reaching 95% of the video's length. Meta `video_p95_watched_actions`. | [optional] |
28
- | **video_p100_watched_actions** | **Integer** | Views reaching 100% of the video's length. Meta `video_p100_watched_actions`. | [optional] |
29
- | **video_avg_time_watched_actions** | **Float** | Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. | [optional] |
30
- | **cost_per_thruplay** | **Float** | Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays. | [optional] |
21
+ | **video_play_actions** | **Integer** | Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`. | [optional] |
22
+ | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only). | [optional] |
23
+ | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only). | [optional] |
24
+ | **video_p25_watched_actions** | **Integer** | Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`. | [optional] |
25
+ | **video_p50_watched_actions** | **Integer** | Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`. | [optional] |
26
+ | **video_p75_watched_actions** | **Integer** | Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`. | [optional] |
27
+ | **video_p95_watched_actions** | **Integer** | Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only). | [optional] |
28
+ | **video_p100_watched_actions** | **Integer** | Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`. | [optional] |
29
+ | **video_avg_time_watched_actions** | **Float** | Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`. | [optional] |
30
+ | **cost_per_thruplay** | **Float** | Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only). | [optional] |
31
31
  | **funnel** | [**AdFunnelCounts**](AdFunnelCounts.md) | | [optional] |
32
32
  | **engagement_breakdown** | [**AdEngagementCounts**](AdEngagementCounts.md) | | [optional] |
33
33
  | **last_synced_at** | **Time** | Present on individual ads only, not on campaign aggregations | [optional] |
@@ -18,16 +18,16 @@
18
18
  | **action_values** | **Hash<String, Float>** | Monetary mirror of `actions`, from Meta's Insights `action_values[]` array. Same keying — values are the revenue attributed to each action_type, in ad-account native currency (same unit as `spend`; see the campaign node's `currency` field). Use this to compute revenue-per-event (e.g. avg purchase value). Meta-only; other platforms return {}. | [optional] |
19
19
  | **purchase_value** | **Float** | Convenience sum of purchase-type action values — picked from `actionValues` via the same priority list as `conversions` so both fields describe the same events. In ad-account native currency. 0 when the campaign has no purchase event configured. Meta-only. | [optional] |
20
20
  | **roas** | **Float** | Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level. | [optional] |
21
- | **video_play_actions** | **Integer** | Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level. | [optional] |
22
- | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`. | [optional] |
23
- | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`. | [optional] |
24
- | **video_p25_watched_actions** | **Integer** | Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`. | [optional] |
25
- | **video_p50_watched_actions** | **Integer** | Views reaching 50% of the video's length. Meta `video_p50_watched_actions`. | [optional] |
26
- | **video_p75_watched_actions** | **Integer** | Views reaching 75% of the video's length. Meta `video_p75_watched_actions`. | [optional] |
27
- | **video_p95_watched_actions** | **Integer** | Views reaching 95% of the video's length. Meta `video_p95_watched_actions`. | [optional] |
28
- | **video_p100_watched_actions** | **Integer** | Views reaching 100% of the video's length. Meta `video_p100_watched_actions`. | [optional] |
29
- | **video_avg_time_watched_actions** | **Float** | Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. | [optional] |
30
- | **cost_per_thruplay** | **Float** | Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays. | [optional] |
21
+ | **video_play_actions** | **Integer** | Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`. | [optional] |
22
+ | **video30_sec_watched_actions** | **Integer** | Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only). | [optional] |
23
+ | **video_thruplay_watched_actions** | **Integer** | ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only). | [optional] |
24
+ | **video_p25_watched_actions** | **Integer** | Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`. | [optional] |
25
+ | **video_p50_watched_actions** | **Integer** | Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`. | [optional] |
26
+ | **video_p75_watched_actions** | **Integer** | Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`. | [optional] |
27
+ | **video_p95_watched_actions** | **Integer** | Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only). | [optional] |
28
+ | **video_p100_watched_actions** | **Integer** | Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`. | [optional] |
29
+ | **video_avg_time_watched_actions** | **Float** | Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`. | [optional] |
30
+ | **cost_per_thruplay** | **Float** | Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only). | [optional] |
31
31
  | **funnel** | [**AdFunnelCounts**](AdFunnelCounts.md) | | [optional] |
32
32
  | **engagement_breakdown** | [**AdEngagementCounts**](AdEngagementCounts.md) | | [optional] |
33
33
  | **last_synced_at** | **Time** | Present on individual ads only, not on campaign aggregations | [optional] |
@@ -54,34 +54,34 @@ module Zernio
54
54
  # Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
55
55
  attr_accessor :roas
56
56
 
57
- # Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level.
57
+ # Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
58
58
  attr_accessor :video_play_actions
59
59
 
60
- # Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`.
60
+ # Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only).
61
61
  attr_accessor :video30_sec_watched_actions
62
62
 
63
- # ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`.
63
+ # ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only).
64
64
  attr_accessor :video_thruplay_watched_actions
65
65
 
66
- # Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`.
66
+ # Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`.
67
67
  attr_accessor :video_p25_watched_actions
68
68
 
69
- # Views reaching 50% of the video's length. Meta `video_p50_watched_actions`.
69
+ # Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`.
70
70
  attr_accessor :video_p50_watched_actions
71
71
 
72
- # Views reaching 75% of the video's length. Meta `video_p75_watched_actions`.
72
+ # Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`.
73
73
  attr_accessor :video_p75_watched_actions
74
74
 
75
- # Views reaching 95% of the video's length. Meta `video_p95_watched_actions`.
75
+ # Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only).
76
76
  attr_accessor :video_p95_watched_actions
77
77
 
78
- # Views reaching 100% of the video's length. Meta `video_p100_watched_actions`.
78
+ # Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`.
79
79
  attr_accessor :video_p100_watched_actions
80
80
 
81
- # Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages.
81
+ # Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`.
82
82
  attr_accessor :video_avg_time_watched_actions
83
83
 
84
- # Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays.
84
+ # Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only).
85
85
  attr_accessor :cost_per_thruplay
86
86
 
87
87
  attr_accessor :funnel
@@ -53,34 +53,34 @@ module Zernio
53
53
  # Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
54
54
  attr_accessor :roas
55
55
 
56
- # Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level.
56
+ # Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
57
57
  attr_accessor :video_play_actions
58
58
 
59
- # Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`.
59
+ # Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only).
60
60
  attr_accessor :video30_sec_watched_actions
61
61
 
62
- # ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`.
62
+ # ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only).
63
63
  attr_accessor :video_thruplay_watched_actions
64
64
 
65
- # Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`.
65
+ # Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`.
66
66
  attr_accessor :video_p25_watched_actions
67
67
 
68
- # Views reaching 50% of the video's length. Meta `video_p50_watched_actions`.
68
+ # Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`.
69
69
  attr_accessor :video_p50_watched_actions
70
70
 
71
- # Views reaching 75% of the video's length. Meta `video_p75_watched_actions`.
71
+ # Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`.
72
72
  attr_accessor :video_p75_watched_actions
73
73
 
74
- # Views reaching 95% of the video's length. Meta `video_p95_watched_actions`.
74
+ # Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only).
75
75
  attr_accessor :video_p95_watched_actions
76
76
 
77
- # Views reaching 100% of the video's length. Meta `video_p100_watched_actions`.
77
+ # Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`.
78
78
  attr_accessor :video_p100_watched_actions
79
79
 
80
- # Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages.
80
+ # Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`.
81
81
  attr_accessor :video_avg_time_watched_actions
82
82
 
83
- # Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays.
83
+ # Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only).
84
84
  attr_accessor :cost_per_thruplay
85
85
 
86
86
  attr_accessor :funnel
@@ -53,34 +53,34 @@ module Zernio
53
53
  # Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level.
54
54
  attr_accessor :roas
55
55
 
56
- # Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level.
56
+ # Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`.
57
57
  attr_accessor :video_play_actions
58
58
 
59
- # Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`.
59
+ # Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only).
60
60
  attr_accessor :video30_sec_watched_actions
61
61
 
62
- # ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`.
62
+ # ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only).
63
63
  attr_accessor :video_thruplay_watched_actions
64
64
 
65
- # Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`.
65
+ # Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`.
66
66
  attr_accessor :video_p25_watched_actions
67
67
 
68
- # Views reaching 50% of the video's length. Meta `video_p50_watched_actions`.
68
+ # Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`.
69
69
  attr_accessor :video_p50_watched_actions
70
70
 
71
- # Views reaching 75% of the video's length. Meta `video_p75_watched_actions`.
71
+ # Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`.
72
72
  attr_accessor :video_p75_watched_actions
73
73
 
74
- # Views reaching 95% of the video's length. Meta `video_p95_watched_actions`.
74
+ # Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only).
75
75
  attr_accessor :video_p95_watched_actions
76
76
 
77
- # Views reaching 100% of the video's length. Meta `video_p100_watched_actions`.
77
+ # Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`.
78
78
  attr_accessor :video_p100_watched_actions
79
79
 
80
- # Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages.
80
+ # Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`.
81
81
  attr_accessor :video_avg_time_watched_actions
82
82
 
83
- # Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays.
83
+ # Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only).
84
84
  attr_accessor :cost_per_thruplay
85
85
 
86
86
  attr_accessor :funnel
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.711'
14
+ VERSION = '0.0.712'
15
15
  end
data/openapi.yaml CHANGED
@@ -6910,20 +6910,20 @@ components:
6910
6910
  description: "Return on ad spend — derived as `purchaseValue / spend`. 0 when `spend` is 0. Equivalent to Meta's `purchase_roas` under default attribution. At ad-set and campaign levels this is recomputed from summed purchaseValue + spend (NOT averaged across children) so it's mathematically correct at every rollup level."
6911
6911
  videoPlayActions:
6912
6912
  type: integer
6913
- description: "Meta video ads only (0 for non-video ads and other platforms), like all video* fields below. Number of times the video started playing (Meta `video_play_actions`), summed over the date range and across children at ad-set/campaign level."
6914
- video30SecWatchedActions: { type: integer, description: "Views of at least 30 seconds (or to the end, for shorter videos). Meta `video_30_sec_watched_actions`." }
6915
- videoThruplayWatchedActions: { type: integer, description: "ThruPlays (watched to completion, or at least 15 seconds). Meta `video_thruplay_watched_actions`." }
6916
- videoP25WatchedActions: { type: integer, description: "Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Meta `video_p25_watched_actions`." }
6917
- videoP50WatchedActions: { type: integer, description: "Views reaching 50% of the video's length. Meta `video_p50_watched_actions`." }
6918
- videoP75WatchedActions: { type: integer, description: "Views reaching 75% of the video's length. Meta `video_p75_watched_actions`." }
6919
- videoP95WatchedActions: { type: integer, description: "Views reaching 95% of the video's length. Meta `video_p95_watched_actions`." }
6920
- videoP100WatchedActions: { type: integer, description: "Views reaching 100% of the video's length. Meta `video_p100_watched_actions`." }
6913
+ description: "Number of times the video started playing, summed over the date range and across children at ad-set/campaign level. 0 for non-video ads. Sources: Meta `video_play_actions`, TikTok `video_play_actions`."
6914
+ video30SecWatchedActions: { type: integer, description: "Views of at least 30 seconds (or to the end, for shorter videos). Sources: Meta `video_30_sec_watched_actions` (Meta only)." }
6915
+ videoThruplayWatchedActions: { type: integer, description: "ThruPlays (watched to completion, or at least 15 seconds). Sources: Meta `video_thruplay_watched_actions` (Meta only)." }
6916
+ videoP25WatchedActions: { type: integer, description: "Views reaching 25% of the video's length. With the other percentile fields, powers hook/hold/drop-off analysis (e.g. hook rate = videoP25WatchedActions / videoPlayActions). Sources: Meta `video_p25_watched_actions`, TikTok `video_views_p25`." }
6917
+ videoP50WatchedActions: { type: integer, description: "Views reaching 50% of the video's length. Sources: Meta `video_p50_watched_actions`, TikTok `video_views_p50`." }
6918
+ videoP75WatchedActions: { type: integer, description: "Views reaching 75% of the video's length. Sources: Meta `video_p75_watched_actions`, TikTok `video_views_p75`." }
6919
+ videoP95WatchedActions: { type: integer, description: "Views reaching 95% of the video's length. Sources: Meta `video_p95_watched_actions` (Meta only)." }
6920
+ videoP100WatchedActions: { type: integer, description: "Views reaching 100% of the video's length. Sources: Meta `video_p100_watched_actions`, TikTok `video_views_p100`." }
6921
6921
  videoAvgTimeWatchedActions:
6922
6922
  type: number
6923
- description: "Average seconds watched per play (Meta `video_avg_time_watched_actions`). Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages."
6923
+ description: "Average seconds watched per play. Aggregated over date ranges and across children as a play-weighted average (total watch time / total plays), never a plain average of averages. Sources: Meta `video_avg_time_watched_actions`, TikTok `average_video_play`."
6924
6924
  costPerThruplay:
6925
6925
  type: number
6926
- description: "Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays."
6926
+ description: "Derived `spend / videoThruplayWatchedActions`, in ad-account native currency. Rounded to 4 decimals rather than the usual 2 because a ThruPlay routinely costs well under a cent. 0 when the ad has no ThruPlays (ThruPlay is Meta-only)."
6927
6927
  funnel:
6928
6928
  $ref: '#/components/schemas/AdFunnelCounts'
6929
6929
  engagementBreakdown:
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.711
4
+ version: 0.0.712
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-10 00:00:00.000000000 Z
11
+ date: 2026-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -5102,7 +5102,7 @@ files:
5102
5102
  - spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
5103
5103
  - spec/models/you_tube_video_retention_response_spec.rb
5104
5104
  - spec/spec_helper.rb
5105
- - zernio-sdk-0.0.711.gem
5105
+ - zernio-sdk-0.0.712.gem
5106
5106
  - zernio-sdk.gemspec
5107
5107
  homepage: https://openapi-generator.tech
5108
5108
  licenses:
Binary file