Twitter Ads provides an effective advertising channel that allows businesses to reach out to their potential customers through Twitter’s vast network. It enables this by providing an accessible medium to run and manage Targeted Ad Campaigns in engaging and visual forms.

Analyzing the data generated through these Campaigns can help businesses understand how to fine-tune and effectively optimize their Marketing efforts. As a result, many businesses choose to export data from Twitter Ads to databases such as MySQL in order to gain mission-critical insights. This article will help you understand the two methods that can help you transfer data from Twitter Ads to MySQL.

Solve your data replication problems with Hevo’s reliable, no-code, automated pipelines with 150+ connectors.
Get your free trial right away!

Understanding the Key Features of Twitter Ads

The key features of Twitter Ads are as follows:

  • Performance-Based Pay: Users promoting their content on Twitter only pay once they’ve achieved their Marketing objective. Whether the goal is Twitter Feed Engagement or getting the audience to visit the official website, users only pay as people take that action. Along with that, any additional engagements or organic impressions are considered as free bonuses.
  • Tweet Engager Targetting: Tweet Engager Targeting is a popular way to reach your audience in a remarkably targeted manner. With this form of Advertising, users remarket their content to people who recently saw or engaged with their content on Twitter.
  • Low Cost Per Click: Currently, advertisers find it very cheap to market their content on Twitter because of the lack of advertising competition. Since the Cost Per Click (CPC) is auction-based, advertisers do not have to pay much to promote their content.
Methods to Set up Twitter Ads to MySQL Migration

Method 1: Manual Twitter Ads to MySQL Migration

Twitter provides a utility called Twurl that helps you access the Twitter Ads API without having to build a Web Browser redirect. A Twurl command can be executed to fetch a list of Entities and metric values. The extracted data can then be loaded into MySQL.

Method 2: Twitter Ads to MySQL Migration Using Hevo Data

Hevo Data provides a hassle-free solution and helps you directly transfer data from Twitter Ads to MySQL without any intervention in an effortless manner. Hevo is fully-managed and completely automates the process of not only loading data from your desired source but also enriching the data and transforming it into an analysis-ready form without having to write a single line of code. Hevo’s pre-built integration with Twitter Ads and 100+ Sources (including 30+ free Data Sources like Twitter Ads) will take full charge of the data transfer process, allowing you to set up Twitter Ads to MySQL Migration seamlessly and focus solely on key business activities. 


Methods to Set up Twitter Ads to MySQL Migration

Users can set up Twitter Ads to MySQL Migration by implementing one of the following methods:

Method 1: Manual Twitter Ads to MySQL Migration

The steps involved in executing a data migration process from Twitter Ads to MySQL database are:

Step 1: Executing Twurl Authentication Command

  • Assuming Twurl is already installed and set up, execute the following command to authenticate your Twitter Ads account:
twurl authorize --consumer-key twitter_key --consumer-secret twitter_secret
  • Once the above command is executed, you will see a URL in the shell.
  • Copy this URL and paste it into the Web Browser.
  • It will generate a Pin Code that has to be copied from the Web Browser and pasted in Twurl shell to complete the process.

Step 2: Fetching List of Twitter Ads Entities

Before executing the next step, you need to understand the basics of how the Twitter Analytics API works. This API works on the basis of a hierarchy of Entities. The first step in fetching metrics of any Entity is to have information about the identifier of that Entity. The Entity could be a Promoted Tweet, a Promoted Account, or even Creative Media content.

An Entity Identifier is usually obtained when an Entity is created. You can easily get a list of all the Entities that were changed in the last 24 hours for your understanding. The API’s start_time and end_time parameters will help you get this. Execute the following command to get the list of Entities:

twurl -H "/6/stats/accounts/495o4564d45t/active_entities?entity=PROMOTED_TWEET&start_time=2020-04-08T00:00:00Z&end_time=2020-04-09T00:00:00Z"

In the above command, the API is trying to fetch the list of Promoted Tweets, for which engagement metrics have changed in the 24 hours from 8 April 2020 to 9 April 2020.

