Endpoints
Ads Campaign Structure
Each client should attach the Facebook account to the WABA before the partner can work with data from META. See Meta's Official Documentation about Ads Campaign Structure.
Configuring Tracking Keywords
Activate CTWA-tracking for stack (number) before configure conversions. See How to manage the tracking of Signals API.
To effectively use this API, it is essential to configure the appropriate keywords that will be tracked.
See Trackable Events (Keywords).
Best Practices
Here are some Best Practices that you can follow to configure keywords for the Signals API:
Define your campaign objectives: Before you begin configuring keywords, it is essential to have a clear understanding of your campaign objectives. This will help you determine the types of keywords that you should track.
Identify relevant keywords: Once you have defined your campaign objectives, you can start identifying relevant keywords. These are the words and phrases that users are likely to search for when looking for products or services related to your campaign. Try to configure "unique" keywords to track - it will help avoid false-positive results
Configure the Signals API: After identifying keywords, you can configure the Signals API to track the performance of each group of keywords.
Monitor performance: Once you have configured the Signals API to track your keywords, it is important to monitor performance regularly. This will help you identify areas where you need to make changes to optimize your campaigns.
Analyzing Results
The Signals API provides the capability to read data at various levels, offering flexibility and granularity in the data you can access. Depending on your use case, you can choose to read data at the campaign, ad group, ad, or keyword level.
Ad Overview: This provides an overview of your ad campaign's performance, including metrics such as impressions, clicks, and spend. This information is updated on a daily basis, allowing you to stay up-to-date with your campaign's progress.
Ad Daily Insights: Detailed day-by-day information is available to help you compare campaign results over time. This allows you to identify trends and patterns in your campaign's performance and make informed decisions about how to optimize your advertising efforts. This information is updated on a daily basis.
Conversion Insights: The API provides summary statistics per conversion, allowing you to track how well your keywords are performing. This information is updated on a daily basis, giving you insights into your campaign's conversion rates.
Events List: For granular information about each conversion event, the API provides an events list that is updated instantly. This feature allows you to track individual events and analyze their impact on your campaign's overall performance.
Signals Endpoints
Base-URL
Retrieve Client's Facebook Accounts IDs
To retrieve the client_id
of clients - check Get List of Clients.
Important! Make sure you use HUB Base URL prefix for Get List of Clients.
Signals API don't support /partners endpoint.
Retrieve list of attached Facebook accounts of the client
GET
https://api.signals.360dialog.io/v1/clients/{client_id}/facebook-accounts
Send a GET
request and pick one Facebook account. In case of empty list - ask client to attach Facebook account first.
Retrieve list of Ad accounts related to the client's Facebook account
GET
https://api.signals.360dialog.io/v1/clients/{client_id}/facebook-accounts/{facebook_account}
Send a GET
request and pick the Ad account.
Retrieve list of Ads related to client's Ad account
GET
https://api.signals.360dialog.io/v1/app/{app_id}/ads/account/{ad_account_id}
Send a GET
request and read list of Ads.
To work with pagination concept: offset
and limit
params are available.
Query Parameters
schema
For assistance with Signals endpoints, please contact our Support Team.
Meta Ads
Get Ads
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/ads/account/{ad_account_id}
Return paginated ad list for given app_id
and fb ad_account_id
Request Example
curl --request GET
--url [base-url] /v1/clients/client_id/apps/app_id/ads/account/ad_account_id
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Query Parameters
Get Ad
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/ads/{ad_id}
Return ad by id
and app_id
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/ads/ad_id
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Get Ads Insights
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/ads/{ad_id}/insights
Return Multiple Ad Insights from Meta for given app_id
, ad_id
and date intervals
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/ads/ad_id/insights
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Refresh Ads Insights
POST
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/ads/account/{ad_account_id}/refresh
Refresh Ad Insights for given ad account
Request Example
curl --request POST
--url [base-url]/v1/clients/{client_id}/apps/{app_id}/ads/account/{ad_account_id}/refresh
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Refresh Ad Insights
POST
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/ads/{ad_id}/refresh
Refresh Ad insights for given ad
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/ads/ad_id/refresh
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Meta Campaigns
Get Campaigns
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/campaigns/account/{ad_account_id}
Return paginated Campaign list for given app_id
and ad_account_id
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/campaigns/account/ad_account_id
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Get Campaign
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/campaigns/{campaign_id}
Return campaign by id
and app_id
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/campaigns/campaign_id
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Get Campaign Insights
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/campaigns/{campaign_id}/insights
Return campaign insights for given app_id
, ad_id
and date intervals
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/campaigns/campaign_id/insights
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Refresh Campaigns Insights
POST
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/campaigns/account/{ad_account_id}/refresh
Refresh campaign insights for given Ad Account
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/campaigns/account/ad_account_id/refresh
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Refresh Campaign Insights
POST
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/campaigns/{campaign_id}/refresh
Refresh campaign insights for given Campaign
Request Example
curl --request POST
--url [base-url]/v1/clients/{client_id}/apps/{app_id}/campaigns/{campaign_id}/refresh
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Events
Events are single instances within your conversion funnel.
Once enabled, Signals automatically tracks default events: button
, button_reply
, list_reply,
conversation
, engagement
, so there is no need for pre-configuration.
You also have the flexibility to create text-based conversions at any time by using the Event type "conversation
" and specifying the Keyword. To set up the Conversion event, you can use the endpoint described below.
Currently, the tracking of a "Conversation" Event is limited to incoming messages from outbound sources. We are actively working to enable tracking for messages sent by the business in the near future.
Create converted event
POST
[signals-base-url]/v1/clients/client_id/apps/app_id/converted_events
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/converted_events
--header 'Accept: application/json'
--header 'Authorization: Bearer'
--header 'Content-Type: application/json'
--data '{ "campaign_id": "23851172049950328", "type": "button", "type_id": "63c14b9487dd821c0be8a0b6", "type_value": "product ordered"
Path Parameters
Request Body
Get Events Types
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/event_types
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/event_types
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'
Path Parameters
Query Parameters
Get Events
GET
[signals-base-url]v1/clients/{client_id}/apps/{app_id}/events
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/events
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Query Parameters
Export Events
GET
[signals-base-url]v1/clients/{client_id}/apps/{app_id}/events/export
Export events in a CSV file
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/events/export
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'
Path Parameters
Query Parameters
Get Event Stats
GET
[signals-base-url]v1/clients/{client_id}/apps/{app_id}/standalone-events-stats
Return stats from standalone Events
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/standalone-events-stats
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'
Path Parameters
If you want to get the conversion event for all numbers associated with the business account, you can use the group endpoint. It allows for bulk configuration.
Get Events Groups
GET
[signals-base-url]v1/clients/{client_id}/apps/{app_id}/event_groups
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/event_groups
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Query Parameters
Creating an Ad Campaign
Facebook Account
Get Facebook Accounts
GET
[signals-base-url]v1/clients/{client_id}/apps/{app_id}/facebook-accounts
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/facebook-accounts
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'
--header 'Content-Type: application/json'
--data '{ "temporary_token": "63c14b9487dd821c0be8a0b6" }'
Path Parameters
Create Facebook Account
POST
[signals-base-url]/v1/clients/client_id/apps/app_id/facebook-accounts
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/facebook-accounts
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'
--header 'Content-Type: application/json'
--data '{ "temporary_token": "63c14b9487dd821c0be8a0b6" }'
Path Parameters
Request Body
Get Facebook Ad Accounts
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/facebook-accounts/{facebook_account_id}
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/facebook-accounts/facebook_account_id
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'
Path Parameters
Ad Campaign
Create Facebook Ad Campaign
POST
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/facebook-accounts
Request Example
curl --request POST
--url [base-url]/v1/clients/client_id/apps/app_id/facebook-accounts/facebook_account_id/facebook-ad-accounts/facebook_ad_account_id/facebook-ad-campaign
--header 'Accept: application/json'
--header 'Authorization: Bearer'
--header 'Content-Type: application/json'
--data '{ "campaign_name": "TEST CTWA POC", "daily_budget": 100, "start_time": "2023-09-18T11:36:41.356737", "end_time": "2023-09-19T12:36:41.356747", "billing_event": "IMPRESSIONS", "body": "Grow your business 5x", "title": "Chat with us", "page_id": "460293477343848", "targeting": { "age_min": 18, "age_max": 65, "gender": "men", "geo_locations": { "countries": [ "US" ], "cities": [ { "key": "1910415" } ] } }, "image_hash": "a275aa36c7b2e6d0105bf683c55e7bd6" }'
Path Parameters
Request Body
Get Facebook Pages ID
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/facebook-accounts/{facebook_account_id}/facebook-ad-accounts/{facebook_ad_account_id}/facebook-pages
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/facebook-accounts/facebook_account_id/facebook-ad-accounts/facebook_ad_account_id/facebook-pages
--header 'Accept: application/json'
--header 'Authorization: Bearer'
Path Parameters
Get Facebook Ad Images
GET
[signals-base-url]/v1/clients/{client_id}/apps/{app_id}/facebook-accounts/{facebook_account_id}/facebook-ad-accounts/{facebook_ad_account_id}/facebook-ad-images
Request Example
curl --request GET
--url [base-url]/v1/clients/client_id/apps/app_id/facebook-accounts/facebook_account_id/facebook-ad-accounts/facebook_ad_account_id/facebook-ad-images
--header 'Accept: application/json'
--header 'Authorization: Bearer 122'