late-sdk 0.0.714 → 0.0.716
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 +4 -4
- data/README.md +15 -10
- data/docs/AdAnalyticsResponse.md +22 -0
- data/docs/{GetAdAnalytics200ResponseAd.md → AdAnalyticsResponseAd.md} +2 -4
- data/docs/AdCampaignsApi.md +12 -12
- data/docs/AdDailyMetrics.md +14 -0
- data/docs/AdEngagementCounts.md +1 -1
- data/docs/AdInsightsApi.md +8 -8
- data/docs/AdMetrics.md +14 -0
- data/docs/AdTreeResponse.md +22 -0
- data/docs/AdsListResponse.md +22 -0
- data/docs/AdsTimelineResponse.md +20 -0
- data/docs/{GetAdsTimeline200ResponseRowsInner.md → AdsTimelineResponseRowsInner.md} +2 -2
- data/docs/CampaignAnalyticsResponse.md +22 -0
- data/docs/{GetCampaignAnalytics200ResponseAnalytics.md → CampaignAnalyticsResponseAnalytics.md} +3 -3
- data/docs/{GetCampaignAnalytics200ResponseAnalyticsDailyInner.md → CampaignAnalyticsResponseAnalyticsDailyInner.md} +16 -2
- data/docs/{GetCampaignAnalytics200ResponseCampaign.md → CampaignAnalyticsResponseCampaign.md} +2 -2
- data/docs/GetAdAnalytics202Response.md +22 -0
- data/docs/GetAdTree202Response.md +22 -0
- data/docs/GetAdsTimeline202Response.md +20 -0
- data/docs/GetCampaignAnalytics202Response.md +22 -0
- data/docs/ListAds202Response.md +22 -0
- data/lib/zernio-sdk/api/ad_campaigns_api.rb +9 -9
- data/lib/zernio-sdk/api/ad_insights_api.rb +6 -6
- data/lib/zernio-sdk/models/{get_ad_analytics200_response.rb → ad_analytics_response.rb} +15 -15
- data/lib/zernio-sdk/models/{get_ad_analytics200_response_ad.rb → ad_analytics_response_ad.rb} +4 -47
- data/lib/zernio-sdk/models/ad_daily_metrics.rb +73 -1
- data/lib/zernio-sdk/models/ad_engagement_counts.rb +1 -1
- data/lib/zernio-sdk/models/ad_metrics.rb +73 -1
- data/lib/zernio-sdk/models/{get_ad_tree200_response.rb → ad_tree_response.rb} +17 -17
- data/lib/zernio-sdk/models/{list_ads200_response.rb → ads_list_response.rb} +17 -17
- data/lib/zernio-sdk/models/{get_ads_timeline200_response.rb → ads_timeline_response.rb} +17 -17
- data/lib/zernio-sdk/models/{get_ads_timeline200_response_rows_inner.rb → ads_timeline_response_rows_inner.rb} +3 -3
- data/lib/zernio-sdk/models/{get_campaign_analytics200_response.rb → campaign_analytics_response.rb} +15 -15
- data/lib/zernio-sdk/models/{get_campaign_analytics200_response_analytics.rb → campaign_analytics_response_analytics.rb} +4 -4
- data/lib/zernio-sdk/models/{get_campaign_analytics200_response_analytics_daily_inner.rb → campaign_analytics_response_analytics_daily_inner.rb} +76 -4
- data/lib/zernio-sdk/models/{get_campaign_analytics200_response_campaign.rb → campaign_analytics_response_campaign.rb} +3 -3
- data/lib/zernio-sdk/models/get_ad_analytics202_response.rb +213 -0
- data/lib/zernio-sdk/models/get_ad_tree202_response.rb +215 -0
- data/lib/zernio-sdk/models/get_ads_timeline202_response.rb +206 -0
- data/lib/zernio-sdk/models/get_campaign_analytics202_response.rb +213 -0
- data/lib/zernio-sdk/models/list_ads202_response.rb +215 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +15 -10
- data/openapi.yaml +205 -123
- data/spec/api/ad_campaigns_api_spec.rb +3 -3
- data/spec/api/ad_insights_api_spec.rb +2 -2
- data/spec/models/{get_campaign_analytics200_response_campaign_spec.rb → ad_analytics_response_ad_spec.rb} +6 -6
- data/spec/models/{get_ad_analytics200_response_spec.rb → ad_analytics_response_spec.rb} +8 -8
- data/spec/models/ad_daily_metrics_spec.rb +42 -0
- data/spec/models/ad_metrics_spec.rb +42 -0
- data/spec/models/{get_ad_tree200_response_spec.rb → ad_tree_response_spec.rb} +8 -8
- data/spec/models/{list_ads200_response_spec.rb → ads_list_response_spec.rb} +8 -8
- data/spec/models/{get_ads_timeline200_response_rows_inner_spec.rb → ads_timeline_response_rows_inner_spec.rb} +6 -6
- data/spec/models/{get_ads_timeline200_response_spec.rb → ads_timeline_response_spec.rb} +8 -8
- data/spec/models/{get_campaign_analytics200_response_analytics_daily_inner_spec.rb → campaign_analytics_response_analytics_daily_inner_spec.rb} +48 -6
- data/spec/models/{get_campaign_analytics200_response_analytics_spec.rb → campaign_analytics_response_analytics_spec.rb} +6 -6
- data/spec/models/{get_ad_analytics200_response_ad_spec.rb → campaign_analytics_response_campaign_spec.rb} +6 -16
- data/spec/models/{get_campaign_analytics200_response_spec.rb → campaign_analytics_response_spec.rb} +8 -8
- data/spec/models/get_ad_analytics202_response_spec.rb +52 -0
- data/spec/models/get_ad_tree202_response_spec.rb +52 -0
- data/spec/models/get_ads_timeline202_response_spec.rb +46 -0
- data/spec/models/get_campaign_analytics202_response_spec.rb +52 -0
- data/spec/models/list_ads202_response_spec.rb +52 -0
- data/zernio-sdk-0.0.716.gem +0 -0
- metadata +1654 -1634
- data/docs/GetAdAnalytics200Response.md +0 -22
- data/docs/GetAdTree200Response.md +0 -22
- data/docs/GetAdsTimeline200Response.md +0 -20
- data/docs/GetCampaignAnalytics200Response.md +0 -22
- data/docs/ListAds200Response.md +0 -22
- data/zernio-sdk-0.0.714.gem +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Zernio::GetCampaignAnalytics202Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **backfill_pending** | **Boolean** | | |
|
|
8
|
+
| **campaign** | [**CampaignAnalyticsResponseCampaign**](CampaignAnalyticsResponseCampaign.md) | | [optional] |
|
|
9
|
+
| **analytics** | [**CampaignAnalyticsResponseAnalytics**](CampaignAnalyticsResponseAnalytics.md) | | [optional] |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'zernio-sdk'
|
|
15
|
+
|
|
16
|
+
instance = Zernio::GetCampaignAnalytics202Response.new(
|
|
17
|
+
backfill_pending: null,
|
|
18
|
+
campaign: null,
|
|
19
|
+
analytics: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Zernio::ListAds202Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **ads** | [**Array<Ad>**](Ad.md) | | [optional] |
|
|
8
|
+
| **pagination** | [**Pagination**](Pagination.md) | | [optional] |
|
|
9
|
+
| **backfill_pending** | **Boolean** | | |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'zernio-sdk'
|
|
15
|
+
|
|
16
|
+
instance = Zernio::ListAds202Response.new(
|
|
17
|
+
ads: null,
|
|
18
|
+
pagination: null,
|
|
19
|
+
backfill_pending: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
|
@@ -835,7 +835,7 @@ module Zernio
|
|
|
835
835
|
# @option opts [String] :sort Campaign-level sort order. `newest` (default) / `oldest` order by the campaign's newest-ad createdAt. `spend_desc` / `spend_asc` order by aggregated spend in the requested date range; campaigns with no spend land at the end. (default to 'newest')
|
|
836
836
|
# @option opts [Integer] :time_increment Set to `1` to also return a daily breakdown. Mirrors Meta Insights' `time_increment=1`: each node gains a `daily[]` array of per-day metrics (same fields as the aggregated `metrics`) alongside the range total, so you get per-entity daily trends in ONE call instead of calling the tree once per day. Only `1` (daily) is supported. The daily series covers the same date range and uses the same source data as `metrics`, except `reach` on Meta and TikTok: the range total is the platform's de-duplicated value, so daily reach does not sum to it. See `dailyLevel` to control which levels carry it.
|
|
837
837
|
# @option opts [String] :daily_level Which tree levels get the `daily[]` series when `timeIncrement=1`. `campaign` (default) attaches it on campaign nodes only — the common per-campaign-trend case, and the smallest payload. `adset` adds it on ad sets too; `ad` adds it on every ad in `ads[]` as well (heaviest — a long range × up to 100 ads per ad set). Scope with `campaignId` to keep `ad`-level responses small. Ignored when `timeIncrement` is unset. (default to 'campaign')
|
|
838
|
-
# @return [
|
|
838
|
+
# @return [AdTreeResponse]
|
|
839
839
|
def get_ad_tree(opts = {})
|
|
840
840
|
data, _status_code, _headers = get_ad_tree_with_http_info(opts)
|
|
841
841
|
data
|
|
@@ -859,7 +859,7 @@ module Zernio
|
|
|
859
859
|
# @option opts [String] :sort Campaign-level sort order. `newest` (default) / `oldest` order by the campaign's newest-ad createdAt. `spend_desc` / `spend_asc` order by aggregated spend in the requested date range; campaigns with no spend land at the end. (default to 'newest')
|
|
860
860
|
# @option opts [Integer] :time_increment Set to `1` to also return a daily breakdown. Mirrors Meta Insights' `time_increment=1`: each node gains a `daily[]` array of per-day metrics (same fields as the aggregated `metrics`) alongside the range total, so you get per-entity daily trends in ONE call instead of calling the tree once per day. Only `1` (daily) is supported. The daily series covers the same date range and uses the same source data as `metrics`, except `reach` on Meta and TikTok: the range total is the platform's de-duplicated value, so daily reach does not sum to it. See `dailyLevel` to control which levels carry it.
|
|
861
861
|
# @option opts [String] :daily_level Which tree levels get the `daily[]` series when `timeIncrement=1`. `campaign` (default) attaches it on campaign nodes only — the common per-campaign-trend case, and the smallest payload. `adset` adds it on ad sets too; `ad` adds it on every ad in `ads[]` as well (heaviest — a long range × up to 100 ads per ad set). Scope with `campaignId` to keep `ad`-level responses small. Ignored when `timeIncrement` is unset. (default to 'campaign')
|
|
862
|
-
# @return [Array<(
|
|
862
|
+
# @return [Array<(AdTreeResponse, Integer, Hash)>] AdTreeResponse data, response status code and response headers
|
|
863
863
|
def get_ad_tree_with_http_info(opts = {})
|
|
864
864
|
if @api_client.config.debugging
|
|
865
865
|
@api_client.config.logger.debug 'Calling API: AdCampaignsApi.get_ad_tree ...'
|
|
@@ -929,7 +929,7 @@ module Zernio
|
|
|
929
929
|
post_body = opts[:debug_body]
|
|
930
930
|
|
|
931
931
|
# return_type
|
|
932
|
-
return_type = opts[:debug_return_type] || '
|
|
932
|
+
return_type = opts[:debug_return_type] || 'AdTreeResponse'
|
|
933
933
|
|
|
934
934
|
# auth_names
|
|
935
935
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -959,7 +959,7 @@ module Zernio
|
|
|
959
959
|
# @option opts [Date] :from_date Inclusive start of metrics range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
960
960
|
# @option opts [Date] :to_date Inclusive end of metrics range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
961
961
|
# @option opts [String] :platform Restrict to one platform.
|
|
962
|
-
# @return [
|
|
962
|
+
# @return [AdsTimelineResponse]
|
|
963
963
|
def get_ads_timeline(account_id, opts = {})
|
|
964
964
|
data, _status_code, _headers = get_ads_timeline_with_http_info(account_id, opts)
|
|
965
965
|
data
|
|
@@ -973,7 +973,7 @@ module Zernio
|
|
|
973
973
|
# @option opts [Date] :from_date Inclusive start of metrics range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
974
974
|
# @option opts [Date] :to_date Inclusive end of metrics range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
975
975
|
# @option opts [String] :platform Restrict to one platform.
|
|
976
|
-
# @return [Array<(
|
|
976
|
+
# @return [Array<(AdsTimelineResponse, Integer, Hash)>] AdsTimelineResponse data, response status code and response headers
|
|
977
977
|
def get_ads_timeline_with_http_info(account_id, opts = {})
|
|
978
978
|
if @api_client.config.debugging
|
|
979
979
|
@api_client.config.logger.debug 'Calling API: AdCampaignsApi.get_ads_timeline ...'
|
|
@@ -1009,7 +1009,7 @@ module Zernio
|
|
|
1009
1009
|
post_body = opts[:debug_body]
|
|
1010
1010
|
|
|
1011
1011
|
# return_type
|
|
1012
|
-
return_type = opts[:debug_return_type] || '
|
|
1012
|
+
return_type = opts[:debug_return_type] || 'AdsTimelineResponse'
|
|
1013
1013
|
|
|
1014
1014
|
# auth_names
|
|
1015
1015
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -1276,7 +1276,7 @@ module Zernio
|
|
|
1276
1276
|
# @option opts [String] :effective_instagram_media_id Instagram media ID of the boosted post (Meta `effective_instagram_media_id`). Use to map a Business-Manager-visible IG post back to the Zernio ad.
|
|
1277
1277
|
# @option opts [Date] :from_date Start of metrics date range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
1278
1278
|
# @option opts [Date] :to_date End of metrics date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
1279
|
-
# @return [
|
|
1279
|
+
# @return [AdsListResponse]
|
|
1280
1280
|
def list_ads(opts = {})
|
|
1281
1281
|
data, _status_code, _headers = list_ads_with_http_info(opts)
|
|
1282
1282
|
data
|
|
@@ -1300,7 +1300,7 @@ module Zernio
|
|
|
1300
1300
|
# @option opts [String] :effective_instagram_media_id Instagram media ID of the boosted post (Meta `effective_instagram_media_id`). Use to map a Business-Manager-visible IG post back to the Zernio ad.
|
|
1301
1301
|
# @option opts [Date] :from_date Start of metrics date range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
1302
1302
|
# @option opts [Date] :to_date End of metrics date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
1303
|
-
# @return [Array<(
|
|
1303
|
+
# @return [Array<(AdsListResponse, Integer, Hash)>] AdsListResponse data, response status code and response headers
|
|
1304
1304
|
def list_ads_with_http_info(opts = {})
|
|
1305
1305
|
if @api_client.config.debugging
|
|
1306
1306
|
@api_client.config.logger.debug 'Calling API: AdCampaignsApi.list_ads ...'
|
|
@@ -1358,7 +1358,7 @@ module Zernio
|
|
|
1358
1358
|
post_body = opts[:debug_body]
|
|
1359
1359
|
|
|
1360
1360
|
# return_type
|
|
1361
|
-
return_type = opts[:debug_return_type] || '
|
|
1361
|
+
return_type = opts[:debug_return_type] || 'AdsListResponse'
|
|
1362
1362
|
|
|
1363
1363
|
# auth_names
|
|
1364
1364
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -230,7 +230,7 @@ module Zernio
|
|
|
230
230
|
# @option opts [Date] :from_date Start of date range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
231
231
|
# @option opts [Date] :to_date End of date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
232
232
|
# @option opts [String] :breakdowns Comma-separated breakdown dimensions. **Meta**: age, gender, country, publisher_platform, device_platform, region. **TikTok**: gender, age, country_code, platform, ac, language. **LinkedIn** (firmographics): job_title, job_function, seniority, industry, company, company_size, country, region. Rows carry the raw pivot `value` plus a resolved `name`. LinkedIn serves these aggregated over the whole range, delays the data 12-24h, and omits segments with fewer than 3 events.
|
|
233
|
-
# @return [
|
|
233
|
+
# @return [AdAnalyticsResponse]
|
|
234
234
|
def get_ad_analytics(ad_id, opts = {})
|
|
235
235
|
data, _status_code, _headers = get_ad_analytics_with_http_info(ad_id, opts)
|
|
236
236
|
data
|
|
@@ -243,7 +243,7 @@ module Zernio
|
|
|
243
243
|
# @option opts [Date] :from_date Start of date range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
244
244
|
# @option opts [Date] :to_date End of date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
245
245
|
# @option opts [String] :breakdowns Comma-separated breakdown dimensions. **Meta**: age, gender, country, publisher_platform, device_platform, region. **TikTok**: gender, age, country_code, platform, ac, language. **LinkedIn** (firmographics): job_title, job_function, seniority, industry, company, company_size, country, region. Rows carry the raw pivot `value` plus a resolved `name`. LinkedIn serves these aggregated over the whole range, delays the data 12-24h, and omits segments with fewer than 3 events.
|
|
246
|
-
# @return [Array<(
|
|
246
|
+
# @return [Array<(AdAnalyticsResponse, Integer, Hash)>] AdAnalyticsResponse data, response status code and response headers
|
|
247
247
|
def get_ad_analytics_with_http_info(ad_id, opts = {})
|
|
248
248
|
if @api_client.config.debugging
|
|
249
249
|
@api_client.config.logger.debug 'Calling API: AdInsightsApi.get_ad_analytics ...'
|
|
@@ -273,7 +273,7 @@ module Zernio
|
|
|
273
273
|
post_body = opts[:debug_body]
|
|
274
274
|
|
|
275
275
|
# return_type
|
|
276
|
-
return_type = opts[:debug_return_type] || '
|
|
276
|
+
return_type = opts[:debug_return_type] || 'AdAnalyticsResponse'
|
|
277
277
|
|
|
278
278
|
# auth_names
|
|
279
279
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -469,7 +469,7 @@ module Zernio
|
|
|
469
469
|
# @option opts [Date] :from_date Start of date range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
470
470
|
# @option opts [Date] :to_date End of date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
471
471
|
# @option opts [String] :breakdowns Comma-separated breakdown dimensions. **Meta**: age, gender, country, publisher_platform, device_platform, region, platform_position, impression_device, video_asset, image_asset, body_asset, title_asset. **LinkedIn** (firmographics): job_title, job_function, seniority, industry, company, company_size, country, region. Rows carry the raw pivot `value` plus a resolved `name`. LinkedIn serves these aggregated over the whole range, delays the data 12-24h, and omits segments with fewer than 3 events.
|
|
472
|
-
# @return [
|
|
472
|
+
# @return [CampaignAnalyticsResponse]
|
|
473
473
|
def get_campaign_analytics(campaign_id, opts = {})
|
|
474
474
|
data, _status_code, _headers = get_campaign_analytics_with_http_info(campaign_id, opts)
|
|
475
475
|
data
|
|
@@ -483,7 +483,7 @@ module Zernio
|
|
|
483
483
|
# @option opts [Date] :from_date Start of date range (YYYY-MM-DD). Defaults to 90 days ago.
|
|
484
484
|
# @option opts [Date] :to_date End of date range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
485
485
|
# @option opts [String] :breakdowns Comma-separated breakdown dimensions. **Meta**: age, gender, country, publisher_platform, device_platform, region, platform_position, impression_device, video_asset, image_asset, body_asset, title_asset. **LinkedIn** (firmographics): job_title, job_function, seniority, industry, company, company_size, country, region. Rows carry the raw pivot `value` plus a resolved `name`. LinkedIn serves these aggregated over the whole range, delays the data 12-24h, and omits segments with fewer than 3 events.
|
|
486
|
-
# @return [Array<(
|
|
486
|
+
# @return [Array<(CampaignAnalyticsResponse, Integer, Hash)>] CampaignAnalyticsResponse data, response status code and response headers
|
|
487
487
|
def get_campaign_analytics_with_http_info(campaign_id, opts = {})
|
|
488
488
|
if @api_client.config.debugging
|
|
489
489
|
@api_client.config.logger.debug 'Calling API: AdInsightsApi.get_campaign_analytics ...'
|
|
@@ -514,7 +514,7 @@ module Zernio
|
|
|
514
514
|
post_body = opts[:debug_body]
|
|
515
515
|
|
|
516
516
|
# return_type
|
|
517
|
-
return_type = opts[:debug_return_type] || '
|
|
517
|
+
return_type = opts[:debug_return_type] || 'CampaignAnalyticsResponse'
|
|
518
518
|
|
|
519
519
|
# auth_names
|
|
520
520
|
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
@@ -14,19 +14,19 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
class
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
# Present and true only on `202` responses: part of the requested date range is still being backfilled from the platform in the background. Retry the same request shortly; it returns 200 once the range is fully ingested.
|
|
17
|
+
class AdAnalyticsResponse < ApiModelBase
|
|
18
|
+
# Present and true while historical data is being backfilled.
|
|
21
19
|
attr_accessor :backfill_pending
|
|
22
20
|
|
|
21
|
+
attr_accessor :ad
|
|
22
|
+
|
|
23
23
|
attr_accessor :analytics
|
|
24
24
|
|
|
25
25
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
26
26
|
def self.attribute_map
|
|
27
27
|
{
|
|
28
|
-
:'ad' => :'ad',
|
|
29
28
|
:'backfill_pending' => :'backfillPending',
|
|
29
|
+
:'ad' => :'ad',
|
|
30
30
|
:'analytics' => :'analytics'
|
|
31
31
|
}
|
|
32
32
|
end
|
|
@@ -44,9 +44,9 @@ module Zernio
|
|
|
44
44
|
# Attribute type mapping.
|
|
45
45
|
def self.openapi_types
|
|
46
46
|
{
|
|
47
|
-
:'ad' => :'GetAdAnalytics200ResponseAd',
|
|
48
47
|
:'backfill_pending' => :'Boolean',
|
|
49
|
-
:'
|
|
48
|
+
:'ad' => :'AdAnalyticsResponseAd',
|
|
49
|
+
:'analytics' => :'CampaignAnalyticsResponseAnalytics'
|
|
50
50
|
}
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -60,26 +60,26 @@ module Zernio
|
|
|
60
60
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
61
61
|
def initialize(attributes = {})
|
|
62
62
|
if (!attributes.is_a?(Hash))
|
|
63
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::
|
|
63
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::AdAnalyticsResponse` initialize method"
|
|
64
64
|
end
|
|
65
65
|
|
|
66
66
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
67
67
|
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
68
68
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
69
69
|
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
70
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::
|
|
70
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::AdAnalyticsResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
71
71
|
end
|
|
72
72
|
h[k.to_sym] = v
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
if attributes.key?(:'ad')
|
|
76
|
-
self.ad = attributes[:'ad']
|
|
77
|
-
end
|
|
78
|
-
|
|
79
75
|
if attributes.key?(:'backfill_pending')
|
|
80
76
|
self.backfill_pending = attributes[:'backfill_pending']
|
|
81
77
|
end
|
|
82
78
|
|
|
79
|
+
if attributes.key?(:'ad')
|
|
80
|
+
self.ad = attributes[:'ad']
|
|
81
|
+
end
|
|
82
|
+
|
|
83
83
|
if attributes.key?(:'analytics')
|
|
84
84
|
self.analytics = attributes[:'analytics']
|
|
85
85
|
end
|
|
@@ -105,8 +105,8 @@ module Zernio
|
|
|
105
105
|
def ==(o)
|
|
106
106
|
return true if self.equal?(o)
|
|
107
107
|
self.class == o.class &&
|
|
108
|
-
ad == o.ad &&
|
|
109
108
|
backfill_pending == o.backfill_pending &&
|
|
109
|
+
ad == o.ad &&
|
|
110
110
|
analytics == o.analytics
|
|
111
111
|
end
|
|
112
112
|
|
|
@@ -119,7 +119,7 @@ module Zernio
|
|
|
119
119
|
# Calculates hash code according to all attributes.
|
|
120
120
|
# @return [Integer] Hash code
|
|
121
121
|
def hash
|
|
122
|
-
[
|
|
122
|
+
[backfill_pending, ad, analytics].hash
|
|
123
123
|
end
|
|
124
124
|
|
|
125
125
|
# Builds the object from hash
|
data/lib/zernio-sdk/models/{get_ad_analytics200_response_ad.rb → ad_analytics_response_ad.rb}
RENAMED
|
@@ -14,49 +14,24 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
class
|
|
17
|
+
class AdAnalyticsResponseAd < ApiModelBase
|
|
18
18
|
attr_accessor :id
|
|
19
19
|
|
|
20
20
|
attr_accessor :name
|
|
21
21
|
|
|
22
22
|
attr_accessor :platform
|
|
23
23
|
|
|
24
|
-
attr_accessor :trigger
|
|
25
|
-
|
|
26
24
|
attr_accessor :status
|
|
27
25
|
|
|
28
26
|
# ISO 4217 code of the ad account that owns this ad (e.g. USD, THB, INR). All money values in `summary` and `daily` are in this currency. Null only on legacy ads synced before currency was persisted.
|
|
29
27
|
attr_accessor :currency
|
|
30
28
|
|
|
31
|
-
class EnumAttributeValidator
|
|
32
|
-
attr_reader :datatype
|
|
33
|
-
attr_reader :allowable_values
|
|
34
|
-
|
|
35
|
-
def initialize(datatype, allowable_values)
|
|
36
|
-
@allowable_values = allowable_values.map do |value|
|
|
37
|
-
case datatype.to_s
|
|
38
|
-
when /Integer/i
|
|
39
|
-
value.to_i
|
|
40
|
-
when /Float/i
|
|
41
|
-
value.to_f
|
|
42
|
-
else
|
|
43
|
-
value
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def valid?(value)
|
|
49
|
-
!value || allowable_values.include?(value)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
29
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
54
30
|
def self.attribute_map
|
|
55
31
|
{
|
|
56
32
|
:'id' => :'id',
|
|
57
33
|
:'name' => :'name',
|
|
58
34
|
:'platform' => :'platform',
|
|
59
|
-
:'trigger' => :'trigger',
|
|
60
35
|
:'status' => :'status',
|
|
61
36
|
:'currency' => :'currency'
|
|
62
37
|
}
|
|
@@ -78,7 +53,6 @@ module Zernio
|
|
|
78
53
|
:'id' => :'String',
|
|
79
54
|
:'name' => :'String',
|
|
80
55
|
:'platform' => :'String',
|
|
81
|
-
:'trigger' => :'String',
|
|
82
56
|
:'status' => :'String',
|
|
83
57
|
:'currency' => :'String'
|
|
84
58
|
}
|
|
@@ -95,14 +69,14 @@ module Zernio
|
|
|
95
69
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
96
70
|
def initialize(attributes = {})
|
|
97
71
|
if (!attributes.is_a?(Hash))
|
|
98
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::
|
|
72
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::AdAnalyticsResponseAd` initialize method"
|
|
99
73
|
end
|
|
100
74
|
|
|
101
75
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
102
76
|
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
103
77
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
104
78
|
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
105
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::
|
|
79
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::AdAnalyticsResponseAd`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
106
80
|
end
|
|
107
81
|
h[k.to_sym] = v
|
|
108
82
|
}
|
|
@@ -119,10 +93,6 @@ module Zernio
|
|
|
119
93
|
self.platform = attributes[:'platform']
|
|
120
94
|
end
|
|
121
95
|
|
|
122
|
-
if attributes.key?(:'trigger')
|
|
123
|
-
self.trigger = attributes[:'trigger']
|
|
124
|
-
end
|
|
125
|
-
|
|
126
96
|
if attributes.key?(:'status')
|
|
127
97
|
self.status = attributes[:'status']
|
|
128
98
|
end
|
|
@@ -144,21 +114,9 @@ module Zernio
|
|
|
144
114
|
# @return true if the model is valid
|
|
145
115
|
def valid?
|
|
146
116
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
147
|
-
trigger_validator = EnumAttributeValidator.new('String', ["comment", "story_reply"])
|
|
148
|
-
return false unless trigger_validator.valid?(@trigger)
|
|
149
117
|
true
|
|
150
118
|
end
|
|
151
119
|
|
|
152
|
-
# Custom attribute writer method checking allowed values (enum).
|
|
153
|
-
# @param [Object] trigger Object to be assigned
|
|
154
|
-
def trigger=(trigger)
|
|
155
|
-
validator = EnumAttributeValidator.new('String', ["comment", "story_reply"])
|
|
156
|
-
unless validator.valid?(trigger)
|
|
157
|
-
fail ArgumentError, "invalid value for \"trigger\", must be one of #{validator.allowable_values}."
|
|
158
|
-
end
|
|
159
|
-
@trigger = trigger
|
|
160
|
-
end
|
|
161
|
-
|
|
162
120
|
# Checks equality by comparing each attribute.
|
|
163
121
|
# @param [Object] Object to be compared
|
|
164
122
|
def ==(o)
|
|
@@ -167,7 +125,6 @@ module Zernio
|
|
|
167
125
|
id == o.id &&
|
|
168
126
|
name == o.name &&
|
|
169
127
|
platform == o.platform &&
|
|
170
|
-
trigger == o.trigger &&
|
|
171
128
|
status == o.status &&
|
|
172
129
|
currency == o.currency
|
|
173
130
|
end
|
|
@@ -181,7 +138,7 @@ module Zernio
|
|
|
181
138
|
# Calculates hash code according to all attributes.
|
|
182
139
|
# @return [Integer] Hash code
|
|
183
140
|
def hash
|
|
184
|
-
[id, name, platform,
|
|
141
|
+
[id, name, platform, status, currency].hash
|
|
185
142
|
end
|
|
186
143
|
|
|
187
144
|
# Builds the object from hash
|
|
@@ -54,6 +54,27 @@ 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
|
+
# Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
|
|
58
|
+
attr_accessor :cost_per_action
|
|
59
|
+
|
|
60
|
+
# Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
|
|
61
|
+
attr_accessor :outbound_clicks
|
|
62
|
+
|
|
63
|
+
# Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
|
|
64
|
+
attr_accessor :outbound_clicks_ctr
|
|
65
|
+
|
|
66
|
+
# In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
|
|
67
|
+
attr_accessor :inline_link_clicks
|
|
68
|
+
|
|
69
|
+
# Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
|
|
70
|
+
attr_accessor :inline_link_click_ctr
|
|
71
|
+
|
|
72
|
+
# People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
|
|
73
|
+
attr_accessor :unique_clicks
|
|
74
|
+
|
|
75
|
+
# Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
|
|
76
|
+
attr_accessor :unique_ctr
|
|
77
|
+
|
|
57
78
|
# 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
79
|
attr_accessor :video_play_actions
|
|
59
80
|
|
|
@@ -111,6 +132,13 @@ module Zernio
|
|
|
111
132
|
:'action_values' => :'actionValues',
|
|
112
133
|
:'purchase_value' => :'purchaseValue',
|
|
113
134
|
:'roas' => :'roas',
|
|
135
|
+
:'cost_per_action' => :'costPerAction',
|
|
136
|
+
:'outbound_clicks' => :'outboundClicks',
|
|
137
|
+
:'outbound_clicks_ctr' => :'outboundClicksCtr',
|
|
138
|
+
:'inline_link_clicks' => :'inlineLinkClicks',
|
|
139
|
+
:'inline_link_click_ctr' => :'inlineLinkClickCtr',
|
|
140
|
+
:'unique_clicks' => :'uniqueClicks',
|
|
141
|
+
:'unique_ctr' => :'uniqueCtr',
|
|
114
142
|
:'video_play_actions' => :'videoPlayActions',
|
|
115
143
|
:'video30_sec_watched_actions' => :'video30SecWatchedActions',
|
|
116
144
|
:'video_thruplay_watched_actions' => :'videoThruplayWatchedActions',
|
|
@@ -155,6 +183,13 @@ module Zernio
|
|
|
155
183
|
:'action_values' => :'Hash<String, Float>',
|
|
156
184
|
:'purchase_value' => :'Float',
|
|
157
185
|
:'roas' => :'Float',
|
|
186
|
+
:'cost_per_action' => :'Hash<String, Float>',
|
|
187
|
+
:'outbound_clicks' => :'Integer',
|
|
188
|
+
:'outbound_clicks_ctr' => :'Float',
|
|
189
|
+
:'inline_link_clicks' => :'Integer',
|
|
190
|
+
:'inline_link_click_ctr' => :'Float',
|
|
191
|
+
:'unique_clicks' => :'Integer',
|
|
192
|
+
:'unique_ctr' => :'Float',
|
|
158
193
|
:'video_play_actions' => :'Integer',
|
|
159
194
|
:'video30_sec_watched_actions' => :'Integer',
|
|
160
195
|
:'video_thruplay_watched_actions' => :'Integer',
|
|
@@ -261,6 +296,36 @@ module Zernio
|
|
|
261
296
|
self.roas = attributes[:'roas']
|
|
262
297
|
end
|
|
263
298
|
|
|
299
|
+
if attributes.key?(:'cost_per_action')
|
|
300
|
+
if (value = attributes[:'cost_per_action']).is_a?(Hash)
|
|
301
|
+
self.cost_per_action = value
|
|
302
|
+
end
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
if attributes.key?(:'outbound_clicks')
|
|
306
|
+
self.outbound_clicks = attributes[:'outbound_clicks']
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
if attributes.key?(:'outbound_clicks_ctr')
|
|
310
|
+
self.outbound_clicks_ctr = attributes[:'outbound_clicks_ctr']
|
|
311
|
+
end
|
|
312
|
+
|
|
313
|
+
if attributes.key?(:'inline_link_clicks')
|
|
314
|
+
self.inline_link_clicks = attributes[:'inline_link_clicks']
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
if attributes.key?(:'inline_link_click_ctr')
|
|
318
|
+
self.inline_link_click_ctr = attributes[:'inline_link_click_ctr']
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
if attributes.key?(:'unique_clicks')
|
|
322
|
+
self.unique_clicks = attributes[:'unique_clicks']
|
|
323
|
+
end
|
|
324
|
+
|
|
325
|
+
if attributes.key?(:'unique_ctr')
|
|
326
|
+
self.unique_ctr = attributes[:'unique_ctr']
|
|
327
|
+
end
|
|
328
|
+
|
|
264
329
|
if attributes.key?(:'video_play_actions')
|
|
265
330
|
self.video_play_actions = attributes[:'video_play_actions']
|
|
266
331
|
end
|
|
@@ -352,6 +417,13 @@ module Zernio
|
|
|
352
417
|
action_values == o.action_values &&
|
|
353
418
|
purchase_value == o.purchase_value &&
|
|
354
419
|
roas == o.roas &&
|
|
420
|
+
cost_per_action == o.cost_per_action &&
|
|
421
|
+
outbound_clicks == o.outbound_clicks &&
|
|
422
|
+
outbound_clicks_ctr == o.outbound_clicks_ctr &&
|
|
423
|
+
inline_link_clicks == o.inline_link_clicks &&
|
|
424
|
+
inline_link_click_ctr == o.inline_link_click_ctr &&
|
|
425
|
+
unique_clicks == o.unique_clicks &&
|
|
426
|
+
unique_ctr == o.unique_ctr &&
|
|
355
427
|
video_play_actions == o.video_play_actions &&
|
|
356
428
|
video30_sec_watched_actions == o.video30_sec_watched_actions &&
|
|
357
429
|
video_thruplay_watched_actions == o.video_thruplay_watched_actions &&
|
|
@@ -377,7 +449,7 @@ module Zernio
|
|
|
377
449
|
# Calculates hash code according to all attributes.
|
|
378
450
|
# @return [Integer] Hash code
|
|
379
451
|
def hash
|
|
380
|
-
[spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at, date].hash
|
|
452
|
+
[spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, cost_per_action, outbound_clicks, outbound_clicks_ctr, inline_link_clicks, inline_link_click_ctr, unique_clicks, unique_ctr, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at, date].hash
|
|
381
453
|
end
|
|
382
454
|
|
|
383
455
|
# Builds the object from hash
|
|
@@ -40,7 +40,7 @@ module Zernio
|
|
|
40
40
|
# 3-second video views (`video_view`). For completion-based counts use `videoThruplayWatchedActions`.
|
|
41
41
|
attr_accessor :video_views
|
|
42
42
|
|
|
43
|
-
# Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session
|
|
43
|
+
# Attributed link clicks (`link_click`). This is the attribution-window count, which differs from the in-session count in the sibling `inlineLinkClicks` field.
|
|
44
44
|
attr_accessor :link_clicks
|
|
45
45
|
|
|
46
46
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -53,6 +53,27 @@ 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
|
+
# Derived `spend / actions[type]` for every action type with a non-zero count, in ad-account native currency. Same keys as `actions`. Rounded to 4 decimals because cheap actions cost well under a cent. Recomputed from summed spend + counts at every rollup level. Empty object when spend is 0 or no actions are reported.
|
|
57
|
+
attr_accessor :cost_per_action
|
|
58
|
+
|
|
59
|
+
# Clicks leading off Meta's surfaces to the advertiser's destination. Meta-only; other platforms report 0.
|
|
60
|
+
attr_accessor :outbound_clicks
|
|
61
|
+
|
|
62
|
+
# Derived `outboundClicks / impressions * 100`, recomputed from sums at every rollup level.
|
|
63
|
+
attr_accessor :outbound_clicks_ctr
|
|
64
|
+
|
|
65
|
+
# In-session link clicks. Differs from the attributed `link_click` count in `actions`/`engagementBreakdown.linkClicks`, which uses the attribution window. Meta-only.
|
|
66
|
+
attr_accessor :inline_link_clicks
|
|
67
|
+
|
|
68
|
+
# Derived `inlineLinkClicks / impressions * 100`, recomputed from sums at every rollup level.
|
|
69
|
+
attr_accessor :inline_link_click_ctr
|
|
70
|
+
|
|
71
|
+
# People who clicked at least once. NOT additive: summed across days/children it overcounts people who clicked on multiple days or ads, so treat rollups as an upper bound (same caveat as `reach`). Meta-only.
|
|
72
|
+
attr_accessor :unique_clicks
|
|
73
|
+
|
|
74
|
+
# Derived `uniqueClicks / impressions * 100` (NOT Meta's reach-based unique_ctr). Inherits the non-additivity caveat of `uniqueClicks`.
|
|
75
|
+
attr_accessor :unique_ctr
|
|
76
|
+
|
|
56
77
|
# 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
78
|
attr_accessor :video_play_actions
|
|
58
79
|
|
|
@@ -107,6 +128,13 @@ module Zernio
|
|
|
107
128
|
:'action_values' => :'actionValues',
|
|
108
129
|
:'purchase_value' => :'purchaseValue',
|
|
109
130
|
:'roas' => :'roas',
|
|
131
|
+
:'cost_per_action' => :'costPerAction',
|
|
132
|
+
:'outbound_clicks' => :'outboundClicks',
|
|
133
|
+
:'outbound_clicks_ctr' => :'outboundClicksCtr',
|
|
134
|
+
:'inline_link_clicks' => :'inlineLinkClicks',
|
|
135
|
+
:'inline_link_click_ctr' => :'inlineLinkClickCtr',
|
|
136
|
+
:'unique_clicks' => :'uniqueClicks',
|
|
137
|
+
:'unique_ctr' => :'uniqueCtr',
|
|
110
138
|
:'video_play_actions' => :'videoPlayActions',
|
|
111
139
|
:'video30_sec_watched_actions' => :'video30SecWatchedActions',
|
|
112
140
|
:'video_thruplay_watched_actions' => :'videoThruplayWatchedActions',
|
|
@@ -150,6 +178,13 @@ module Zernio
|
|
|
150
178
|
:'action_values' => :'Hash<String, Float>',
|
|
151
179
|
:'purchase_value' => :'Float',
|
|
152
180
|
:'roas' => :'Float',
|
|
181
|
+
:'cost_per_action' => :'Hash<String, Float>',
|
|
182
|
+
:'outbound_clicks' => :'Integer',
|
|
183
|
+
:'outbound_clicks_ctr' => :'Float',
|
|
184
|
+
:'inline_link_clicks' => :'Integer',
|
|
185
|
+
:'inline_link_click_ctr' => :'Float',
|
|
186
|
+
:'unique_clicks' => :'Integer',
|
|
187
|
+
:'unique_ctr' => :'Float',
|
|
153
188
|
:'video_play_actions' => :'Integer',
|
|
154
189
|
:'video30_sec_watched_actions' => :'Integer',
|
|
155
190
|
:'video_thruplay_watched_actions' => :'Integer',
|
|
@@ -248,6 +283,36 @@ module Zernio
|
|
|
248
283
|
self.roas = attributes[:'roas']
|
|
249
284
|
end
|
|
250
285
|
|
|
286
|
+
if attributes.key?(:'cost_per_action')
|
|
287
|
+
if (value = attributes[:'cost_per_action']).is_a?(Hash)
|
|
288
|
+
self.cost_per_action = value
|
|
289
|
+
end
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
if attributes.key?(:'outbound_clicks')
|
|
293
|
+
self.outbound_clicks = attributes[:'outbound_clicks']
|
|
294
|
+
end
|
|
295
|
+
|
|
296
|
+
if attributes.key?(:'outbound_clicks_ctr')
|
|
297
|
+
self.outbound_clicks_ctr = attributes[:'outbound_clicks_ctr']
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
if attributes.key?(:'inline_link_clicks')
|
|
301
|
+
self.inline_link_clicks = attributes[:'inline_link_clicks']
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
if attributes.key?(:'inline_link_click_ctr')
|
|
305
|
+
self.inline_link_click_ctr = attributes[:'inline_link_click_ctr']
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
if attributes.key?(:'unique_clicks')
|
|
309
|
+
self.unique_clicks = attributes[:'unique_clicks']
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
if attributes.key?(:'unique_ctr')
|
|
313
|
+
self.unique_ctr = attributes[:'unique_ctr']
|
|
314
|
+
end
|
|
315
|
+
|
|
251
316
|
if attributes.key?(:'video_play_actions')
|
|
252
317
|
self.video_play_actions = attributes[:'video_play_actions']
|
|
253
318
|
end
|
|
@@ -335,6 +400,13 @@ module Zernio
|
|
|
335
400
|
action_values == o.action_values &&
|
|
336
401
|
purchase_value == o.purchase_value &&
|
|
337
402
|
roas == o.roas &&
|
|
403
|
+
cost_per_action == o.cost_per_action &&
|
|
404
|
+
outbound_clicks == o.outbound_clicks &&
|
|
405
|
+
outbound_clicks_ctr == o.outbound_clicks_ctr &&
|
|
406
|
+
inline_link_clicks == o.inline_link_clicks &&
|
|
407
|
+
inline_link_click_ctr == o.inline_link_click_ctr &&
|
|
408
|
+
unique_clicks == o.unique_clicks &&
|
|
409
|
+
unique_ctr == o.unique_ctr &&
|
|
338
410
|
video_play_actions == o.video_play_actions &&
|
|
339
411
|
video30_sec_watched_actions == o.video30_sec_watched_actions &&
|
|
340
412
|
video_thruplay_watched_actions == o.video_thruplay_watched_actions &&
|
|
@@ -359,7 +431,7 @@ module Zernio
|
|
|
359
431
|
# Calculates hash code according to all attributes.
|
|
360
432
|
# @return [Integer] Hash code
|
|
361
433
|
def hash
|
|
362
|
-
[spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at].hash
|
|
434
|
+
[spend, impressions, reach, clicks, ctr, cpc, cpm, engagement, conversions, cost_per_conversion, actions, action_values, purchase_value, roas, cost_per_action, outbound_clicks, outbound_clicks_ctr, inline_link_clicks, inline_link_click_ctr, unique_clicks, unique_ctr, video_play_actions, video30_sec_watched_actions, video_thruplay_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_p100_watched_actions, video_avg_time_watched_actions, cost_per_thruplay, funnel, engagement_breakdown, last_synced_at].hash
|
|
363
435
|
end
|
|
364
436
|
|
|
365
437
|
# Builds the object from hash
|