Utilizing Marketing APIs: Automating Coupon and Campaign Management

In e-commerce operations, coupons and promotional campaigns are key methods to boost user conversion and average order value. With the growing competition in the e-commerce market, how to effectively manage marketing campaigns and achieve automation has become a challenge for many e-commerce operators. Taobao offers a comprehensive set of marketing APIs that allow developers to programmatically create, manage, query, and clean up various promotional campaigns, enabling truly "hands-free" marketing automation. This article will introduce how to use these APIs for coupon and campaign management, achieving a fully automated marketing workflow.

1. Taobao Marketing API Structure and Authentication

1.1 Overview of the API Mechanism

The marketing-related APIs in Taobao are primarily focused on taobao.tbk.coupon.create (affiliate coupons) and various "marketing activity" APIs (such as full discount and direct price reduction). Developers must first apply for an AppKey/AppSecret in Alibaba’s affiliate platform, AliMama, and authenticate via OAuth2 or Taobao Open Platform (TOP) signature before they can call these APIs.

1.2 Signature and Authentication Example (Python)

Before calling Taobao's API, developers need to sign requests for authentication. Below is an example of how to sign and authenticate requests using Python:

import hashlib

import time

import requests

from urllib.parse import quote_plus

APP_KEY = 'YOUR_APP_KEY'

APP_SECRET = 'YOUR_APP_SECRET'

API_URL = 'https://eco.taobao.com/router/rest'

def sign(params: dict) -> str:

"""Taobao TOP MD5 signature algorithm"""

keys = sorted(params.keys())

base = APP_SECRET + ''.join(f"{k}{params[k]}" for k in keys) + APP_SECRET

return hashlib.md5(base.encode('utf-8')).hexdigest().upper()

def call_taobao_api(method: str, biz_params: dict) -> dict:

system_params = {

'method': method,

'app_key': APP_KEY,

'timestamp': time.strftime('%Y-%m-%d %H:%M:%S'),

'format': 'json',

'v': '2.0',

'sign_method': 'md5',

}

all_params = {**system_params, **biz_params}

all_params['sign'] = sign(all_params)

response = requests.post(API_URL, data=all_params, timeout=10)

return response.json()

2. Automating Coupon Creation

Affiliate coupons (promotion coupons) are a common promotional tool on Taobao. Developers can use the taobao.tbk.coupon.create API to batch create these promotion coupons. Below is an example of how to create coupons:

def create_coupon(item_id: str, coupon_amount: int, total_num: int, start_time: str, end_time: str):

biz = {

'num_iids': item_id,

'amount': coupon_amount,

'count': total_num,

'start_time': start_time, # "2024-05-01 00:00:00"

'end_time': end_time # "2024-05-07 23:59:59"

}

result = call_taobao_api('taobao.tbk.coupon.create', biz)

if 'tbk_coupon_create_response' in result:

return result['tbk_coupon_create_response']['data']

else:

raise Exception(result)

# Example call

coupon_info = create_coupon(

item_id='1234567890',

coupon_amount=20,

total_num=1000,

start_time='2024-05-01 00:00:00',

end_time='2024-05-07 23:59:59'

)

print('Coupon created:', coupon_info)

With the above example, developers can batch create coupons, set amounts, quantities, and validity periods.

3. Batch Querying Campaign Status and Usage Statistics

Once coupons are created, developers can use the taobao.tbk.coupon.get API to query the status and remaining quantity of the coupons. Here is an example of querying coupon status and usage statistics:

def query_coupon(coupon_id: str):

biz = {'coupon_id': coupon_id}

result = call_taobao_api('taobao.tbk.coupon.get', biz)

return result.get('tbk_coupon_get_response', {}).get('results', [])

# Example

stats = query_coupon(coupon_info['coupon_id'])

print('Coupon stats:', stats)

For other promotional activities on the platform (such as "full discount" and "direct price reduction" activities), developers can use tmall.marketing.activity.add, tmall.marketing.activity.get, and other APIs for similar queries.

4. Periodically Cleaning Expired Campaigns

To avoid expired campaigns occupying resources, developers can periodically call the delete or invalidate API to clean up expired campaigns. Here is an example of cleaning up expired coupons:

def expire_coupon(coupon_id: str):

biz = {'coupon_id': coupon_id}

result = call_taobao_api('taobao.tbk.coupon.delete', biz)

return result.get('tbk_coupon_delete_response', {})

# Clean up expired coupons daily at midnight

import schedule, time

def cleanup_job():

# Query all expired coupons (assumed to have a local cache or DB list)

expired_ids = get_expired_coupon_ids()

for cid in expired_ids:

expire_coupon(cid)

print(f'Coupon {cid} expired.')

schedule.every().day.at("00:10").do(cleanup_job)

while True:

schedule.run_pending()

time.sleep(30)

This script cleans up expired coupons by calling the expire_coupon function, ensuring that expired coupons are removed and system resources are not wasted.

5. Integrating Scheduled Tasks for Full Workflow Automation

Developers can integrate the "create—query—statistics—cleanup" process into a single daily operation script and schedule it using cron, Airflow, or Kubernetes CronJob. This enables a fully automated, "one-click start," and "hands-free" marketing process.

By automating the entire promotional campaign management process, developers ensure that tasks such as coupon creation, querying, and expired cleanup are handled without manual intervention, significantly improving efficiency.

6. Error Handling and Logging

When automating tasks, error handling and logging management are essential. Below are some suggestions:

  • Retry Mechanism: For retryable creation requests, use an exponential backoff retry strategy to avoid process interruptions due to temporary failures.

  • Logging and Alerts: Trigger notifications (via Email or Slack) in case of critical steps like creation failures or query anomalies, allowing issues to be handled in real-time.

  • Monitoring Metrics: Use Prometheus to collect monitoring metrics such as success rate, execution time, and remaining coupon quantities to keep track of system performance and optimize when necessary.

Conclusion

By automating coupon and campaign management, e-commerce operators can delegate repetitive tasks to scripted automation, saving significant manpower and improving operational efficiency. With Taobao's marketing APIs, scheduling management, and robust error handling mechanisms, developers can build a highly efficient and reliable marketing automation platform that continuously drives user acquisition and engagement.

Articles related to APIs :

If you need the Taobao API, feel free to contact us : support@luckdata.com