twitter-ads 10.1.0 → 11.0.0

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.
@@ -0,0 +1,42 @@
1
+ {
2
+ "request": {
3
+ "params": {
4
+ "account_id": "2iqph",
5
+ "card_id": "1503831318555086849"
6
+ }
7
+ },
8
+ "data": {
9
+ "name": "my new card",
10
+ "components": [
11
+ {
12
+ "media_key": "13_794652834998325248",
13
+ "media_metadata": {
14
+ "13_794652834998325248": {
15
+ "type": "VIDEO",
16
+ "url": "https://video.twimg.com/amplify_video/794652834998325248/vid/640x360/pUgE2UKcfPwF_5Uh.mp4",
17
+ "width": 640,
18
+ "height": 360,
19
+ "video_duration": 7967,
20
+ "video_aspect_ratio": "16:9"
21
+ }
22
+ },
23
+ "type": "MEDIA"
24
+ },
25
+ {
26
+ "title": "Twitter",
27
+ "destination": {
28
+ "url": "http://twitter.com/login",
29
+ "type": "WEBSITE"
30
+ },
31
+ "type": "DETAILS"
32
+ }
33
+ ],
34
+ "id": "1503831318555086849",
35
+ "created_at": "2022-03-15T20:31:40Z",
36
+ "card_uri": "card://1503831318555086849",
37
+ "updated_at": "2022-03-15T20:31:40Z",
38
+ "deleted": false,
39
+ "card_type": "VIDEO_WEBSITE"
40
+ }
41
+ }
42
+
@@ -44,6 +44,7 @@ describe TwitterAds::LineItem do
44
44
  total_budget_amount_local_micro
45
45
  goal
46
46
  ios_app_store_identifier
47
+ standard_delivery
47
48
  )
48
49
  include_examples 'object property check', read, write
