{"_id":"562507435a86b42300946324","version":{"_id":"54eb63b859b1172100334fae","project":"54eb50e5615ffc1900305a16","forked_from":"54eb63a1867e1917009b711d","__v":28,"createdAt":"2015-02-23T17:30:32.501Z","releaseDate":"2015-02-23T17:30:32.501Z","categories":["54eb63b959b1172100334faf","54eb63b959b1172100334fb0","54eb63b959b1172100334fb1","54eb63b959b1172100334fb2","54ed8dd4ab373e2300f50eae","54ed99b2ab373e2300f50ede","55153a6de68daa2f00cff838","551546edbc466623002afe72","5515472ac28d6125001b8884","55154749c28d6125001b8885","555d9b4106dfec0d00d38ea7","5613e06e433e5735007c7708","5624bbb785a31117001c5403","56669e857cc81e0d00253f8e","568b8d837a42220d00498311","56a632277ef6620d00e2f18a","56d8147c3eb4dd0b00201aac","57a9ce2fac6db30e000d7efd","57a9cf4e944ea60e00dc3f74","58172386715dce0f00da4aa0","582dc59ee1b8692300c0dd03","589b19b4fec2730f0082e040","58b04a023529383900a759b5","58b92d1598157a0f004869bf","592e7685c58275000f20174f","59392839e376d4002f8a0474","59393064e376d4002f8a05a1","5947ae0d4005e2000f3a4fec","594a74df1d1de5001ab3517a","5954bc387a147f001b918915","59b8eeeb707542001076d3b6"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"parentDoc":null,"project":"54eb50e5615ffc1900305a16","__v":17,"category":{"_id":"551546edbc466623002afe72","pages":["551549c0bc466623002afe76","55154afbc859ac2f0001b486","55154daec859ac2f0001b48b","55154f36bc466623002afe7c","551550c5e68daa2f00cff84c","551551d4f854a31900368737","551552e7c859ac2f0001b494","551be4e3a0ee622b0087f69e","5527acc447b71d0d0044e6cd","552f84ad633a5b0d00e99daf","5537533df162750d00bbf7d0","554b3ffd6b448d0d00646d79","55506416fa289c0d0075e4f0","5550aaea00420e0d00d13113","55545865b450630d00041d80","55546906f9a7871700ef8e3c","555c4bf87e271d0d00f3c8c4","5564318c1fa8002300ea4bb0","556ffbd5910c090d00c432b6","557019f4cc189a21001ab258","55703aefcc189a21001ab2a3","5575a3c60b81dc230069c910","558ab69575eaf50d004e4cf3","55b0b41fb3171b3700b1539a","55ba2e48d72d1e1900276ac1","55ba45c804775a2f00628101","55c0b789344dc40d00f55933","55c0b8c837298d0d00088d88","55c0c095344dc40d00f55960","55d43e05b49ab11900328e2e","55d72c8c60fc730d00fc2738","55e6c564d678ad17001589ac","55e9b7780c9b420d0042b275","55f7cf2de32e9b0d00a2d4b6","56094efea7b2590d0089eb95","5613cdbeecbebc21003fa179","5613d8de6a092921004c30b8","5613de7c443514170060dbb6","5613e02823ecf6350009eefc","5613e4271db46e2100e142ad","5614d73c8113d20d00082e3e","561e11ae50e0a62100955946","561e2008efcf8217003adf77","5620f184b244890d001868e0","5620feb740e2c30d0002a899","562105ce40e2c30d0002a8a3","56210b3340e2c30d0002a8b3","56210c74b244890d0018690e","56249a0372ac510d00e49149","56249df185a31117001c53de","56249f0c85a31117001c53e1","5624a9e7c4bf501700bc5ec8","5624b29806e8040d005ed6a0","562507435a86b42300946324","563877854bfb360d00a463c1","5639e0f91846790d0089529a","565327d17d29410d004a0835","565457df04feff210074b17d","56545821ec189235002967af","565485099c4c6d0d00aeda02","5666f1f1f672550d000851ad","566abc7b74d574170070b700","566ad3c7c7c3cd1700265d14","566aede7b5ccc20d00817f71","566aef3147ebaf1900fe65d6"],"project":"54eb50e5615ffc1900305a16","version":"54eb63b859b1172100334fae","__v":65,"sync":{"url":"","isSync":false},"reference":true,"createdAt":"2015-03-27T12:02:53.314Z","from_sync":false,"order":12,"slug":"advanced-tutorials","title":"Advanced tutorials"},"user":"54eb4fdedf7add210007b29b","updates":["5822ffa0ad988e23005eeea7"],"next":{"pages":[],"description":""},"createdAt":"2015-10-19T15:07:47.453Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":23,"body":"After developing an app your next step will be to promote it. One of the safest and most reliable ways to do that is with an SMS, but what can you do if your URL is too long? \n\n**URL shortening and tracking solution** will not only automatically shorten your long links but will also track your users’ click-through rates. Just put the original URL into the message body, set the **`track`** parameter and everything else will be done by the Infobip platform.\n\nThese features are set in the **`tracking`** objects in the **[Fully featured textual message](doc:fully-featured-textual-message)** API method:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /sms/1/text/advanced HTTP/1.1\\nHost: api.infobip.com\\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\\nContent-Type: application/json\\n\\n{\\n   \\\"messages\\\":[\\n      {\\n         \\\"from\\\":\\\"InfoSMS\\\",\\n         \\\"destinations\\\":[\\n            {\\n               \\\"to\\\":\\\"41793026727\\\"\\n           }\\n         ],\\n         \\\"text\\\":\\\"Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId\\\"\\n      }\\n    ],\\n   \\\"tracking\\\":{\\n         \\\"track\\\":\\\"URL\\\",\\n     \\t\\t \\\"type\\\":\\\"SOCIAL_INVITES\\\"\\n    }\\n}\",\n      \"language\": \"json\"\n    },\n    {\n      \"code\": \"POST /sms/1/text/advanced HTTP/1.1\\nHost: api.infobip.com\\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\\nContent-Type: application/xml\\n\\n<request>\\n  <bulkId>BULK-ID-123-xyz</bulkId>\\n  <messages>\\n    <message>\\n      <from>InfoSMS</from>\\n      <destinations>\\n        <destination>\\n          <to>41793026727</to>\\n          <messageId>MESSAGE-ID-123-xyz</messageId>\\n        </destination>\\n        <destination>\\n          <to>41793026731</to>\\n        </destination>\\n      </destinations>\\n      <text>Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId</text>\\n    </message>\\n  </messages>\\n\\t<tracking>\\n\\t\\t<track>URL</track>\\n\\t\\t<type>SOCIAL_INVITES</type>\\n\\t</tracking>\\n</request>\",\n      \"language\": \"xml\"\n    }\n  ]\n}\n[/block]\nThe user will receive the original SMS message with a shortened URL:\n\n>*Hey, take a look at this awesome app. Can you beat my score: http://eel.nu/NJxE/cJ9UH*\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Important:\",\n  \"body\": \"Each sent message gets a unique Infobip short URL and it will take **25 characters** out of your message.\"\n}\n[/block]\nAs soon as the user clicks the link, we can automatically **send you the user's phone number** so you will instantly know when the conversion happens. \n\nAdditionally, we collect CTR together with other useful information:\n\n- User’s mobile phone number\n- Network prefix\n- Country prefix \n- Mobile phone operating system\n\n***[Contact us](mailto:support:::at:::infobip.com)* for additional information and setup assistance.**\n\n## Custom base url\n\nAs discussed above, the URL shortening feature will used an Infobip domain: `eel.nu`. If you wish to use your own domain, but still benefit from Conversion rate tracking, you can specify your own domain in send SMS request:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"POST /sms/1/text/advanced HTTP/1.1\\nHost: api.infobip.com\\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\\nContent-Type: application/json\\n\\n{\\n   \\\"messages\\\":[\\n      {\\n         \\\"from\\\":\\\"InfoSMS\\\",\\n         \\\"destinations\\\":[\\n            {\\n               \\\"to\\\":\\\"41793026727\\\"\\n           }\\n         ],\\n         \\\"text\\\":\\\"Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId\\\"\\n      }\\n    ],\\n   \\\"tracking\\\":{\\n         \\\"track\\\":\\\"URL\\\",\\n     \\t\\t \\\"type\\\":\\\"SOCIAL_INVITES\\\",\\n         \\\"baseUrl\\\":\\\"http://www.example.com/redirect\\\"\\n    }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"JSON\"\n    },\n    {\n      \"code\": \"POST /sms/1/text/advanced HTTP/1.1\\nHost: api.infobip.com\\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\\nContent-Type: application/xml\\n\\n<request>\\n  <bulkId>BULK-ID-123-xyz</bulkId>\\n  <messages>\\n    <message>\\n      <from>InfoSMS</from>\\n      <destinations>\\n        <destination>\\n          <to>41793026727</to>\\n          <messageId>MESSAGE-ID-123-xyz</messageId>\\n        </destination>\\n        <destination>\\n          <to>41793026731</to>\\n        </destination>\\n      </destinations>\\n      <text>Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId</text>\\n    </message>\\n  </messages>\\n\\t<tracking>\\n\\t\\t<track>URL</track>\\n\\t\\t<type>SOCIAL_INVITES</type>\\n    <baseUrl>http://www.example.com/redirect</baseUrl>\\n\\t</tracking>\\n</request>\",\n      \"language\": \"xml\",\n      \"name\": \"XML\"\n    }\n  ]\n}\n[/block]\nIn this case your users would receive an SMS with the following text:\n\n>*Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/redirect/NJxE/cJ9UH*\n\nThis way users will be able to recognise your domain and are more likely to click through as a result. On the other hand, note that url shortening is somewhat reduced in this case, since your full domain is retained in the final SMS text.\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"title\": \"Important:\",\n  \"body\": \"When using the custom `baseUrl` feature of the URL tracking your users will receive links to your domain. You need to configure your servers to redirect all requests that arrive to the base URL you provided back to `http://eel.nu`, otherwise Conversion rate tracking will not work.\"\n}\n[/block]\nNote that path parameters following the base url need to remain intact when redirecting to Infobip domain, since they are the key identifier used in Conversion tracking. In the above example, you should configure your endpoint so that a request to `http://www.example.com/redirect/NJxE/cJ9UH` ends up redirected to `http://eel.nu/NJxE/cJ9UH`.\n\n-----\n### **Tip:** [Get your click-through rates and statistics](doc:getting-conversion-rate-and-statistics)\nYou can easily get click-through rates for your URL tracking processes.","excerpt":"A solution that automatically shortens URLs and tracks click-through rates.","slug":"url-shortening","type":"basic","title":"URL shortening & tracking solution"}

URL shortening & tracking solution

A solution that automatically shortens URLs and tracks click-through rates.

After developing an app your next step will be to promote it. One of the safest and most reliable ways to do that is with an SMS, but what can you do if your URL is too long? **URL shortening and tracking solution** will not only automatically shorten your long links but will also track your users’ click-through rates. Just put the original URL into the message body, set the **`track`** parameter and everything else will be done by the Infobip platform. These features are set in the **`tracking`** objects in the **[Fully featured textual message](doc:fully-featured-textual-message)** API method: [block:code] { "codes": [ { "code": "POST /sms/1/text/advanced HTTP/1.1\nHost: api.infobip.com\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\nContent-Type: application/json\n\n{\n \"messages\":[\n {\n \"from\":\"InfoSMS\",\n \"destinations\":[\n {\n \"to\":\"41793026727\"\n }\n ],\n \"text\":\"Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId\"\n }\n ],\n \"tracking\":{\n \"track\":\"URL\",\n \t\t \"type\":\"SOCIAL_INVITES\"\n }\n}", "language": "json" }, { "code": "POST /sms/1/text/advanced HTTP/1.1\nHost: api.infobip.com\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\nContent-Type: application/xml\n\n<request>\n <bulkId>BULK-ID-123-xyz</bulkId>\n <messages>\n <message>\n <from>InfoSMS</from>\n <destinations>\n <destination>\n <to>41793026727</to>\n <messageId>MESSAGE-ID-123-xyz</messageId>\n </destination>\n <destination>\n <to>41793026731</to>\n </destination>\n </destinations>\n <text>Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId</text>\n </message>\n </messages>\n\t<tracking>\n\t\t<track>URL</track>\n\t\t<type>SOCIAL_INVITES</type>\n\t</tracking>\n</request>", "language": "xml" } ] } [/block] The user will receive the original SMS message with a shortened URL: >*Hey, take a look at this awesome app. Can you beat my score: http://eel.nu/NJxE/cJ9UH* [block:callout] { "type": "warning", "title": "Important:", "body": "Each sent message gets a unique Infobip short URL and it will take **25 characters** out of your message." } [/block] As soon as the user clicks the link, we can automatically **send you the user's phone number** so you will instantly know when the conversion happens. Additionally, we collect CTR together with other useful information: - User’s mobile phone number - Network prefix - Country prefix - Mobile phone operating system ***[Contact us](mailto:support@infobip.com)* for additional information and setup assistance.** ## Custom base url As discussed above, the URL shortening feature will used an Infobip domain: `eel.nu`. If you wish to use your own domain, but still benefit from Conversion rate tracking, you can specify your own domain in send SMS request: [block:code] { "codes": [ { "code": "POST /sms/1/text/advanced HTTP/1.1\nHost: api.infobip.com\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\nContent-Type: application/json\n\n{\n \"messages\":[\n {\n \"from\":\"InfoSMS\",\n \"destinations\":[\n {\n \"to\":\"41793026727\"\n }\n ],\n \"text\":\"Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId\"\n }\n ],\n \"tracking\":{\n \"track\":\"URL\",\n \t\t \"type\":\"SOCIAL_INVITES\",\n \"baseUrl\":\"http://www.example.com/redirect\"\n }\n}", "language": "json", "name": "JSON" }, { "code": "POST /sms/1/text/advanced HTTP/1.1\nHost: api.infobip.com\nAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\nContent-Type: application/xml\n\n<request>\n <bulkId>BULK-ID-123-xyz</bulkId>\n <messages>\n <message>\n <from>InfoSMS</from>\n <destinations>\n <destination>\n <to>41793026727</to>\n <messageId>MESSAGE-ID-123-xyz</messageId>\n </destination>\n <destination>\n <to>41793026731</to>\n </destination>\n </destinations>\n <text>Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/awesomeApp/someUserId</text>\n </message>\n </messages>\n\t<tracking>\n\t\t<track>URL</track>\n\t\t<type>SOCIAL_INVITES</type>\n <baseUrl>http://www.example.com/redirect</baseUrl>\n\t</tracking>\n</request>", "language": "xml", "name": "XML" } ] } [/block] In this case your users would receive an SMS with the following text: >*Hey, take a look at this awesome app. Can you beat my score: http://www.example.com/redirect/NJxE/cJ9UH* This way users will be able to recognise your domain and are more likely to click through as a result. On the other hand, note that url shortening is somewhat reduced in this case, since your full domain is retained in the final SMS text. [block:callout] { "type": "warning", "title": "Important:", "body": "When using the custom `baseUrl` feature of the URL tracking your users will receive links to your domain. You need to configure your servers to redirect all requests that arrive to the base URL you provided back to `http://eel.nu`, otherwise Conversion rate tracking will not work." } [/block] Note that path parameters following the base url need to remain intact when redirecting to Infobip domain, since they are the key identifier used in Conversion tracking. In the above example, you should configure your endpoint so that a request to `http://www.example.com/redirect/NJxE/cJ9UH` ends up redirected to `http://eel.nu/NJxE/cJ9UH`. ----- ### **Tip:** [Get your click-through rates and statistics](doc:getting-conversion-rate-and-statistics) You can easily get click-through rates for your URL tracking processes.