Keyword/Campaign Attribution

Campaign/Keyword Level Tracking is used to optimize your display advertising and search engine marketing efforts by helping you understand which campaigns/keywords are driving leads.

Using the Marchex Smart Number Pool technology, a unique tracking phone number is dynamically inserted each time a visitor clicks through to the landing page from your paid advertising campaign. The moment the visitor calls the number, the response is attributed to the campaign/keyword by integrating with the tools that you are already using to manage your online advertising campaigns. For more details, visit the Integrations portion of this documentation.

When planning to deploy DNI to gain Keyword/Campaign attribution insights, you will need to consider the following

  • Creating a Campaign that supports Session-Based DNI
  • Creating one or more Number Pools
  • Deploying DNI to your Website

1. Creating Session-Based (Keyword/Campaign) Campaign

To create a Campaign capable of supporting Session-Based (Keyword/Campaign) attribution, you will need to ensure you pass the 'dni_type' parameter as 'Session'

Request: POST https://edgeapi.marchex.io/marketingedge/v5/api/groups

curl  -H "x-organization-token: {authentication_token}" \
      -H "subscription-key: {subscription_key}" \
      -H "Content-Type: application/json" \
      -X POST \
      -d '{
         "name": "ABC Company",
         "time_zone_id": "Central",
         "rich_data_type": "Basic",
         "dni_type": "session"
       }'  https://edgeapi.marchex.io/marketingedge/v5/api/groups

For additional information on Groups, refer to the Groups section of this documentation.

{
    "id": 11623346,
    "name": "ABC Company",
    "time_zone_id": "Central",
    "rich_data_type": "Basic",
    "dni_type": "session",
    "billing_group_id": 4455,
    "tracking_javascript": "<script type=\"text/javascript\" src=\"#{dni-api-url}/sdk?identifier=9bc2e20d-dad4-48f7-a630-83622bbfe3bb\" async></script>",
    "status": "active",
    "created_datetime": "2018-05-11T18:19:20.7946016Z",
    "modified_datetime": "2018-05-11T18:19:20.7946016Z"
}

Take note of the JavaScript snippet returned in the 'tracking_javascript' field. This will be used in Step 3.

2. Creating a Number Pool

To gain accurate Keyword/Campaign attribution you will need to assign Number Pools to your Groups.

When configuring your number pool, you will need to consider:

  • Local vs. Toll Free - What type of number do you require for this campaign
  • Match Period - how long after presenting a number to a website visitor should you configure the number to wait for a phone call
  • Quantity - how many numbers should belong to the Number Pool. Consider how often number replacement will occur when determining how many numbers you need.
  • Numbers to Replace - Numbers on the page that will be replaced. Supply an array of 10 character numbers to replace. The Marketing Edge JavaScript snippet will ensure that the formatting on the website is retained when performing replacement, and is capable of handling alphanumeric phone numbers (example: 800 555-CARS)
  • Tracking Sources - Defines the source that a website visitor must arrive from in order for number replacement to occur (Example: Any/Bing/Google). For additional detail, refer to the Number Replacement Rules section of this documentation
  • URL Triggers - A URL parameter that must be present in order for number replacement to occur (Example: gclid=%, utm_campaign=wintertires) This field is optional.
curl  -H "x-organization-token: {authentication_token}" \
      -H "subscription-key: {subscription_key}" \
      -H "Content-Type: application/json" \
      -X POST \
      -d '{
            "name": "ABC Company - Google AdWords Attribution",
            "phone_number_request": {
                "match_type": "localtonumber",
                "local_to_number": "2123932233"
            },
            "match_period": 30,
            "quantity": 3,
            "replacement_configuration": {
                "numbers_to_replace": [
                    "905219CARS",
                    "4045553434"
                ],
                "tracking_sources": [
                    {
                        "referrer_domain": "any",
                        "url_triggers": [
                            "gclid=%"
                        ]
                    }
                ]
            },
            "call_routes": {
                "route_type": "Basic",
                "route": {
                    "termination_number": "4165551234"
                }
            }
       }'  https://edgeapi.marchex.io/marketingedge/v5/api/groups/{group_id}/numberpools

Please refer to the Number Pools section of the documentation for additional details on how to configure your Number Pool for:

  • Local/Toll Free Number Assignment
  • Call Features
  • SMS Routing Capabilities

3. Using Global DNI Tags

By default your Number Group will be assigned a unique tracking JavaScript snippet. To leverage Global DNI Tags pass the global_snippet_id in your Create/Update requests.

Sample Request:

curl  -H "x-organization-token: {authentication_token}" \
      -H "Content-Type: application/json" \
      -X POST \
       -d '{
            "name": "ABC Company - Google AdWords Attribution",
            "phone_number_request": {
                "match_type": "localtonumber",
                "local_to_number": "2123932233"
            },
            "global_snippet_id": "22E8A3C0-5156-4713-AF06-08D897C2DC56",
            "match_period": 30,
            "quantity": 3,
            "replacement_configuration": {
                "numbers_to_replace": [
                    "905219CARS",
                    "4045553434"
                ],
                "tracking_sources": [
                    {
                        "referrer_domain": "any",
                        "url_triggers": [
                            "gclid=%"
                        ]
                    }
                ]
            },
            "call_routes": {
                "route_type": "Basic",
                "route": {
                    "termination_number": "4165551234"
                }
            }
       }'  https://edgeapi.marchex.io/marketingedge/v5/api/groups/{group_id}/numberpools

4. Deploying DNI to your Website

For number replacement to occur on your website, the Marketing Edge JavaScript snippet will need to be inserted between the <head> and </head> tag of each webpage where you want DNI to take place.

<html>
...
  <head>
    <script type="text/javascript" src="//web-2-tel.com/sdk?identifier=74b9dd6edf58406da055887dcd4b2113" async></script>
  </head>
 ...
 </html>

For additional details on how to retrieve and install your JavaScript, please refer to the Adding DNI to a Website portion of this documentation.