49
50
 
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+ # Copyright (C) 2019 Twitter, Inc.
3
+
4
+ require 'spec_helper'
5
+
6
+ include TwitterAds::Enum
7
+
8
+ describe TwitterAds::Creative::Cards do
9
+
10
+ let!(:resource) { "#{ADS_API}/accounts/2iqph/cards" }
11
+
12
+ before(:each) do
13
+ stub_fixture(:get, :accounts_load, "#{ADS_API}/accounts/2iqph")
14
+
15
+ resource_collection = "#{ADS_API}/accounts/#{account.id}/cards"
16
+ stub_fixture(:get, :cards_all, resource_collection)
17
+
18
+ resource = "#{ADS_API}/accounts/#{account.id}/cards/1508693734346485761"
19
+ stub_fixture(:get, :cards_load, /#{resource}\?.*/)
20
+ end
21
+
22
+ let(:client) do
23
+ Client.new(
24
+ Faker::Lorem.characters(40),
25
+ Faker::Lorem.characters(40),
26
+ Faker::Lorem.characters(40),
27
+ Faker::Lorem.characters(40)
28
+ )
29
+ end
30
+
31
+ let(:account) { client.accounts('2iqph') }
32
+
33
+ it 'inspect Cards.load() response' do
34
+ card = described_class.load(account, '1508693734346485761')
35
+
36
+ expect(card).to be_instance_of(TwitterAds::Creative::Cards)
37
+ expect(card.id).to eq '1503831318555086849'
38
+ expect(card.card_type).to eq 'VIDEO_WEBSITE'
39
+ expect(card.card_uri).to eq 'card://1503831318555086849'
40
+ end
41
+
42
+ it 'inspect Cards.all() response' do
43
+ cards = described_class.all(account)
44
+
45
+ expect(cards).to be_instance_of(Cursor)
46
+ card = cards.first
47
+ expect(card.id).to eq '1340029888649076737'
48
+ expect(card.card_type).to eq 'VIDEO_WEBSITE'
49
+ expect(card.card_uri).to eq 'card://1340029888649076737'
50
+ end
51
+
52
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twitter-ads
3
3
  version: !ruby/object:Gem::Version
4
- version: 10.1.0
4
+ version: 11.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Babich
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2022-01-07 00:00:00.000000000 Z
15
+ date: 2022-05-27 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: multi_json
@@ -75,7 +75,6 @@ files:
75
75
  - lib/twitter-ads/creative/cards.rb
76
76
  - lib/twitter-ads/creative/cards_fetch.rb
77
77
  - lib/twitter-ads/creative/draft_tweet.rb
78
- - lib/twitter-ads/creative/image_app_download_card.rb
79
78
  - lib/twitter-ads/creative/image_conversation_card.rb
80
79
  - lib/twitter-ads/creative/media_creative.rb
81
80
  - lib/twitter-ads/creative/media_library.rb
@@ -85,10 +84,7 @@ files:
85
84
  - lib/twitter-ads/creative/scheduled_tweet.rb
86
85
  - lib/twitter-ads/creative/tweet_previews.rb
87
86
  - lib/twitter-ads/creative/tweets.rb
88
- - lib/twitter-ads/creative/video_app_download_card.rb
89
87
  - lib/twitter-ads/creative/video_conversation_card.rb
90
- - lib/twitter-ads/creative/video_website_card.rb
91
- - lib/twitter-ads/creative/website_card.rb
92
88
  - lib/twitter-ads/cursor.rb
93
89
  - lib/twitter-ads/enum.rb
94
90
  - lib/twitter-ads/error.rb
@@ -128,6 +124,8 @@ files:
128
124
  - spec/fixtures/audience_estimate.json
129
125
  - spec/fixtures/campaigns_all.json
130
126
  - spec/fixtures/campaigns_load.json
127
+ - spec/fixtures/cards_all.json
128
+ - spec/fixtures/cards_load.json
131
129
  - spec/fixtures/custom_audiences_all.json
132
130
  - spec/fixtures/custom_audiences_load.json
133
131
  - spec/fixtures/funding_instruments_all.json
@@ -159,6 +157,7 @@ files:
159
157
  - spec/twitter-ads/campaign/tracking_tag_spec.rb
160
158
  - spec/twitter-ads/campaign/tweet_spec.rb
161
159
  - spec/twitter-ads/client_spec.rb
160
+ - spec/twitter-ads/creative/cards_spec.rb
162
161
  - spec/twitter-ads/creative/media_creative_spec.rb
163
162
  - spec/twitter-ads/creative/promoted_account_spec.rb
164
163
  - spec/twitter-ads/creative/promoted_tweet_spec.rb
@@ -194,52 +193,55 @@ signing_key:
194
193
  specification_version: 4
195
194
  summary: The officially supported Twitter Ads API SDK for Ruby.
196
195
  test_files:
197
- - spec/shared/properties.rb
198
- - spec/spec_helper.rb
199
196
  - spec/quality_spec.rb
200
- - spec/twitter-ads/campaign/tracking_tag_spec.rb
201
- - spec/twitter-ads/campaign/tweet_spec.rb
202
- - spec/twitter-ads/campaign/targeting_criteria_spec.rb
203
- - spec/twitter-ads/campaign/line_item_spec.rb
204
- - spec/twitter-ads/campaign/app_list_spec.rb
205
- - spec/twitter-ads/rate_limit_spec.rb
206
- - spec/twitter-ads/targeting/audience_estimate_spec.rb
207
- - spec/twitter-ads/creative/promoted_account_spec.rb
208
- - spec/twitter-ads/creative/tweet_previews_spec.rb
209
- - spec/twitter-ads/creative/media_creative_spec.rb
210
- - spec/twitter-ads/creative/promoted_tweet_spec.rb
211
- - spec/twitter-ads/utils_spec.rb
212
- - spec/twitter-ads/placements_spec.rb
213
- - spec/twitter-ads/retry_count_spec.rb
214
- - spec/twitter-ads/client_spec.rb
215
- - spec/twitter-ads/account_spec.rb
216
- - spec/twitter-ads/audiences/custom_audience_spec.rb
217
- - spec/twitter-ads/cursor_spec.rb
197
+ - spec/fixtures/promoted_tweets_all.json
198
+ - spec/fixtures/app_lists_all.json
199
+ - spec/fixtures/accounts_features.json
200
+ - spec/fixtures/tracking_tags_load.json
218
201
  - spec/fixtures/line_items_load.json
219
- - spec/fixtures/promotable_users_all.json
202
+ - spec/fixtures/line_items_all.json
220
203
  - spec/fixtures/campaigns_load.json
221
- - spec/fixtures/accounts_features.json
222
204
  - spec/fixtures/app_lists_load.json
223
- - spec/fixtures/accounts_load.json
224
- - spec/fixtures/no_content.json
225
- - spec/fixtures/audience_estimate.json
226
- - spec/fixtures/promoted_tweets_all.json
227
- - spec/fixtures/placements.json
228
- - spec/fixtures/tracking_tags_load.json
205
+ - spec/fixtures/campaigns_all.json
206
+ - spec/fixtures/tailored_audiences_all.json
207
+ - spec/fixtures/tweet_previews.json
229
208
  - spec/fixtures/funding_instruments_load.json
230
- - spec/fixtures/targeted_audiences.json
231
- - spec/fixtures/reach_estimate.json
232
- - spec/fixtures/line_items_all.json
233
- - spec/fixtures/promoted_tweets_load.json
234
- - spec/fixtures/videos_all.json
235
- - spec/fixtures/app_lists_all.json
209
+ - spec/fixtures/accounts_load.json
210
+ - spec/fixtures/cards_all.json
236
211
  - spec/fixtures/videos_load.json
212
+ - spec/fixtures/videos_all.json
237
213
  - spec/fixtures/promotable_users_load.json
238
214
  - spec/fixtures/accounts_all.json
239
- - spec/fixtures/tweet_previews.json
240
- - spec/fixtures/custom_audiences_all.json
241
- - spec/fixtures/funding_instruments_all.json
242
- - spec/fixtures/campaigns_all.json
215
+ - spec/fixtures/reach_estimate.json
216
+ - spec/fixtures/targeted_audiences.json
217
+ - spec/fixtures/audience_estimate.json
218
+ - spec/fixtures/promoted_tweets_load.json
243
219
  - spec/fixtures/custom_audiences_load.json
244
- - spec/fixtures/tailored_audiences_all.json
220
+ - spec/fixtures/funding_instruments_all.json
221
+ - spec/fixtures/promotable_users_all.json
222
+ - spec/fixtures/placements.json
223
+ - spec/fixtures/cards_load.json
224
+ - spec/fixtures/no_content.json
225
+ - spec/fixtures/custom_audiences_all.json
226
+ - spec/shared/properties.rb
245
227
  - spec/support/helpers.rb
228
+ - spec/twitter-ads/placements_spec.rb
229
+ - spec/twitter-ads/account_spec.rb
230
+ - spec/twitter-ads/retry_count_spec.rb
231
+ - spec/twitter-ads/client_spec.rb
232
+ - spec/twitter-ads/campaign/targeting_criteria_spec.rb
233
+ - spec/twitter-ads/campaign/line_item_spec.rb
234
+ - spec/twitter-ads/campaign/tweet_spec.rb
235
+ - spec/twitter-ads/campaign/tracking_tag_spec.rb
236
+ - spec/twitter-ads/campaign/app_list_spec.rb
237
+ - spec/twitter-ads/utils_spec.rb
238
+ - spec/twitter-ads/audiences/custom_audience_spec.rb
239
+ - spec/twitter-ads/cursor_spec.rb
240
+ - spec/twitter-ads/creative/cards_spec.rb
241
+ - spec/twitter-ads/creative/promoted_account_spec.rb
242
+ - spec/twitter-ads/creative/promoted_tweet_spec.rb
243
+ - spec/twitter-ads/creative/tweet_previews_spec.rb
244
+ - spec/twitter-ads/creative/media_creative_spec.rb
245
+ - spec/twitter-ads/rate_limit_spec.rb
246
+ - spec/twitter-ads/targeting/audience_estimate_spec.rb
247
+ - spec/spec_helper.rb
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
- # Copyright (C) 2019 Twitter, Inc.
3
-
4
- module TwitterAds
5
- module Creative
6
-
7
- class ImageAppDownloadCard
8
-
9
- include TwitterAds::DSL
10
- include TwitterAds::Resource
11
- include TwitterAds::Persistence
12
-
13
- attr_reader :account
14
-
15
- property :card_type, read_only: true
16
- property :card_uri, read_only: true
17
- property :created_at, type: :time, read_only: true
18
- property :deleted, type: :bool, read_only: true
19
- property :id, read_only: true
20
- property :image_display_height, read_only: true
21
- property :image_display_width, read_only: true
22
- property :updated_at, type: :time, read_only: true
23
- property :media_url, read_only: true
24
-
25
- property :country_code
26
- property :app_cta
27
- property :googleplay_app_id
28
- property :googleplay_deep_link
29
- property :ios_app_store_identifier
30
- property :ios_deep_link
31
- property :name
32
- property :media_key
33
-
34
- RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
35
- 'accounts/%{account_id}/cards/image_app_download' # @api private
36
- RESOURCE = "/#{TwitterAds::API_VERSION}/" \
37
- 'accounts/%{account_id}/cards/image_app_download/%{id}' # @api private
38
-
39
- def initialize(account)
40
- @account = account
41
- self
42
- end
43
-
44
- end
45
-
46
- end
47
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
- # Copyright (C) 2019 Twitter, Inc.
3
-
4
- module TwitterAds
5
- module Creative
6
-
7
- class VideoAppDownloadCard
8
-
9
- include TwitterAds::DSL
10
- include TwitterAds::Resource
11
- include TwitterAds::Persistence
12
-
13
- attr_reader :account
14
-
15
- property :card_type, read_only: true
16
- property :card_uri, read_only: true
17
- property :created_at, type: :time, read_only: true
18
- property :deleted, type: :bool, read_only: true
19
- property :id, read_only: true
20
- property :updated_at, type: :time, read_only: true
21
- property :video_owner_id, read_only: true
22
- property :poster_media_url, read_only: true
23
- property :media_url, read_only: true
24
-
25
- property :country_code
26
- property :app_cta
27
- property :poster_media_key
28
- property :ios_app_store_identifier
29
- property :ios_deep_link
30
- property :googleplay_app_id
31
- property :googleplay_deep_link
32
- property :name
33
- property :media_key
34
-
35
- RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
36
- 'accounts/%{account_id}/cards/video_app_download' # @api private
37
- RESOURCE = "/#{TwitterAds::API_VERSION}/" \
38
- 'accounts/%{account_id}/cards/video_app_download/%{id}' # @api private
39
-
40
- def initialize(account)
41
- @account = account
42
- self
43
- end
44
-
45
- end
46
-
47
- end
48
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
- # Copyright (C) 2019 Twitter, Inc.
3
-
4
- module TwitterAds
5
- module Creative
6
-
7
- class VideoWebsiteCard
8
-
9
- include TwitterAds::DSL
10
- include TwitterAds::Resource
11
- include TwitterAds::Persistence
12
-
13
- attr_reader :account
14
-
15
- property :account_id, read_only: true
16
- property :card_type, read_only: true
17
- property :card_uri, read_only: true
18
- property :created_at, type: :time, read_only: true
19
- property :deleted, type: :bool, read_only: true
20
- property :id, read_only: true
21
- property :updated_at, type: :time, read_only: true
22
- property :video_height, read_only: true
23
- property :video_owner_id, read_only: true
24
- property :video_poster_height, read_only: true
25
- property :poster_media_url, read_only: true
26
- property :video_poster_width, read_only: true
27
- property :media_url, read_only: true
28
- property :video_width, read_only: true
29
- property :website_display_url, read_only: true
30
- property :website_dest_url, read_only: true
31
-
32
- property :name
33
- property :title
34
- property :media_key
35
- property :website_url
36
-
37
- RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/accounts/%{account_id}/cards/video_website"
38
- # @api private
39
- RESOURCE = "/#{TwitterAds::API_VERSION}/" \
40
- 'accounts/%{account_id}/cards/video_website/%{id}' # @api private
41
-
42
- def initialize(account)
43
- @account = account
44
- self
45
- end
46
-
47
- end
48
-
49
- end
50
- end
@@ -1,45 +0,0 @@
1
- # frozen_string_literal: true
2
- # Copyright (C) 2019 Twitter, Inc.
3
-
4
- module TwitterAds
5
- module Creative
6
-
7
- class WebsiteCard
8
-
9
- include TwitterAds::DSL
10
- include TwitterAds::Resource
11
- include TwitterAds::Persistence
12
-
13
- attr_reader :account
14
-
15
- property :card_type, read_only: true
16
- property :card_uri, read_only: true
17
- property :created_at, type: :time, read_only: true
18
- property :deleted, type: :bool, read_only: true
19
- property :id, read_only: true
20
- property :media_url, read_only: true
21
- property :image_display_height, read_only: true
22
- property :image_display_width, read_only: true
23
- property :updated_at, type: :time, read_only: true
24
- property :website_dest_url, read_only: true
25
- property :website_display_url, read_only: true
26
-
27
- property :media_key
28
- property :name
29
- property :website_title
30
- property :website_url
31
-
32
- RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/accounts/%{account_id}/cards/website"
33
- # @api private
34
- RESOURCE = "/#{TwitterAds::API_VERSION}/accounts/%{account_id}/cards/website/%{id}"
35
- # @api private
36
-
37
- def initialize(account)
38
- @account = account
39
- self
40
- end
41
-
42
- end
43
-
44
- end
45
- end