The result will be in JSON format similar to the following:

  "request": {
    "params": {
      "account_id": "18co4564d45t",
      "entity": "PROMOTED_TWEET",
      "start_time": "2020-04-08T00:00:00Z",
      "end_time": "2020-04-09T00:00:00Z"
  "data": [
      "entity_id": "2r1byn",
      "activity_start_time": "2020-04-08T21:55:20Z",
      "activity_end_time": "2020-04-09T04:43:56Z",
      "placements": [
      "entity_id": "4z41qy",
      "activity_start_time": "2020-04-08T09:11:18Z",
      "activity_end_time": "2020-04-08T15:42:59Z",
      "placements": [

In the resultant JSON, you will be can see two Entity Identifiers – 2r1byn and 4z41qy. You can now fetch the engagement metrics for these Entities.

Step 3: Fetching Metric Values from Twitter Ads

You can now use a command-line utility called jq to parse this JSON and extract the relevant metric values. In this case, only impressions, likes, and clicks are being extracted. The following command will access the API, pipe the output through jq and create a CSV file that can be loaded to MySQL:

twurl -H,4z41qy&start_time=2020-04-08&end_time=2020-04-15&granularity=TOTAL&placement=ALL_ON_TWITTER&metric_groups=ENGAGEMENT | jq -r ".data[] | [.id,.id_data[].metrics.impressions[0],.id_data[].metrics.likes[0],.id_data[].metrics.clicks[0]] | @csv" >> tweet_engagement.csv

In the above step, the API is fetching the engagement metrics for 7 days from 8 to 15 April 2020.

The result of this command will be a CSV file similar to the following:


Step 4: Loading CSV Data into MySQL

You can now load the data to the MySQL table. Before executing this step, you need to ensure that a table called tweet_engagements with columns for entity_id, impressions, likes, and clocks are created. Execute the following command to load the data to this table:

LOAD DATA LOCAL INFILE tweet_engagement.csv’ 
INTO TABLE tweet_engagements 
(entity_id, impressions, likes, clicks );

That concludes the basic steps in loading data manually from Twitter Ads to MySQL

Limitations of Manual Twitter Ads to MySQL Migration

The limitations of manually setting up Twitter Ads to MySQL Migration are as follows:

  • The Analytics API returns results only for a maximum of 20 Entities at one time. If there are more than 20 Entities, the application logic will have to execute this in a phased manner. 
  • The API is rate-limited. So the application logic should have a provision to keep track of Twitter Rate Status API and spawn requests without interfering with Twitter Rate Limits.
  • Analytics API returns result synchronously only for smaller time windows. For time windows of more than seven days, asynchronous APIs have to be used. 
  • The most typical requirement for businesses is to have this data continuously synced to their databases. This means a production execution should have scheduling capabilities as well as logic to handle updates, duplicates, etc. 
  • The learning curve in implementing this is steep. The developer needs to have a complete grasp of all the Twitter Ads API and their complex JSON structures to complete this.

Method 2: Twitter Ads to MySQL Migration Using Hevo Data

Hevo Logo
Image Source

Hevo Data helps you directly transfer data from Twitter Ads and various other sources to MySQL, Business Intelligence tools, Data Warehouses, or a destination of your choice in a completely hassle-free & automated manner. Hevo is fully managed and completely automates the process of not only loading data from your desired source but also enriching the data and transforming it into an analysis-ready form without having to write a single line of code. Its fault-tolerant architecture ensures that the data is handled in a secure, consistent manner with zero data loss.

Hevo takes care of all your data preprocessing needs required to set up Twitter Ads to MySQL Migration and lets you focus on key business activities and draw a much powerful insight on how to generate more leads, retain customers, and take your business to new heights of profitability. It provides a consistent & reliable solution to manage data in real-time and always have analysis-ready data in your desired destination. 

The following steps can be implemented to set up Twitter Ads to MySQL Migration using Hevo:

  • Configure Source: Connect Hevo Data with Twitter Ads by providing a unique name for your Pipeline, along with details about your Twitter Ads account such as the API Key, API Secret Key, etc.
Hevo Twitter Source
Image Source:
  • Integrate Data: Complete Twitter Ads to MySQL migration by providing information about your MySQL database and its credentials such as database name, username, and password, along with information about port number associated with your MySQL database.
Hevo MySQL Destination
Image Source:

Check Out What Makes Hevo Amazing:

  • Secure: Hevo has a fault-tolerant architecture that ensures that the data is handled in a secure, consistent manner with zero data loss.
  • Schema Management: Hevo takes away the tedious task of schema management & automatically detects schema of incoming data and maps it to the destination schema.
  • Minimal Learning: Hevo, with its simple and interactive UI, is extremely simple for new customers to work on and perform operations.
  • Hevo Is Built To Scale: As the number of sources and the volume of your data grows, Hevo scales horizontally, handling millions of records per minute with very little latency.
  • Incremental Data Load: Hevo allows the transfer of data that has been modified in real-time. This ensures efficient utilization of bandwidth on both ends.
  • Live Support: The Hevo team is available round the clock to extend exceptional support to its customers through chat, email, and support calls.
  • Live Monitoring: Hevo allows you to monitor the data flow and check where your data is at a particular point in time.


This article provided you with a step-by-step guide on how you can set up Twitter Ads to MySQL Migration manually or using Hevo. However, there are certain limitations associated with the manual method. If those limitations are not a concern to your operations, then using it is the best option but if it is, then you should consider using automated Data Integration platforms like Hevo.

Hevo Data, a No-code Data Pipeline provides you with a consistent and reliable solution to manage data transfer between a variety of sources and a wide variety of Desired Destinations with a few clicks.

Visit our Website to Explore Hevo

Hevo Data with its strong integration with 100+ sources (including 30+ free sources such as Twitter Ads) allows you to not only export data from your desired data sources & load it to the destination of your choice such as MySQL, but also transform & enrich your data to make it analysis-ready so that you can focus on your key business needs and perform insightful analysis using BI tools. It will move your data from Twitter Ads to MySQL for free.

Want to take Hevo for a spin?

SIGN UP and experience the feature-rich Hevo suite first hand. You can also have a look at the unbeatable pricing that will help you choose the right plan for your business needs.

Share your experience of moving data from Twitter Ads to MySQL in the comments section below!

Software Developer, Hevo Data

Talha is a Software Developer with over eight years of experience in the field. He is currently driving advancements in data integration at Hevo Data, where he has been instrumental in shaping a cutting-edge data integration platform for the past four years. Prior to this, he spent 4 years at Flipkart, where he played a key role in projects related to their data integration capabilities. Talha loves to explain complex information related to data engineering to his peers through writing. He has written many blogs related to data integration, data management aspects, and key challenges data practitioners face.

No-code Data Pipeline for MySQL