Class: TiktokBusinessApi::Resources::Campaign

Inherits:
BaseResource
  • Object
show all
Defined in:
lib/tiktok_business_api/resources/campaign.rb

Overview

Campaign resource for the TikTok Business API

Instance Attribute Summary

Attributes inherited from BaseResource

#client

Instance Method Summary collapse

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 campaign

Parameters:

  • advertiser_id (String)

    Advertiser ID

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

    Campaign parameters

Returns:

  • (Hash)

    New campaign data



12
13
14
15
16
17
18
# File 'lib/tiktok_business_api/resources/campaign.rb', line 12

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

  response = post('create/', params)
  response['data']
end

#delete(advertiser_id, campaign_id) ⇒ Hash

Delete a campaign

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • campaign_id (String)

    Campaign ID

Returns:

  • (Hash)

    Result



88
89
90
91
92
93
94
95
96
# File 'lib/tiktok_business_api/resources/campaign.rb', line 88

def delete(advertiser_id, campaign_id)
  params = {
    advertiser_id: advertiser_id,
    campaign_ids: [campaign_id]
  }

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

#get(advertiser_id, campaign_id) ⇒ Hash

Get a campaign by ID

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • campaign_id (String)

    Campaign ID

Returns:

  • (Hash)

    Campaign data



38
39
40
41
42
43
44
45
46
47
# File 'lib/tiktok_business_api/resources/campaign.rb', line 38

def get(advertiser_id, campaign_id)
  params = {
    advertiser_id: advertiser_id,
    campaign_ids: [campaign_id]
  }

  response = _http_get('get/', params)
  campaigns = response.dig('data', 'list') || []
  campaigns.first
end

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

Get a list of campaigns

Parameters:

  • advertiser_id (String)

    Advertiser ID

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

    Filter parameters

Returns:

  • (Hash)

    Campaign list response



25
26
27
28
29
30
31
# File 'lib/tiktok_business_api/resources/campaign.rb', line 25

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

  response = _http_get('get/', params)
  response['data']
end

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

Update a campaign

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • campaign_id (String)

    Campaign ID

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

    Campaign parameters to update

Returns:

  • (Hash)

    Updated campaign data



55
56
57
58
59
60
61
62
63
64
# File 'lib/tiktok_business_api/resources/campaign.rb', line 55

def update(advertiser_id, campaign_id, params = {})
  # Ensure required parameters are included
  params = params.merge(
    advertiser_id: advertiser_id,
    campaign_id: campaign_id
  )

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

#update_status(advertiser_id, campaign_id, status) ⇒ Hash

Update campaign status (enable/disable)

Parameters:

  • advertiser_id (String)

    Advertiser ID

  • campaign_id (String)

    Campaign ID

  • status (String)

    New status (‘ENABLE’ or ‘DISABLE’)

Returns:

  • (Hash)

    Result



72
73
74
75
76
77
78
79
80
81
# File 'lib/tiktok_business_api/resources/campaign.rb', line 72

def update_status(advertiser_id, campaign_id, status)
  params = {
    advertiser_id: advertiser_id,
    campaign_ids: [campaign_id],
    operation_status: status
  }

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