twitter-ads 5.2.0 → 6.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.
- checksums.yaml +4 -4
- data/lib/twitter-ads.rb +4 -1
- data/lib/twitter-ads/account.rb +9 -8
- data/lib/twitter-ads/campaign/campaign.rb +1 -2
- data/lib/twitter-ads/campaign/funding_instrument.rb +1 -2
- data/lib/twitter-ads/campaign/line_item.rb +2 -3
- data/lib/twitter-ads/campaign/organic_tweet.rb +1 -3
- data/lib/twitter-ads/campaign/targeting_criteria.rb +0 -1
- data/lib/twitter-ads/campaign/tweet.rb +4 -49
- data/lib/twitter-ads/client.rb +2 -2
- data/lib/twitter-ads/creative/account_media.rb +4 -6
- data/lib/twitter-ads/creative/draft_tweet.rb +40 -0
- data/lib/twitter-ads/creative/image_app_download_card.rb +2 -2
- data/lib/twitter-ads/creative/image_conversation_card.rb +3 -2
- data/lib/twitter-ads/creative/media_creative.rb +1 -2
- data/lib/twitter-ads/creative/media_library.rb +2 -4
- data/lib/twitter-ads/creative/promoted_account.rb +1 -2
- data/lib/twitter-ads/creative/promoted_tweet.rb +1 -2
- data/lib/twitter-ads/creative/scheduled_tweet.rb +1 -12
- data/lib/twitter-ads/creative/tweets.rb +52 -0
- data/lib/twitter-ads/creative/video_app_download_card.rb +4 -6
- data/lib/twitter-ads/creative/video_conversation_card.rb +6 -6
- data/lib/twitter-ads/creative/video_website_card.rb +3 -5
- data/lib/twitter-ads/creative/website_card.rb +2 -2
- data/lib/twitter-ads/cursor.rb +6 -0
- data/lib/twitter-ads/enum.rb +10 -5
- data/lib/twitter-ads/error.rb +5 -15
- data/lib/twitter-ads/http/request.rb +30 -1
- data/lib/twitter-ads/http/response.rb +1 -13
- data/lib/twitter-ads/resources/analytics.rb +99 -47
- data/lib/twitter-ads/resources/dsl.rb +8 -1
- data/lib/twitter-ads/restapi.rb +29 -0
- data/lib/twitter-ads/settings/tax.rb +13 -1
- data/lib/twitter-ads/targeting_criteria/conversation.rb +23 -0
- data/lib/twitter-ads/utils.rb +23 -0
- data/lib/twitter-ads/version.rb +1 -1
- data/spec/fixtures/tweet_previews.json +23 -0
- data/spec/twitter-ads/campaign/targeting_criteria_spec.rb +0 -1
- data/spec/twitter-ads/campaign/tweet_spec.rb +0 -59
- data/spec/twitter-ads/client_spec.rb +17 -1
- data/spec/twitter-ads/creative/tweet_previews_spec.rb +41 -0
- data/spec/twitter-ads/rate_limit_spec.rb +247 -0
- data/spec/twitter-ads/retry_count_spec.rb +61 -0
- metadata +14 -17
- data/lib/twitter-ads/audiences/audience_intelligence.rb +0 -68
- data/spec/fixtures/tweet_preview.json +0 -24
- data/spec/twitter-ads/creative/account_media_spec.rb +0 -32
- data/spec/twitter-ads/creative/image_app_download_card_spec.rb +0 -43
- data/spec/twitter-ads/creative/image_conversation_card_spec.rb +0 -40
- data/spec/twitter-ads/creative/video_app_download_card_spec.rb +0 -42
- data/spec/twitter-ads/creative/video_conversation_card_spec.rb +0 -51
- data/spec/twitter-ads/creative/website_card_spec.rb +0 -42
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '05206182b0393791a3d5541b133b276f37fbd7bd440db7977b5fb7f17b3c3abc'
|
4
|
+
data.tar.gz: 72617e530b12e11efed8b8c33a259a5aaa26b50088da58f66e9e9c234047bcb1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce83a7aec3141813b2b93050bd192bb235b4bf8ff4318c2c8807b5bc1de214ccfe5cae7d31c8bacbf8b918850e637d2e72618682679f5ef7f37dc40550268246
|
7
|
+
data.tar.gz: 27389f140dc023a6eafc4bc0a758bc6105fe502fab32e3f5b5c6c8ecbb6c6811b0b4542bd0b0ed227760c506d16c3d3f7f1a24909ceb543681c5a8426c0efa5e
|
data/lib/twitter-ads.rb
CHANGED
@@ -27,7 +27,8 @@ require 'twitter-ads/resources/batch'
|
|
27
27
|
require 'twitter-ads/http/request'
|
28
28
|
require 'twitter-ads/http/response'
|
29
29
|
|
30
|
-
require 'twitter-ads/
|
30
|
+
require 'twitter-ads/restapi.rb'
|
31
|
+
|
31
32
|
require 'twitter-ads/audiences/tailored_audience'
|
32
33
|
|
33
34
|
require 'twitter-ads/campaign/app_list'
|
@@ -63,12 +64,14 @@ require 'twitter-ads/creative/media_library'
|
|
63
64
|
require 'twitter-ads/creative/promoted_account'
|
64
65
|
require 'twitter-ads/creative/promoted_tweet'
|
65
66
|
require 'twitter-ads/creative/scheduled_tweet'
|
67
|
+
require 'twitter-ads/creative/draft_tweet'
|
66
68
|
require 'twitter-ads/creative/video_app_download_card'
|
67
69
|
require 'twitter-ads/creative/video_conversation_card'
|
68
70
|
require 'twitter-ads/creative/video_website_card'
|
69
71
|
require 'twitter-ads/creative/website_card'
|
70
72
|
require 'twitter-ads/creative/poll_cards'
|
71
73
|
require 'twitter-ads/creative/tweet_previews'
|
74
|
+
require 'twitter-ads/creative/tweets'
|
72
75
|
|
73
76
|
require 'twitter-ads/targeting/reach_estimate'
|
74
77
|
|
data/lib/twitter-ads/account.rb
CHANGED
@@ -17,14 +17,13 @@ module TwitterAds
|
|
17
17
|
property :updated_at, type: :time, read_only: true
|
18
18
|
property :deleted, type: :bool, read_only: true
|
19
19
|
|
20
|
-
RESOURCE_COLLECTION
|
21
|
-
|
22
|
-
RESOURCE
|
23
|
-
|
24
|
-
FEATURES
|
25
|
-
|
26
|
-
SCOPED_TIMELINE
|
27
|
-
'accounts/%{id}/scoped_timeline' # @api private
|
20
|
+
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
|
21
|
+
'accounts' # @api private
|
22
|
+
RESOURCE = "/#{TwitterAds::API_VERSION}/" \
|
23
|
+
'accounts/%{id}' # @api private
|
24
|
+
FEATURES = "/#{TwitterAds::API_VERSION}/" \
|
25
|
+
'accounts/%{id}/features' # @api private
|
26
|
+
SCOPED_TIMELINE = '/5/accounts/%{id}/scoped_timeline' # @api private
|
28
27
|
AUTHENTICATED_USER_ACCESS = "/#{TwitterAds::API_VERSION}/" \
|
29
28
|
'accounts/%{id}/authenticated_user_access' # @api private
|
30
29
|
|
@@ -257,6 +256,8 @@ module TwitterAds
|
|
257
256
|
#
|
258
257
|
# @since 0.2.3
|
259
258
|
def scoped_timeline(id, opts = {})
|
259
|
+
TwitterAds::Utils.deprecated(
|
260
|
+
'Scoped Timeline')
|
260
261
|
params = { user_id: id }.merge!(opts)
|
261
262
|
resource = SCOPED_TIMELINE % { id: @id }
|
262
263
|
request = Request.new(client, :get, resource, params: params)
|
@@ -2,12 +2,11 @@
|
|
2
2
|
# Copyright (C) 2019 Twitter, Inc.
|
3
3
|
|
4
4
|
module TwitterAds
|
5
|
-
class Campaign
|
5
|
+
class Campaign < Analytics
|
6
6
|
|
7
7
|
include TwitterAds::DSL
|
8
8
|
include TwitterAds::Resource
|
9
9
|
include TwitterAds::Persistence
|
10
|
-
include TwitterAds::Analytics
|
11
10
|
include TwitterAds::Batch
|
12
11
|
|
13
12
|
attr_reader :account
|
@@ -2,12 +2,11 @@
|
|
2
2
|
# Copyright (C) 2019 Twitter, Inc.
|
3
3
|
|
4
4
|
module TwitterAds
|
5
|
-
class LineItem
|
5
|
+
class LineItem < Analytics
|
6
6
|
|
7
7
|
include TwitterAds::DSL
|
8
8
|
include TwitterAds::Resource
|
9
9
|
include TwitterAds::Persistence
|
10
|
-
include TwitterAds::Analytics
|
11
10
|
include TwitterAds::Batch
|
12
11
|
|
13
12
|
attr_reader :account
|
@@ -40,7 +39,7 @@ module TwitterAds
|
|
40
39
|
property :advertiser_user_id
|
41
40
|
property :bid_type
|
42
41
|
property :tracking_tags
|
43
|
-
property :
|
42
|
+
property :audience_expansion
|
44
43
|
|
45
44
|
# sdk only
|
46
45
|
property :to_delete, type: :bool
|
@@ -2,66 +2,21 @@
|
|
2
2
|
# Copyright (C) 2019 Twitter, Inc.
|
3
3
|
|
4
4
|
module TwitterAds
|
5
|
-
|
5
|
+
class Tweet < Analytics
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
|
11
|
-
'accounts/%{account_id}/tweet/preview' # @api private
|
12
|
-
RESOURCE = "/#{TwitterAds::API_VERSION}/" \
|
13
|
-
'accounts/%{account_id}/tweet/preview/%{id}' # @api private
|
14
|
-
RESOURCE_CREATE = "/#{TwitterAds::API_VERSION}/" \
|
15
|
-
'accounts/%{account_id}/tweet' # @api private
|
7
|
+
RESOURCE_CREATE = "/#{TwitterAds::API_VERSION}/" \
|
8
|
+
'accounts/%{account_id}/tweet' # @api private
|
16
9
|
|
17
10
|
class << self
|
18
11
|
|
19
|
-
# Returns an HTML preview of a tweet, either new or existing
|
20
|
-
#
|
21
|
-
# @example
|
22
|
-
# Tweet.preview(account, text: 'potatoes can be deadly...')
|
23
|
-
# Tweet.preview(account, id: 634798319504617472)
|
24
|
-
#
|
25
|
-
# @param client [Client] The Client object instance.
|
26
|
-
# @param account [Account] The Account object instance.
|
27
|
-
# @param opts [Hash] A hash of options.
|
28
|
-
#
|
29
|
-
# @option opts [Integer] :id The ID of an existing Tweet you want to preview.
|
30
|
-
# @option opts [String] :text The text of your status update.
|
31
|
-
# @option opts [Array] :media_ids A list of up to four media IDs to associate with the Tweet.
|
32
|
-
# @option opts [String] :card_id The base-36 ID of a revenue card to be embedded in the Tweet.
|
33
|
-
# @option opts [String] :preview_target The target to render the Tweet preview
|
34
|
-
# for (eg. TWITTER_TIMELINES).
|
35
|
-
#
|
36
|
-
# @return [Array] An array containing platforms & their respective tweet previews
|
37
|
-
#
|
38
|
-
# @since 0.2.0
|
39
|
-
# @see https://dev.twitter.com/ads/reference/get/accounts/%3Aaccount_id/tweet/preview
|
40
|
-
def preview(account, opts = {})
|
41
|
-
resource = opts.key?(:id) ? RESOURCE : RESOURCE_COLLECTION
|
42
|
-
resource = resource % { account_id: account.id, id: opts.delete(:id) }
|
43
|
-
|
44
|
-
# url encodes status message if present
|
45
|
-
opts[:text] = URI.escape(opts[:text]) if opts.key?(:text)
|
46
|
-
|
47
|
-
# handles array to string conversion for media IDs
|
48
|
-
if opts.key?(:media_ids) && opts[:media_ids].respond_to?(:join)
|
49
|
-
opts[:media_ids] = opts[:media_ids].join(',')
|
50
|
-
end
|
51
|
-
|
52
|
-
response = TwitterAds::Request.new(account.client, :get, resource, params: opts).perform
|
53
|
-
response.body[:data]
|
54
|
-
end
|
55
|
-
|
56
12
|
# Creates a "Promoted-Only" Tweet using the specialized Ads API end point.
|
57
13
|
#
|
58
14
|
# @param opts [Hash] A hash of options.
|
59
15
|
#
|
60
16
|
# @option opts [String] :text The main Tweet body.
|
61
|
-
# @option opts [Array] :
|
17
|
+
# @option opts [Array] :media_keys A list of media keys (up to 4) to associate with the Tweet.
|
62
18
|
# @option opts [Integer] :as_user_id The user ID whom you are posting the Tweet on behalf of.
|
63
19
|
# @option opts [Boolean] :trim_user Excludes the user object from the hydrated Tweet response.
|
64
|
-
# @option opts [String] :video_id The Video UUID to be associated with thie Tweet.
|
65
20
|
# @option opts [String] :video_title An optional title to be included.
|
66
21
|
# @option opts [String] :video_description An optional description to be included.
|
67
22
|
# @option opts [String] :video_cta An optional CTA value for the associated video.
|
data/lib/twitter-ads/client.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
module TwitterAds
|
5
5
|
|
6
|
-
API_VERSION = '
|
6
|
+
API_VERSION = '6'
|
7
7
|
|
8
8
|
# The Ads API Client class which functions as a
|
9
9
|
# container for basic API consumer information.
|
@@ -34,7 +34,7 @@ module TwitterAds
|
|
34
34
|
@consumer_secret = consumer_secret
|
35
35
|
@access_token = access_token
|
36
36
|
@access_token_secret = access_token_secret
|
37
|
-
@options = opts
|
37
|
+
@options = opts.fetch(:options, {})
|
38
38
|
validate
|
39
39
|
self
|
40
40
|
end
|
@@ -12,15 +12,13 @@ module TwitterAds
|
|
12
12
|
|
13
13
|
attr_reader :account
|
14
14
|
|
15
|
-
property :created_at, type: :time, read_only: true
|
16
15
|
property :deleted, type: :bool, read_only: true
|
16
|
+
property :created_at, type: :time, read_only: true
|
17
|
+
property :updated_at, type: :time, read_only: true
|
17
18
|
property :id, read_only: true
|
19
|
+
property :creative_type, read_only: true
|
20
|
+
property :media_key, read_only: true
|
18
21
|
property :media_url, read_only: true
|
19
|
-
property :updated_at, type: :time, read_only: true
|
20
|
-
|
21
|
-
property :creative_type
|
22
|
-
property :media_id
|
23
|
-
property :video_id
|
24
22
|
|
25
23
|
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
|
26
24
|
'accounts/%{account_id}/account_media' # @api private
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Copyright (C) 2019 Twitter, Inc.
|
3
|
+
|
4
|
+
module TwitterAds
|
5
|
+
module Creative
|
6
|
+
|
7
|
+
class DraftTweet
|
8
|
+
|
9
|
+
include TwitterAds::DSL
|
10
|
+
include TwitterAds::Resource
|
11
|
+
include TwitterAds::Persistence
|
12
|
+
|
13
|
+
attr_reader :account
|
14
|
+
|
15
|
+
# read-only
|
16
|
+
property :id, read_only: true
|
17
|
+
property :id_str, read_only: true
|
18
|
+
property :created_at, type: :time, read_only: true
|
19
|
+
property :updated_at, type: :time, read_only: true
|
20
|
+
property :user_id, read_only: true
|
21
|
+
# writable
|
22
|
+
property :as_user_id
|
23
|
+
property :card_uri
|
24
|
+
property :media_keys
|
25
|
+
property :nullcast, type: :bool
|
26
|
+
property :text
|
27
|
+
|
28
|
+
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
|
29
|
+
'accounts/%{account_id}/draft_tweets' # @api private
|
30
|
+
RESOURCE = "/#{TwitterAds::API_VERSION}/" \
|
31
|
+
'accounts/%{account_id}/draft_tweets/%{id}' # @api private
|
32
|
+
|
33
|
+
def initialize(account)
|
34
|
+
@account = account
|
35
|
+
self
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -20,7 +20,7 @@ module TwitterAds
|
|
20
20
|
property :image_display_height, read_only: true
|
21
21
|
property :image_display_width, read_only: true
|
22
22
|
property :updated_at, type: :time, read_only: true
|
23
|
-
property :
|
23
|
+
property :media_url, read_only: true
|
24
24
|
|
25
25
|
property :country_code
|
26
26
|
property :app_cta
|
@@ -31,7 +31,7 @@ module TwitterAds
|
|
31
31
|
property :ipad_app_id
|
32
32
|
property :ipad_deep_link
|
33
33
|
property :name
|
34
|
-
property :
|
34
|
+
property :media_key
|
35
35
|
|
36
36
|
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
|
37
37
|
'accounts/%{account_id}/cards/image_app_download' # @api private
|
@@ -19,13 +19,14 @@ module TwitterAds
|
|
19
19
|
property :id, read_only: true
|
20
20
|
property :image, read_only: true
|
21
21
|
property :updated_at, type: :time, read_only: true
|
22
|
+
property :media_url, read_only: true
|
22
23
|
|
23
|
-
property :
|
24
|
+
property :unlocked_image_media_key
|
24
25
|
property :first_cta
|
25
26
|
property :first_cta_tweet
|
26
27
|
property :fourth_cta
|
27
28
|
property :fourth_cta_tweet
|
28
|
-
property :
|
29
|
+
property :media_key
|
29
30
|
property :name
|
30
31
|
property :second_cta
|
31
32
|
property :second_cta_tweet
|
@@ -4,12 +4,11 @@
|
|
4
4
|
module TwitterAds
|
5
5
|
module Creative
|
6
6
|
|
7
|
-
class MediaCreative
|
7
|
+
class MediaCreative < Analytics
|
8
8
|
|
9
9
|
include TwitterAds::DSL
|
10
10
|
include TwitterAds::Resource
|
11
11
|
include TwitterAds::Persistence
|
12
|
-
include TwitterAds::Analytics
|
13
12
|
|
14
13
|
attr_reader :account
|
15
14
|
|
@@ -22,17 +22,15 @@ module TwitterAds
|
|
22
22
|
property :media_url, read_only: true
|
23
23
|
property :tweeted, type: :bool, read_only: true
|
24
24
|
property :updated_at, type: :time, read_only: true
|
25
|
-
property :
|
25
|
+
property :poster_media_url, read_only: true
|
26
26
|
|
27
27
|
# writable
|
28
|
-
property :media_category
|
29
|
-
property :media_id
|
30
28
|
property :media_key
|
31
29
|
property :description
|
32
30
|
property :file_name
|
33
31
|
property :name
|
34
32
|
property :poster_image_media_id
|
35
|
-
property :
|
33
|
+
property :poster_media_key
|
36
34
|
property :title
|
37
35
|
|
38
36
|
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" \
|
@@ -4,12 +4,11 @@
|
|
4
4
|
module TwitterAds
|
5
5
|
module Creative
|
6
6
|
|
7
|
-
class PromotedAccount
|
7
|
+
class PromotedAccount < Analytics
|
8
8
|
|
9
9
|
include TwitterAds::DSL
|
10
10
|
include TwitterAds::Resource
|
11
11
|
include TwitterAds::Persistence
|
12
|
-
include TwitterAds::Analytics
|
13
12
|
|
14
13
|
attr_reader :account
|
15
14
|
|
@@ -4,12 +4,11 @@
|
|
4
4
|
module TwitterAds
|
5
5
|
module Creative
|
6
6
|
|
7
|
-
class PromotedTweet
|
7
|
+
class PromotedTweet < Analytics
|
8
8
|
|
9
9
|
include TwitterAds::DSL
|
10
10
|
include TwitterAds::Resource
|
11
11
|
include TwitterAds::Persistence
|
12
|
-
include TwitterAds::Analytics
|
13
12
|
|
14
13
|
attr_reader :account
|
15
14
|
|
@@ -17,7 +17,6 @@ module TwitterAds
|
|
17
17
|
property :created_at, type: :time, read_only: true
|
18
18
|
property :id, read_only: true
|
19
19
|
property :id_str, read_only: true
|
20
|
-
property :media_keys, read_only: true
|
21
20
|
property :scheduled_status, read_only: true
|
22
21
|
property :tweet_id, read_only: true
|
23
22
|
property :updated_at, type: :time, read_only: true
|
@@ -26,7 +25,7 @@ module TwitterAds
|
|
26
25
|
# writable
|
27
26
|
property :as_user_id
|
28
27
|
property :card_uri
|
29
|
-
property :
|
28
|
+
property :media_keys
|
30
29
|
property :nullcast, type: :bool
|
31
30
|
property :scheduled_at, type: :time
|
32
31
|
property :text
|
@@ -35,16 +34,6 @@ module TwitterAds
|
|
35
34
|
'accounts/%{account_id}/scheduled_tweets' # @api private
|
36
35
|
RESOURCE = "/#{TwitterAds::API_VERSION}/" \
|
37
36
|
'accounts/%{account_id}/scheduled_tweets/%{id}' # @api private
|
38
|
-
PREVIEW = "/#{TwitterAds::API_VERSION}/" \
|
39
|
-
'accounts/%{account_id}/scheduled_tweets/preview/%{id}' # @api private
|
40
|
-
|
41
|
-
def preview(account, opts = {})
|
42
|
-
if @id
|
43
|
-
resource = self.class::PREVIEW % { account_id: account.id, id: id }
|
44
|
-
response = TwitterAds::Request.new(account.client, :get, resource, params: opts).perform
|
45
|
-
response.body[:data]
|
46
|
-
end
|
47
|
-
end
|
48
37
|
|
49
38
|
def initialize(account)
|
50
39
|
@account = account
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Copyright (C) 2019 Twitter, Inc.
|
3
|
+
|
4
|
+
module TwitterAds
|
5
|
+
module Creative
|
6
|
+
|
7
|
+
class Tweets
|
8
|
+
|
9
|
+
include TwitterAds::DSL
|
10
|
+
include TwitterAds::Resource
|
11
|
+
|
12
|
+
attr_reader :account
|
13
|
+
|
14
|
+
RESOURCE_COLLECTION = "/#{TwitterAds::API_VERSION}/" +
|
15
|
+
'accounts/%{account_id}/tweets' # @api private
|
16
|
+
|
17
|
+
# Retrieve Tweet details for the account's full promotable user (default)
|
18
|
+
# or the user specified in the user_id parameter.
|
19
|
+
#
|
20
|
+
# @example
|
21
|
+
# tweets = TwitterAds::Creative::Tweets.all(
|
22
|
+
# account,
|
23
|
+
# tweet_type: 'PUBLISHED',
|
24
|
+
# tweet_ids: %w(1122911801354510336 1102836745790316550),
|
25
|
+
# timeline_type: 'ORGANIC'
|
26
|
+
# )
|
27
|
+
#
|
28
|
+
# @param account [Account] The Account object instance.
|
29
|
+
# @param tweet_type [String] The Tweet type for the specified tweet_ids.
|
30
|
+
# @option opts [Int] :count The number of records to try and retrieve per distinct request.
|
31
|
+
# @option opts [String] :cursor A cursor to get the next page of results.
|
32
|
+
# @option opts [String] :timeline_type The granularity to use (default: NULLCAST).
|
33
|
+
# @option opts [Boolean] :trim_user Whether to exclude the user object
|
34
|
+
# in the Tweet response (default: false).
|
35
|
+
# @option opts [Array] :tweet_ids A collection of tweet IDs to be fetched.
|
36
|
+
# @option opts [Long] :user_id The user ID to scope Tweets to.
|
37
|
+
#
|
38
|
+
# @return A list of tweets details.
|
39
|
+
#
|
40
|
+
# @see https://developer.twitter.com/en/docs/ads/creatives/api-reference/tweets#get-accounts-account-id-tweets
|
41
|
+
# @since 6.0.0
|
42
|
+
|
43
|
+
def self.all(account, opts = {})
|
44
|
+
params = TwitterAds::Utils.flatten_params(opts)
|
45
|
+
resource = self::RESOURCE_COLLECTION % { account_id: account.id }
|
46
|
+
request = Request.new(account.client, :get, resource, params: params)
|
47
|
+
Cursor.new(nil, request, init_with: [account])
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|