Class: TiktokBusinessApi::Resources::Adgroup

Inherits:
CrudResource show all
Defined in:
lib/tiktok_business_api/resources/adgroup.rb

Overview

AdGroup resource for the TikTok Business API

Constant Summary collapse

RESOURCE_NAME =
'adgroup'

Instance Attribute Summary

Attributes inherited from BaseResource

#client

Instance Method Summary collapse

Methods inherited from CrudResource

#create_path, #delete_path, #id_param_name, #ids_param_name, #list_all, #list_path, #resource_name, #status_update_path, #update_path

Methods inherited from BaseResource

#_http_get, #_http_post, #api_version, #base_path, #initialize, #paginate, #resource_name

Constructor Details

This class inherits a constructor from TiktokBusinessApi::Resources::BaseResource

Instance Method Details

#create(advertiser_id, params = {}) ⇒ Hash

Create a new ad group

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • params (Hash) (defaults to: {})

    Ad group parameters

Returns:

  • (Hash)

    New ad group data



18
19
20
21
22
23
24
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 18

def create(advertiser_id, params = {})
  # Ensure advertiser_id is included in the params
  params = params.merge(advertiser_id: advertiser_id)

  response = _http_post(create_path, params)
  response['data']
end

#delete(advertiser_id, adgroup_id) ⇒ Hash

Delete an ad group

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • adgroup_id (String)

    Ad group ID

Returns:

  • (Hash)

    Result



69
70
71
72
73
74
75
76
77
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 69

def delete(advertiser_id, adgroup_id)
  params = {
    advertiser_id: advertiser_id,
    adgroup_ids: [adgroup_id]
  }

  response = _http_post(delete_path, params)
  response['data']
end

#estimate_audience_size(advertiser_id, params = {}) ⇒ Hash

Estimate audience size for an ad group

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • params (Hash) (defaults to: {})

    Targeting parameters for estimation

Returns:

  • (Hash)

    Audience size estimation



84
85
86
87
88
89
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 84

def estimate_audience_size(advertiser_id, params = {})
  params = params.merge(advertiser_id: advertiser_id)

  response = _http_post('audience_size/estimate/', params)
  response['data']
end

#get(advertiser_id:, adgroup_id:) ⇒ Object



9
10
11
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 9

def get(advertiser_id:, adgroup_id:)
  list(advertiser_id: advertiser_id, filtering: {adgroup_ids: [adgroup_id]}).first
end

#list(advertiser_id:, campaign_id: nil, filtering: {}, page_size: nil, page: nil, **other_params, &block) ⇒ Object



26
27
28
29
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 26

def list(advertiser_id:, campaign_id: nil, filtering: {}, page_size: nil, page: nil, **other_params, &block)
  filtering[:campaign_ids] = [campaign_id] if campaign_id
  super(filtering: filtering, page_size: page_size, page: page, **other_params.merge(advertiser_id: advertiser_id), &block)
end

#update(advertiser_id, adgroup_id, params = {}) ⇒ Hash

Update an ad group

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • adgroup_id (String)

    Ad group ID

  • params (Hash) (defaults to: {})

    Ad group parameters to update

Returns:

  • (Hash)

    Updated ad group data



37
38
39
40
41
42
43
44
45
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 37

def update(advertiser_id, adgroup_id, params = {})
  params = params.merge(
    advertiser_id: advertiser_id,
    adgroup_id: adgroup_id
  )

  response = _http_post(update_path, params)
  response['data']
end

#update_status(advertiser_id, adgroup_id, status) ⇒ Hash

Update ad group status (enable/disable)

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • adgroup_id (String)

    Ad group ID

  • status (String)

    New status (‘ENABLE’ or ‘DISABLE’)

Returns:

  • (Hash)

    Result



53
54
55
56
57
58
59
60
61
62
# File 'lib/tiktok_business_api/resources/adgroup.rb', line 53

def update_status(advertiser_id, adgroup_id, status)
  params = {
    advertiser_id: advertiser_id,
    adgroup_ids: [adgroup_id],
    operation_status: status
  }

  response = _http_post('status/update/', params)
  response['data']
end