{"__v":0,"_id":"586c9ddc60ece32700198ad6","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"After register new account successful, you should see the following screen\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b08aee7-Screen_Shot_2017-01-04_at_2.40.35_PM.png\",\n        \"Screen Shot 2017-01-04 at 2.40.35 PM.png\",\n        1008,\n        764,\n        \"#31353a\"\n      ]\n    }\n  ]\n}\n[/block]\nCongrats! You registered new account successful, soon you will be received a confirmation email which is sent automatically by HOLLER. Check your mailbox for it and follow the instructions to finish account registration like the figure below\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/0da2954-Screen_Shot_2017-01-04_at_2.19.51_PM.png\",\n        \"Screen Shot 2017-01-04 at 2.19.51 PM.png\",\n        1008,\n        688,\n        \"#2b3036\"\n      ]\n    }\n  ]\n}\n[/block]\nClick on \"Confirm Signup & Login\" to finish your registration and start loging into HOLLER dashboard and get on-board our great features.\n\nOnce you're authenticated successful, system redirect you to App Listing screen. Right here, HOLLER support you with multi-application that enables your management with ease. By default, HOLLER created a application for you that is named \"Untitled Application\". You can use them right away, and no worries! You're able to rename it later. Now click on \"Play\" button beside it to start using app.\n\n##Analytics##\nThe first screen then is \"Analytics\" to read more about this feature. Read more: https://appholler.readme.io/docs/analytics-true-impact\n\n##Campaign##\nWell, another interested feature, so-called \"Campaign\" which is well know our marketing automation centralization that enable everything you need to start targeting audience. Read more: https://appholler.readme.io/docs/campaign\n\n##SDK Integration##\nTo start empower your mobile app, you need install our SDK to enable our feature that support mobile app, both iOS and Android is well support by our team. Read more: https://appholler.readme.io/docs/getting-started","category":"582bbbaae290ea0f00ec079e","createdAt":"2017-01-04T07:01:48.028Z","excerpt":"","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":0,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"get-onboarding","sync_unique":"","title":"Let's Get On-board","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Let's Get On-board


After register new account successful, you should see the following screen [block:image] { "images": [ { "image": [ "https://files.readme.io/b08aee7-Screen_Shot_2017-01-04_at_2.40.35_PM.png", "Screen Shot 2017-01-04 at 2.40.35 PM.png", 1008, 764, "#31353a" ] } ] } [/block] Congrats! You registered new account successful, soon you will be received a confirmation email which is sent automatically by HOLLER. Check your mailbox for it and follow the instructions to finish account registration like the figure below [block:image] { "images": [ { "image": [ "https://files.readme.io/0da2954-Screen_Shot_2017-01-04_at_2.19.51_PM.png", "Screen Shot 2017-01-04 at 2.19.51 PM.png", 1008, 688, "#2b3036" ] } ] } [/block] Click on "Confirm Signup & Login" to finish your registration and start loging into HOLLER dashboard and get on-board our great features. Once you're authenticated successful, system redirect you to App Listing screen. Right here, HOLLER support you with multi-application that enables your management with ease. By default, HOLLER created a application for you that is named "Untitled Application". You can use them right away, and no worries! You're able to rename it later. Now click on "Play" button beside it to start using app. ##Analytics## The first screen then is "Analytics" to read more about this feature. Read more: https://appholler.readme.io/docs/analytics-true-impact ##Campaign## Well, another interested feature, so-called "Campaign" which is well know our marketing automation centralization that enable everything you need to start targeting audience. Read more: https://appholler.readme.io/docs/campaign ##SDK Integration## To start empower your mobile app, you need install our SDK to enable our feature that support mobile app, both iOS and Android is well support by our team. Read more: https://appholler.readme.io/docs/getting-started
After register new account successful, you should see the following screen [block:image] { "images": [ { "image": [ "https://files.readme.io/b08aee7-Screen_Shot_2017-01-04_at_2.40.35_PM.png", "Screen Shot 2017-01-04 at 2.40.35 PM.png", 1008, 764, "#31353a" ] } ] } [/block] Congrats! You registered new account successful, soon you will be received a confirmation email which is sent automatically by HOLLER. Check your mailbox for it and follow the instructions to finish account registration like the figure below [block:image] { "images": [ { "image": [ "https://files.readme.io/0da2954-Screen_Shot_2017-01-04_at_2.19.51_PM.png", "Screen Shot 2017-01-04 at 2.19.51 PM.png", 1008, 688, "#2b3036" ] } ] } [/block] Click on "Confirm Signup & Login" to finish your registration and start loging into HOLLER dashboard and get on-board our great features. Once you're authenticated successful, system redirect you to App Listing screen. Right here, HOLLER support you with multi-application that enables your management with ease. By default, HOLLER created a application for you that is named "Untitled Application". You can use them right away, and no worries! You're able to rename it later. Now click on "Play" button beside it to start using app. ##Analytics## The first screen then is "Analytics" to read more about this feature. Read more: https://appholler.readme.io/docs/analytics-true-impact ##Campaign## Well, another interested feature, so-called "Campaign" which is well know our marketing automation centralization that enable everything you need to start targeting audience. Read more: https://appholler.readme.io/docs/campaign ##SDK Integration## To start empower your mobile app, you need install our SDK to enable our feature that support mobile app, both iOS and Android is well support by our team. Read more: https://appholler.readme.io/docs/getting-started
{"__v":0,"_id":"582bbbaae290ea0f00ec07a4","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"HOLLER's Campaign Engine is precisely what marketers need to start engaging audience; and provides the tools to help marketers manage their campaign with ease. The Campaign Dashboard provides an central overview to allow marketers to understand how each campaign is performing at a glance.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/6e71f2c-Campaigns.png\",\n        \"Campaigns.png\",\n        1280,\n        850,\n        \"#eff0f7\"\n      ]\n    }\n  ]\n}\n[/block]\nThe Campaign Dashboard manages all marketing campaigns and showcases the impact of each campaign, displaying how many subscribers have been reached. This helps marketers have an insight into how the campaign has impacted subscribers.\n\nNext, lets create a campaign to engage your subscribers.\n\nHOLLER offers three channels to engage subscribers:\n-Push Notification\n-SMS\n-Email\n\nSMS and Email channels are still under development, these will become available in the near future.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Push Notification Campaign\"\n}\n[/block]\nIn this User Guide, we're going to help you use these channels to engage your subscribers with the most popular marketing channels. Now lets look at Push Notifications. Push Notifications are the most effective channel to reach mobile users, and comes with the added benefit of being extremely low cost.\n\nNow click on \"Create Campaign\" button and get started.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Steps 1: Compose Push Message\"\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/07c84e7-Create_Push_-_IOS.png\",\n        \"Create Push - IOS.png\",\n        1280,\n        955,\n        \"#e8e9ed\"\n      ]\n    }\n  ]\n}\n[/block]\nAt this step, you need to provide the following information:\n\n-**Message Title**: This is what will show as the title of the Push Notification sent to subscriber. \n\n-**Message Content**: This is the body of the Push Notification you are sending and should be short but meaningful. There is a limit of 140 characters for this section.\n\n-**On Click Behaviour**: This determines how your mobile device handles the Push Notification, it can open your app, or can redirect the subscriber to another website or mobile app through deeplinking.\n\nHave a look at the mobile previewer on the right hand side of the screen to see how the Push Notification looks on your mobile device. It supports both iOS & Android. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7d2930b-Create_Push_Name_your_Campaign_.png\",\n        \"Create Push (Name your Campaign) .png\",\n        1280,\n        955,\n        \"#1f3b3b\"\n      ]\n    }\n  ]\n}\n[/block]\nOnce you're happy with how the Push notification looks and works, click on \"Next\"  to move to the next step. Remember to name your campaign to keep track of it later.\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Step 2: User Targeting\"\n}\n[/block]\nMarketer can send out campaign to all audience as Default, but they can use preset Segment to filter and send to them, just only them. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1d99a7a-Target_Users_-_All_Users.png\",\n        \"Target Users - All Users.png\",\n        1280,\n        850,\n        \"#eeeef5\"\n      ]\n    }\n  ]\n}\n[/block]\nOn the right side, you can see a Statical Data Collection collects on audiences who are going to be engaged. It also can be used to show all information about demographic segment once you use Segment to filter out audience. With helpful information about Email-able (Audience's able to receive Email), Push-enabled (Audience's able to receive Push Notification). Giving different scenarios about how audience receives engagement message.\nBy default, HOLLER sends out campaign to all audience with **All Users**. Choose **Specific Users** to be powered with preset Segments.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/bca424c-Target_Users_-_Specific_Users.png\",\n        \"Target Users - Specific Users.png\",\n        1280,\n        850,\n        \"#eeeef4\"\n      ]\n    }\n  ]\n}\n[/block]\nMarketer's able to combine two or more preset **Segment** used to filter audience, these Segments can be stacked to help Marketer get cohort audience they need to engage. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Step 3: Delivery Options\"\n}\n[/block]\nAll marketer have to made decision how and when campaign send? We've already helped to solve problem with \"How\" and we keep continue solving \"When\". HOLLER was built with a powerful Scheduling system, it means marketer can create message, set launch date and time and HOLLER do autonomous management to sent out campaign(s). This bases on current timezone, or send independently to individual's timezone. By the default, Campaign will be sent as soon as possible after it would be created.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1c41d00-Schedule_Delivery_Send_Now.png\",\n        \"Schedule Delivery (Send Now).png\",\n        1280,\n        850,\n        \"#eeeef5\"\n      ]\n    }\n  ]\n}\n[/block]\nHOLLER offers three **Delivery Options**:\n-Send Now (By default, campaign will be sent after it was created).\n-Schedule.\n-And Intelligent Delivery.\n\nTo Schedule a Campaign, marketer can freely set date time, and recurring options (so-called **Repeat**) for Campaign.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/7876a7e-Schedule_Delivery_Schedule.png\",\n        \"Schedule Delivery (Schedule).png\",\n        1280,\n        850,\n        \"#ededf4\"\n      ]\n    }\n  ]\n}\n[/block]\n**Intelligent Delivery** is the most secret and powerful ability of HOLLER. Instead of engage audience on preset day & time, system will engage audience whenever they perform specific action(s) on mobile device.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/661beeb-Schedule_Delivery_Intelligent_Delivery_Dropdown.png\",\n        \"Schedule Delivery (Intelligent Delivery) Dropdown.png\",\n        1280,\n        850,\n        \"#eeeef5\"\n      ]\n    }\n  ]\n}\n[/block]\nAnd the last thing, marketer click on \"Create\" button. Campaign asap will be created and will be sorted on the top of Campaign Dashboard.","category":"582bbbaae290ea0f00ec079e","createdAt":"2016-09-29T02:15:42.622Z","excerpt":"Offers out ability to centralise all your campaign to engage your subscriber, also give overview on individual's performance.","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":1,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"campaign","sync_unique":"","title":"Campaign","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Campaign

Offers out ability to centralise all your campaign to engage your subscriber, also give overview on individual's performance.

HOLLER's Campaign Engine is precisely what marketers need to start engaging audience; and provides the tools to help marketers manage their campaign with ease. The Campaign Dashboard provides an central overview to allow marketers to understand how each campaign is performing at a glance. [block:image] { "images": [ { "image": [ "https://files.readme.io/6e71f2c-Campaigns.png", "Campaigns.png", 1280, 850, "#eff0f7" ] } ] } [/block] The Campaign Dashboard manages all marketing campaigns and showcases the impact of each campaign, displaying how many subscribers have been reached. This helps marketers have an insight into how the campaign has impacted subscribers. Next, lets create a campaign to engage your subscribers. HOLLER offers three channels to engage subscribers: -Push Notification -SMS -Email SMS and Email channels are still under development, these will become available in the near future. [block:api-header] { "type": "basic", "title": "Push Notification Campaign" } [/block] In this User Guide, we're going to help you use these channels to engage your subscribers with the most popular marketing channels. Now lets look at Push Notifications. Push Notifications are the most effective channel to reach mobile users, and comes with the added benefit of being extremely low cost. Now click on "Create Campaign" button and get started. [block:api-header] { "type": "basic", "title": "Steps 1: Compose Push Message" } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/07c84e7-Create_Push_-_IOS.png", "Create Push - IOS.png", 1280, 955, "#e8e9ed" ] } ] } [/block] At this step, you need to provide the following information: -**Message Title**: This is what will show as the title of the Push Notification sent to subscriber. -**Message Content**: This is the body of the Push Notification you are sending and should be short but meaningful. There is a limit of 140 characters for this section. -**On Click Behaviour**: This determines how your mobile device handles the Push Notification, it can open your app, or can redirect the subscriber to another website or mobile app through deeplinking. Have a look at the mobile previewer on the right hand side of the screen to see how the Push Notification looks on your mobile device. It supports both iOS & Android. [block:image] { "images": [ { "image": [ "https://files.readme.io/7d2930b-Create_Push_Name_your_Campaign_.png", "Create Push (Name your Campaign) .png", 1280, 955, "#1f3b3b" ] } ] } [/block] Once you're happy with how the Push notification looks and works, click on "Next" to move to the next step. Remember to name your campaign to keep track of it later. [block:api-header] { "type": "basic", "title": "Step 2: User Targeting" } [/block] Marketer can send out campaign to all audience as Default, but they can use preset Segment to filter and send to them, just only them. [block:image] { "images": [ { "image": [ "https://files.readme.io/1d99a7a-Target_Users_-_All_Users.png", "Target Users - All Users.png", 1280, 850, "#eeeef5" ] } ] } [/block] On the right side, you can see a Statical Data Collection collects on audiences who are going to be engaged. It also can be used to show all information about demographic segment once you use Segment to filter out audience. With helpful information about Email-able (Audience's able to receive Email), Push-enabled (Audience's able to receive Push Notification). Giving different scenarios about how audience receives engagement message. By default, HOLLER sends out campaign to all audience with **All Users**. Choose **Specific Users** to be powered with preset Segments. [block:image] { "images": [ { "image": [ "https://files.readme.io/bca424c-Target_Users_-_Specific_Users.png", "Target Users - Specific Users.png", 1280, 850, "#eeeef4" ] } ] } [/block] Marketer's able to combine two or more preset **Segment** used to filter audience, these Segments can be stacked to help Marketer get cohort audience they need to engage. [block:api-header] { "type": "basic", "title": "Step 3: Delivery Options" } [/block] All marketer have to made decision how and when campaign send? We've already helped to solve problem with "How" and we keep continue solving "When". HOLLER was built with a powerful Scheduling system, it means marketer can create message, set launch date and time and HOLLER do autonomous management to sent out campaign(s). This bases on current timezone, or send independently to individual's timezone. By the default, Campaign will be sent as soon as possible after it would be created. [block:image] { "images": [ { "image": [ "https://files.readme.io/1c41d00-Schedule_Delivery_Send_Now.png", "Schedule Delivery (Send Now).png", 1280, 850, "#eeeef5" ] } ] } [/block] HOLLER offers three **Delivery Options**: -Send Now (By default, campaign will be sent after it was created). -Schedule. -And Intelligent Delivery. To Schedule a Campaign, marketer can freely set date time, and recurring options (so-called **Repeat**) for Campaign. [block:image] { "images": [ { "image": [ "https://files.readme.io/7876a7e-Schedule_Delivery_Schedule.png", "Schedule Delivery (Schedule).png", 1280, 850, "#ededf4" ] } ] } [/block] **Intelligent Delivery** is the most secret and powerful ability of HOLLER. Instead of engage audience on preset day & time, system will engage audience whenever they perform specific action(s) on mobile device. [block:image] { "images": [ { "image": [ "https://files.readme.io/661beeb-Schedule_Delivery_Intelligent_Delivery_Dropdown.png", "Schedule Delivery (Intelligent Delivery) Dropdown.png", 1280, 850, "#eeeef5" ] } ] } [/block] And the last thing, marketer click on "Create" button. Campaign asap will be created and will be sorted on the top of Campaign Dashboard.
HOLLER's Campaign Engine is precisely what marketers need to start engaging audience; and provides the tools to help marketers manage their campaign with ease. The Campaign Dashboard provides an central overview to allow marketers to understand how each campaign is performing at a glance. [block:image] { "images": [ { "image": [ "https://files.readme.io/6e71f2c-Campaigns.png", "Campaigns.png", 1280, 850, "#eff0f7" ] } ] } [/block] The Campaign Dashboard manages all marketing campaigns and showcases the impact of each campaign, displaying how many subscribers have been reached. This helps marketers have an insight into how the campaign has impacted subscribers. Next, lets create a campaign to engage your subscribers. HOLLER offers three channels to engage subscribers: -Push Notification -SMS -Email SMS and Email channels are still under development, these will become available in the near future. [block:api-header] { "type": "basic", "title": "Push Notification Campaign" } [/block] In this User Guide, we're going to help you use these channels to engage your subscribers with the most popular marketing channels. Now lets look at Push Notifications. Push Notifications are the most effective channel to reach mobile users, and comes with the added benefit of being extremely low cost. Now click on "Create Campaign" button and get started. [block:api-header] { "type": "basic", "title": "Steps 1: Compose Push Message" } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/07c84e7-Create_Push_-_IOS.png", "Create Push - IOS.png", 1280, 955, "#e8e9ed" ] } ] } [/block] At this step, you need to provide the following information: -**Message Title**: This is what will show as the title of the Push Notification sent to subscriber. -**Message Content**: This is the body of the Push Notification you are sending and should be short but meaningful. There is a limit of 140 characters for this section. -**On Click Behaviour**: This determines how your mobile device handles the Push Notification, it can open your app, or can redirect the subscriber to another website or mobile app through deeplinking. Have a look at the mobile previewer on the right hand side of the screen to see how the Push Notification looks on your mobile device. It supports both iOS & Android. [block:image] { "images": [ { "image": [ "https://files.readme.io/7d2930b-Create_Push_Name_your_Campaign_.png", "Create Push (Name your Campaign) .png", 1280, 955, "#1f3b3b" ] } ] } [/block] Once you're happy with how the Push notification looks and works, click on "Next" to move to the next step. Remember to name your campaign to keep track of it later. [block:api-header] { "type": "basic", "title": "Step 2: User Targeting" } [/block] Marketer can send out campaign to all audience as Default, but they can use preset Segment to filter and send to them, just only them. [block:image] { "images": [ { "image": [ "https://files.readme.io/1d99a7a-Target_Users_-_All_Users.png", "Target Users - All Users.png", 1280, 850, "#eeeef5" ] } ] } [/block] On the right side, you can see a Statical Data Collection collects on audiences who are going to be engaged. It also can be used to show all information about demographic segment once you use Segment to filter out audience. With helpful information about Email-able (Audience's able to receive Email), Push-enabled (Audience's able to receive Push Notification). Giving different scenarios about how audience receives engagement message. By default, HOLLER sends out campaign to all audience with **All Users**. Choose **Specific Users** to be powered with preset Segments. [block:image] { "images": [ { "image": [ "https://files.readme.io/bca424c-Target_Users_-_Specific_Users.png", "Target Users - Specific Users.png", 1280, 850, "#eeeef4" ] } ] } [/block] Marketer's able to combine two or more preset **Segment** used to filter audience, these Segments can be stacked to help Marketer get cohort audience they need to engage. [block:api-header] { "type": "basic", "title": "Step 3: Delivery Options" } [/block] All marketer have to made decision how and when campaign send? We've already helped to solve problem with "How" and we keep continue solving "When". HOLLER was built with a powerful Scheduling system, it means marketer can create message, set launch date and time and HOLLER do autonomous management to sent out campaign(s). This bases on current timezone, or send independently to individual's timezone. By the default, Campaign will be sent as soon as possible after it would be created. [block:image] { "images": [ { "image": [ "https://files.readme.io/1c41d00-Schedule_Delivery_Send_Now.png", "Schedule Delivery (Send Now).png", 1280, 850, "#eeeef5" ] } ] } [/block] HOLLER offers three **Delivery Options**: -Send Now (By default, campaign will be sent after it was created). -Schedule. -And Intelligent Delivery. To Schedule a Campaign, marketer can freely set date time, and recurring options (so-called **Repeat**) for Campaign. [block:image] { "images": [ { "image": [ "https://files.readme.io/7876a7e-Schedule_Delivery_Schedule.png", "Schedule Delivery (Schedule).png", 1280, 850, "#ededf4" ] } ] } [/block] **Intelligent Delivery** is the most secret and powerful ability of HOLLER. Instead of engage audience on preset day & time, system will engage audience whenever they perform specific action(s) on mobile device. [block:image] { "images": [ { "image": [ "https://files.readme.io/661beeb-Schedule_Delivery_Intelligent_Delivery_Dropdown.png", "Schedule Delivery (Intelligent Delivery) Dropdown.png", 1280, 850, "#eeeef5" ] } ] } [/block] And the last thing, marketer click on "Create" button. Campaign asap will be created and will be sorted on the top of Campaign Dashboard.
{"__v":0,"_id":"582bbbaae290ea0f00ec07a5","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"HOLLER provides a number of pre-set Segment, there're all demographic target to help marketer can do campaign with ease to send to individuals\n\n##Device OS (Mobile Operating System)\nHelps marketer to quickly engage either **iOS**, **Android** or both mobile user.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/8a3caec-OS.png\",\n        \"OS.png\",\n        798,\n        124,\n        \"#f2f2f2\"\n      ]\n    }\n  ]\n}\n[/block]\n##Nationality\nHelps marketer to quickly engage audience by nationality where they registered\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/8cda860-Country.png\",\n        \"Country.png\",\n        798,\n        128,\n        \"#f2f2f2\"\n      ]\n    }\n  ]\n}\n[/block]\n##Gender\nHelps marketer to quickly engage audience by gender\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/0cfd293-Gender.png\",\n        \"Gender.png\",\n        798,\n        128,\n        \"#f3f3f3\"\n      ]\n    }\n  ]\n}\n[/block]\n##Age\nHelps marketer to quickly engage audience by age\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/c35a363-Screen_Shot_2016-09-29_at_12.29.05_PM.png\",\n        \"Screen Shot 2016-09-29 at 12.29.05 PM.png\",\n        1540,\n        246,\n        \"#f3f3f3\"\n      ]\n    }\n  ]\n}\n[/block]\n##Location (Geographic Segment)\nHelps marketer to quickly engage audience geographic fence. To use this Segment, marketer have to specify the proximity with radius on real map. This proximity covers user who's living inbound this area to target to.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/96d9032-Target_Users_-_Location.png\",\n        \"Target Users - Location.png\",\n        1280,\n        850,\n        \"#24252d\"\n      ]\n    }\n  ]\n}\n[/block]\nBy default, HOLLER gets your current location as centre of circle shaped proximity, and radius is about 1 kilometer. Marketer's able to drop pin to another place and modify radius. Then save it, this means marketer can reuse this geographic segment for the next time. They can edit the name of location, radius.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/89cdd03-Location.png\",\n        \"Location.png\",\n        800,\n        129,\n        \"#f2f2f3\"\n      ]\n    }\n  ]\n}\n[/block]","category":"582bbbaae290ea0f00ec079e","createdAt":"2016-09-29T02:19:09.692Z","excerpt":"Using preset Segment to filter audience and empower your campaign","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":2,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"user-targeting","sync_unique":"","title":"User Targeting","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

User Targeting

Using preset Segment to filter audience and empower your campaign

HOLLER provides a number of pre-set Segment, there're all demographic target to help marketer can do campaign with ease to send to individuals ##Device OS (Mobile Operating System) Helps marketer to quickly engage either **iOS**, **Android** or both mobile user. [block:image] { "images": [ { "image": [ "https://files.readme.io/8a3caec-OS.png", "OS.png", 798, 124, "#f2f2f2" ] } ] } [/block] ##Nationality Helps marketer to quickly engage audience by nationality where they registered [block:image] { "images": [ { "image": [ "https://files.readme.io/8cda860-Country.png", "Country.png", 798, 128, "#f2f2f2" ] } ] } [/block] ##Gender Helps marketer to quickly engage audience by gender [block:image] { "images": [ { "image": [ "https://files.readme.io/0cfd293-Gender.png", "Gender.png", 798, 128, "#f3f3f3" ] } ] } [/block] ##Age Helps marketer to quickly engage audience by age [block:image] { "images": [ { "image": [ "https://files.readme.io/c35a363-Screen_Shot_2016-09-29_at_12.29.05_PM.png", "Screen Shot 2016-09-29 at 12.29.05 PM.png", 1540, 246, "#f3f3f3" ] } ] } [/block] ##Location (Geographic Segment) Helps marketer to quickly engage audience geographic fence. To use this Segment, marketer have to specify the proximity with radius on real map. This proximity covers user who's living inbound this area to target to. [block:image] { "images": [ { "image": [ "https://files.readme.io/96d9032-Target_Users_-_Location.png", "Target Users - Location.png", 1280, 850, "#24252d" ] } ] } [/block] By default, HOLLER gets your current location as centre of circle shaped proximity, and radius is about 1 kilometer. Marketer's able to drop pin to another place and modify radius. Then save it, this means marketer can reuse this geographic segment for the next time. They can edit the name of location, radius. [block:image] { "images": [ { "image": [ "https://files.readme.io/89cdd03-Location.png", "Location.png", 800, 129, "#f2f2f3" ] } ] } [/block]
HOLLER provides a number of pre-set Segment, there're all demographic target to help marketer can do campaign with ease to send to individuals ##Device OS (Mobile Operating System) Helps marketer to quickly engage either **iOS**, **Android** or both mobile user. [block:image] { "images": [ { "image": [ "https://files.readme.io/8a3caec-OS.png", "OS.png", 798, 124, "#f2f2f2" ] } ] } [/block] ##Nationality Helps marketer to quickly engage audience by nationality where they registered [block:image] { "images": [ { "image": [ "https://files.readme.io/8cda860-Country.png", "Country.png", 798, 128, "#f2f2f2" ] } ] } [/block] ##Gender Helps marketer to quickly engage audience by gender [block:image] { "images": [ { "image": [ "https://files.readme.io/0cfd293-Gender.png", "Gender.png", 798, 128, "#f3f3f3" ] } ] } [/block] ##Age Helps marketer to quickly engage audience by age [block:image] { "images": [ { "image": [ "https://files.readme.io/c35a363-Screen_Shot_2016-09-29_at_12.29.05_PM.png", "Screen Shot 2016-09-29 at 12.29.05 PM.png", 1540, 246, "#f3f3f3" ] } ] } [/block] ##Location (Geographic Segment) Helps marketer to quickly engage audience geographic fence. To use this Segment, marketer have to specify the proximity with radius on real map. This proximity covers user who's living inbound this area to target to. [block:image] { "images": [ { "image": [ "https://files.readme.io/96d9032-Target_Users_-_Location.png", "Target Users - Location.png", 1280, 850, "#24252d" ] } ] } [/block] By default, HOLLER gets your current location as centre of circle shaped proximity, and radius is about 1 kilometer. Marketer's able to drop pin to another place and modify radius. Then save it, this means marketer can reuse this geographic segment for the next time. They can edit the name of location, radius. [block:image] { "images": [ { "image": [ "https://files.readme.io/89cdd03-Location.png", "Location.png", 800, 129, "#f2f2f3" ] } ] } [/block]
{"__v":0,"_id":"582bbbaae290ea0f00ec07a6","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"HOLLER is backed by next-generation technology empowers Mobile Analytics also Campaign's True Impact to help marketer gets a fast overview on their engagement campaign. Not only support marketer with specialised metric, it also helps developer can comprehend engagement results with significant metric's included in HOLLER's dashboard.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/3cec93a-Analytics_.png\",\n        \"Analytics .png\",\n        1280,\n        1191,\n        \"#efe5e5\"\n      ]\n    }\n  ]\n}\n[/block]\n##Lifetime Metric & Lifetime Session\nLifetime Metric is well-known as mobile's data collects at the beginning of every HOLLER's app accumulatively. These informations help marketer and developer can easily observe about app's usage, mobile session also their audience.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b576fb8-Screen_Shot_2016-11-15_at_9.44.44_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.44.44 PM.png\",\n        940,\n        248,\n        \"#e3e8e8\"\n      ]\n    }\n  ]\n}\n[/block]\n-Lifetime User is total user who downloaded and have used app till today, this number is calculated at the beginning app was created and use.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/5802f5d-Screen_Shot_2016-11-15_at_9.44.52_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.44.52 PM.png\",\n        944,\n        248,\n        \"#0e0e0e\"\n      ]\n    }\n  ]\n}\n[/block]\n-Lifetime Session is total mobile session that was generated on audience's mobile device. As same as Lifetime User, this's also calculates at the beginning app was created and manage by HOLLER!\n\nMoreover, every mobile app's health status is indicated by 6 vital mobile metrics include:\n\n##Daily Active User (DAU)\nYou know how many app downloads you’ve had, but just how indispensable is your app for those who’ve installed it? The daily active users metric will tell you just that. Because this refers to each individual person using your app, not to the number of sessions, each person is counted just one time, regardless of if they use the app once per day or hundreds of times per day.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/6b5b832-Screen_Shot_2016-11-15_at_9.43.01_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.43.01 PM.png\",\n        602,\n        454,\n        \"#e0e6ed\"\n      ]\n    }\n  ]\n}\n[/block]\n##Monthly Active User (MAU)\nLike DAU, monthly active users tells you the unique number of people who used your app, only obviously, MAU is concerned with either a specific month, or the prior 30 days. Some mobile marketing automation platforms are set to automatically capture MAU, based on one of these approaches.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/df47984-Screen_Shot_2016-11-15_at_9.42.38_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.42.38 PM.png\",\n        598,\n        452,\n        \"#9dc0ea\"\n      ]\n    }\n  ]\n}\n[/block]\n##Daily Session Per DAU\nSessions per DAU gives you an idea of how often your customers make use of your app within a single day. This can help you determine whether your customers are returning to your app as often as you’d like them to be. Social media apps, for instance, might like to see their active users opening the app for a couple sessions a day.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/72821f5-Screen_Shot_2016-11-15_at_9.44.17_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.44.17 PM.png\",\n        600,\n        452,\n        \"#171717\"\n      ]\n    }\n  ]\n}\n[/block]\n##Stickiness\n“Sticky”—it’s not just a clever way of describing how often people come back to your app, it’s also a formula. What does using this formula tell you?\n\nThe higher this percentage, the more often your users return to your app (and the more you and your colleagues can congratulate each other). The closer your daily active user count is to your monthly active user count, the higher the stickiness—or engagement—is for your app, and the more frequently your MAUs are using the app.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a4424b5-Screen_Shot_2016-11-15_at_9.43.40_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.43.40 PM.png\",\n        600,\n        454,\n        \"#eeeff0\"\n      ]\n    }\n  ]\n}\n[/block]\n##New User & User\nSome people gloss over this metric, but tracking your users is fundamental to creating deeper engagement, like segmenting audiences, tracking specific behavior and launching successful app marketing campaigns. Once you know your user base and current active users, you have a baseline for improving engagement to increase users across channels, those who have dropped out of a desired funnel, or those within your market space who haven’t yet downloaded your app. You also gain greater insight into the monetization behavior of users, including the degree of usage, who makes in-app purchases, and who clicks through to ads.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/3aba1d3-Screen_Shot_2016-11-15_at_9.43.18_PM.png\",\n        \"Screen Shot 2016-11-15 at 9.43.18 PM.png\",\n        600,\n        452,\n        \"#1e1e1e\"\n      ]\n    }\n  ]\n}\n[/block]","category":"582bbbaae290ea0f00ec079e","createdAt":"2016-09-29T02:19:44.400Z","excerpt":"Bring out your raw data and help make sense to business world","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":3,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"analytics-true-impact","sync_unique":"","title":"Analytics & True Impact","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Analytics & True Impact

Bring out your raw data and help make sense to business world

HOLLER is backed by next-generation technology empowers Mobile Analytics also Campaign's True Impact to help marketer gets a fast overview on their engagement campaign. Not only support marketer with specialised metric, it also helps developer can comprehend engagement results with significant metric's included in HOLLER's dashboard. [block:image] { "images": [ { "image": [ "https://files.readme.io/3cec93a-Analytics_.png", "Analytics .png", 1280, 1191, "#efe5e5" ] } ] } [/block] ##Lifetime Metric & Lifetime Session Lifetime Metric is well-known as mobile's data collects at the beginning of every HOLLER's app accumulatively. These informations help marketer and developer can easily observe about app's usage, mobile session also their audience. [block:image] { "images": [ { "image": [ "https://files.readme.io/b576fb8-Screen_Shot_2016-11-15_at_9.44.44_PM.png", "Screen Shot 2016-11-15 at 9.44.44 PM.png", 940, 248, "#e3e8e8" ] } ] } [/block] -Lifetime User is total user who downloaded and have used app till today, this number is calculated at the beginning app was created and use. [block:image] { "images": [ { "image": [ "https://files.readme.io/5802f5d-Screen_Shot_2016-11-15_at_9.44.52_PM.png", "Screen Shot 2016-11-15 at 9.44.52 PM.png", 944, 248, "#0e0e0e" ] } ] } [/block] -Lifetime Session is total mobile session that was generated on audience's mobile device. As same as Lifetime User, this's also calculates at the beginning app was created and manage by HOLLER! Moreover, every mobile app's health status is indicated by 6 vital mobile metrics include: ##Daily Active User (DAU) You know how many app downloads you’ve had, but just how indispensable is your app for those who’ve installed it? The daily active users metric will tell you just that. Because this refers to each individual person using your app, not to the number of sessions, each person is counted just one time, regardless of if they use the app once per day or hundreds of times per day. [block:image] { "images": [ { "image": [ "https://files.readme.io/6b5b832-Screen_Shot_2016-11-15_at_9.43.01_PM.png", "Screen Shot 2016-11-15 at 9.43.01 PM.png", 602, 454, "#e0e6ed" ] } ] } [/block] ##Monthly Active User (MAU) Like DAU, monthly active users tells you the unique number of people who used your app, only obviously, MAU is concerned with either a specific month, or the prior 30 days. Some mobile marketing automation platforms are set to automatically capture MAU, based on one of these approaches. [block:image] { "images": [ { "image": [ "https://files.readme.io/df47984-Screen_Shot_2016-11-15_at_9.42.38_PM.png", "Screen Shot 2016-11-15 at 9.42.38 PM.png", 598, 452, "#9dc0ea" ] } ] } [/block] ##Daily Session Per DAU Sessions per DAU gives you an idea of how often your customers make use of your app within a single day. This can help you determine whether your customers are returning to your app as often as you’d like them to be. Social media apps, for instance, might like to see their active users opening the app for a couple sessions a day. [block:image] { "images": [ { "image": [ "https://files.readme.io/72821f5-Screen_Shot_2016-11-15_at_9.44.17_PM.png", "Screen Shot 2016-11-15 at 9.44.17 PM.png", 600, 452, "#171717" ] } ] } [/block] ##Stickiness “Sticky”—it’s not just a clever way of describing how often people come back to your app, it’s also a formula. What does using this formula tell you? The higher this percentage, the more often your users return to your app (and the more you and your colleagues can congratulate each other). The closer your daily active user count is to your monthly active user count, the higher the stickiness—or engagement—is for your app, and the more frequently your MAUs are using the app. [block:image] { "images": [ { "image": [ "https://files.readme.io/a4424b5-Screen_Shot_2016-11-15_at_9.43.40_PM.png", "Screen Shot 2016-11-15 at 9.43.40 PM.png", 600, 454, "#eeeff0" ] } ] } [/block] ##New User & User Some people gloss over this metric, but tracking your users is fundamental to creating deeper engagement, like segmenting audiences, tracking specific behavior and launching successful app marketing campaigns. Once you know your user base and current active users, you have a baseline for improving engagement to increase users across channels, those who have dropped out of a desired funnel, or those within your market space who haven’t yet downloaded your app. You also gain greater insight into the monetization behavior of users, including the degree of usage, who makes in-app purchases, and who clicks through to ads. [block:image] { "images": [ { "image": [ "https://files.readme.io/3aba1d3-Screen_Shot_2016-11-15_at_9.43.18_PM.png", "Screen Shot 2016-11-15 at 9.43.18 PM.png", 600, 452, "#1e1e1e" ] } ] } [/block]
HOLLER is backed by next-generation technology empowers Mobile Analytics also Campaign's True Impact to help marketer gets a fast overview on their engagement campaign. Not only support marketer with specialised metric, it also helps developer can comprehend engagement results with significant metric's included in HOLLER's dashboard. [block:image] { "images": [ { "image": [ "https://files.readme.io/3cec93a-Analytics_.png", "Analytics .png", 1280, 1191, "#efe5e5" ] } ] } [/block] ##Lifetime Metric & Lifetime Session Lifetime Metric is well-known as mobile's data collects at the beginning of every HOLLER's app accumulatively. These informations help marketer and developer can easily observe about app's usage, mobile session also their audience. [block:image] { "images": [ { "image": [ "https://files.readme.io/b576fb8-Screen_Shot_2016-11-15_at_9.44.44_PM.png", "Screen Shot 2016-11-15 at 9.44.44 PM.png", 940, 248, "#e3e8e8" ] } ] } [/block] -Lifetime User is total user who downloaded and have used app till today, this number is calculated at the beginning app was created and use. [block:image] { "images": [ { "image": [ "https://files.readme.io/5802f5d-Screen_Shot_2016-11-15_at_9.44.52_PM.png", "Screen Shot 2016-11-15 at 9.44.52 PM.png", 944, 248, "#0e0e0e" ] } ] } [/block] -Lifetime Session is total mobile session that was generated on audience's mobile device. As same as Lifetime User, this's also calculates at the beginning app was created and manage by HOLLER! Moreover, every mobile app's health status is indicated by 6 vital mobile metrics include: ##Daily Active User (DAU) You know how many app downloads you’ve had, but just how indispensable is your app for those who’ve installed it? The daily active users metric will tell you just that. Because this refers to each individual person using your app, not to the number of sessions, each person is counted just one time, regardless of if they use the app once per day or hundreds of times per day. [block:image] { "images": [ { "image": [ "https://files.readme.io/6b5b832-Screen_Shot_2016-11-15_at_9.43.01_PM.png", "Screen Shot 2016-11-15 at 9.43.01 PM.png", 602, 454, "#e0e6ed" ] } ] } [/block] ##Monthly Active User (MAU) Like DAU, monthly active users tells you the unique number of people who used your app, only obviously, MAU is concerned with either a specific month, or the prior 30 days. Some mobile marketing automation platforms are set to automatically capture MAU, based on one of these approaches. [block:image] { "images": [ { "image": [ "https://files.readme.io/df47984-Screen_Shot_2016-11-15_at_9.42.38_PM.png", "Screen Shot 2016-11-15 at 9.42.38 PM.png", 598, 452, "#9dc0ea" ] } ] } [/block] ##Daily Session Per DAU Sessions per DAU gives you an idea of how often your customers make use of your app within a single day. This can help you determine whether your customers are returning to your app as often as you’d like them to be. Social media apps, for instance, might like to see their active users opening the app for a couple sessions a day. [block:image] { "images": [ { "image": [ "https://files.readme.io/72821f5-Screen_Shot_2016-11-15_at_9.44.17_PM.png", "Screen Shot 2016-11-15 at 9.44.17 PM.png", 600, 452, "#171717" ] } ] } [/block] ##Stickiness “Sticky”—it’s not just a clever way of describing how often people come back to your app, it’s also a formula. What does using this formula tell you? The higher this percentage, the more often your users return to your app (and the more you and your colleagues can congratulate each other). The closer your daily active user count is to your monthly active user count, the higher the stickiness—or engagement—is for your app, and the more frequently your MAUs are using the app. [block:image] { "images": [ { "image": [ "https://files.readme.io/a4424b5-Screen_Shot_2016-11-15_at_9.43.40_PM.png", "Screen Shot 2016-11-15 at 9.43.40 PM.png", 600, 454, "#eeeff0" ] } ] } [/block] ##New User & User Some people gloss over this metric, but tracking your users is fundamental to creating deeper engagement, like segmenting audiences, tracking specific behavior and launching successful app marketing campaigns. Once you know your user base and current active users, you have a baseline for improving engagement to increase users across channels, those who have dropped out of a desired funnel, or those within your market space who haven’t yet downloaded your app. You also gain greater insight into the monetization behavior of users, including the degree of usage, who makes in-app purchases, and who clicks through to ads. [block:image] { "images": [ { "image": [ "https://files.readme.io/3aba1d3-Screen_Shot_2016-11-15_at_9.43.18_PM.png", "Screen Shot 2016-11-15 at 9.43.18 PM.png", 600, 452, "#1e1e1e" ] } ] } [/block]
{"__v":0,"_id":"582bbbaae290ea0f00ec07a7","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"You've already use another platform before and now concern how to migrate your data from it to our service. You can rapidly finish importing subscriber in 3 mins. Lets get fast & furious!\n\nNow you might wonder about which file you have to use to import your data to our service. Forget it! We've prepared it already, just simply download fill your data and send back to us. Now let get a walkthrough in importer template file (only accept .csv file).\nDownload our template here: https://dl.dropboxusercontent.com/s/d3cgo4ohbakf5q9/subscriber_importer_template.csv?dl=0\n\nHOLLER expects that the first row in your CSV file will contain the headers for each column in the file. The number of columns in each row must match the number of headers. All headers is listed as the following:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Field Name (Header)\",\n    \"h-1\": \"Data Type\",\n    \"0-0\": \"username\",\n    \"1-0\": \"first_name\",\n    \"2-0\": \"last_name\",\n    \"3-0\": \"nationality\",\n    \"4-0\": \"address\",\n    \"5-0\": \"device_type\",\n    \"6-0\": \"push_device_token\",\n    \"7-0\": \"email\",\n    \"8-0\": \"cellphone_number\",\n    \"9-0\": \"is_active\",\n    \"10-0\": \"gender\",\n    \"11-0\": \"day_of_birth\",\n    \"0-1\": \"String\",\n    \"1-1\": \"String\",\n    \"2-1\": \"String\",\n    \"3-1\": \"String\",\n    \"4-1\": \"String\",\n    \"5-1\": \"String (iOS/Android)\",\n    \"6-1\": \"String\",\n    \"7-1\": \"String\",\n    \"8-1\": \"Numeric\",\n    \"9-1\": \"Boolean\",\n    \"10-1\": \"Boolean (True == Male and False == Female)\",\n    \"11-1\": \"Date (dd/MM/yyyy)\",\n    \"12-0\": \"device_name\",\n    \"12-1\": \"String\"\n  },\n  \"cols\": 2,\n  \"rows\": 13\n}\n[/block]","category":"582bbbaae290ea0f00ec079e","createdAt":"2016-10-18T01:45:37.952Z","excerpt":"Rapid, Simple, Ease start new application from old subscribers","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":4,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"subscriber-importer-exporter","sync_unique":"","title":"Subscriber Importer","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Subscriber Importer

Rapid, Simple, Ease start new application from old subscribers

You've already use another platform before and now concern how to migrate your data from it to our service. You can rapidly finish importing subscriber in 3 mins. Lets get fast & furious! Now you might wonder about which file you have to use to import your data to our service. Forget it! We've prepared it already, just simply download fill your data and send back to us. Now let get a walkthrough in importer template file (only accept .csv file). Download our template here: https://dl.dropboxusercontent.com/s/d3cgo4ohbakf5q9/subscriber_importer_template.csv?dl=0 HOLLER expects that the first row in your CSV file will contain the headers for each column in the file. The number of columns in each row must match the number of headers. All headers is listed as the following: [block:parameters] { "data": { "h-0": "Field Name (Header)", "h-1": "Data Type", "0-0": "username", "1-0": "first_name", "2-0": "last_name", "3-0": "nationality", "4-0": "address", "5-0": "device_type", "6-0": "push_device_token", "7-0": "email", "8-0": "cellphone_number", "9-0": "is_active", "10-0": "gender", "11-0": "day_of_birth", "0-1": "String", "1-1": "String", "2-1": "String", "3-1": "String", "4-1": "String", "5-1": "String (iOS/Android)", "6-1": "String", "7-1": "String", "8-1": "Numeric", "9-1": "Boolean", "10-1": "Boolean (True == Male and False == Female)", "11-1": "Date (dd/MM/yyyy)", "12-0": "device_name", "12-1": "String" }, "cols": 2, "rows": 13 } [/block]
You've already use another platform before and now concern how to migrate your data from it to our service. You can rapidly finish importing subscriber in 3 mins. Lets get fast & furious! Now you might wonder about which file you have to use to import your data to our service. Forget it! We've prepared it already, just simply download fill your data and send back to us. Now let get a walkthrough in importer template file (only accept .csv file). Download our template here: https://dl.dropboxusercontent.com/s/d3cgo4ohbakf5q9/subscriber_importer_template.csv?dl=0 HOLLER expects that the first row in your CSV file will contain the headers for each column in the file. The number of columns in each row must match the number of headers. All headers is listed as the following: [block:parameters] { "data": { "h-0": "Field Name (Header)", "h-1": "Data Type", "0-0": "username", "1-0": "first_name", "2-0": "last_name", "3-0": "nationality", "4-0": "address", "5-0": "device_type", "6-0": "push_device_token", "7-0": "email", "8-0": "cellphone_number", "9-0": "is_active", "10-0": "gender", "11-0": "day_of_birth", "0-1": "String", "1-1": "String", "2-1": "String", "3-1": "String", "4-1": "String", "5-1": "String (iOS/Android)", "6-1": "String", "7-1": "String", "8-1": "Numeric", "9-1": "Boolean", "10-1": "Boolean (True == Male and False == Female)", "11-1": "Date (dd/MM/yyyy)", "12-0": "device_name", "12-1": "String" }, "cols": 2, "rows": 13 } [/block]
{"__v":0,"_id":"582d598412da041900969e1f","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"HOLLER empowers every mobile app with push capability and built-in analytic system. Our analytic system not only support developer with easy-integration also help marketer can get an overview on their app performance as well. Before start to engage mobile audience, you need to configure your app on our platform also mange your subscription. No worries! We help these with one-click settings and it takes around 5 minutes. \n\n##Subscription Management\nBy default, your app use **Free Plan**. You can upgrade to another plan with subscription by click on **Upgrade** button to start upgrading your app to another with exclusive features and better support from us.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ef4b5db-Settings_-_App_Settings.png\",\n        \"Settings - App Settings.png\",\n        327,\n        333,\n        \"#363c43\"\n      ]\n    }\n  ]\n}\n[/block]\nAlso you can review the following information belongs to Plan you're using now:\n-Name of current Plan.\n-Current Monthly Active User (MAU) of app.\n-MAU Limit of Plan.\n-Intelligent Delivery Support.\n-Receive Analytic Report Weekly.\n\n##App Settings\nYou can rename your default app, also upload new app image\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/4cf9aa3-AppName__AppImage.png\",\n        \"AppName + AppImage.png\",\n        667,\n        405,\n        \"#e3d9d3\"\n      ]\n    }\n  ]\n}\n[/block]\n##Push Notification Configurations\nPush Notification need a bit security configuration. Along this guide, we'll help you how get push certificate from Apple Developer. With Android, HOLLER supports Firebase Cloud Messaging (FCM) you simply copy credential key from Google Developer Console and paste it here.\n\n###APNs Certificate\nAPNs stands for **A**pple **P**ush **N**otification **S**ervice, an exclusive feature from Apple to support developer with push notification. First, you need a Apple Developer Account and access: https://developer.apple.com. Choose \"Account\" and it should look like the below screenshot\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a7919a6-Screen_Shot_2016-11-17_at_3.02.35_PM.png\",\n        \"Screen Shot 2016-11-17 at 3.02.35 PM.png\",\n        932,\n        692,\n        \"#80848b\"\n      ]\n    }\n  ]\n}\n[/block]\nInput your username and password and click on **Login** button to be redirected to Dashboard. You're going to see a developer dashboard\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/f77618a-Screen_Shot_2016-11-17_at_3.03.42_PM.png\",\n        \"Screen Shot 2016-11-17 at 3.03.42 PM.png\",\n        1278,\n        514,\n        \"#fbfbfb\"\n      ]\n    }\n  ]\n}\n[/block]\nClick on \"Certificates, Identifiers & Profile\". If you haven't register an identifier for you app, let create one and remember to enable **Push Notification** ability. Apple support **Development** and **Production** mode, they enables two independent environment for developer for testing and release. At this step, for development you can enable **Development** or both and don't forgot to download your Push Notification certificate, its extension is .cert. Then finish create your app identifier.\n\nThen you have to export your certificate from .cert to .p12. HOLLER Setting requires .p12 to enable your push service to Apple. Use Apple Keychain export it to .p12, you also can set password for it but we strongly recommend bypass by press \"Return\" or \"Enter\".\n\nLast step, open HOLLER's App Setting. Choose either **Development** or **Production** and upload respective certificate you got from Apple Developer. If your certificate have password, input them in the textfield below and click **Save** button. If your certificate is valid, system soon show information about your certificate.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/2860a74-Settings_-_App_Settings_-_Production_Cert_saved.png\",\n        \"Settings - App Settings - Production Cert (saved).png\",\n        668,\n        241,\n        \"#2b3137\"\n      ]\n    }\n  ]\n}\n[/block]\nYou also can remove your uploaded certificate and upload a replacement by click on \"Delete\" button to remove it and try another one.","category":"582bbbaae290ea0f00ec079e","createdAt":"2016-11-17T07:17:24.969Z","excerpt":"Configure app to fuel mobile app and start engaging your audience","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":5,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"app-setting-configuration","sync_unique":"","title":"App Setting & Configuration","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

App Setting & Configuration

Configure app to fuel mobile app and start engaging your audience

HOLLER empowers every mobile app with push capability and built-in analytic system. Our analytic system not only support developer with easy-integration also help marketer can get an overview on their app performance as well. Before start to engage mobile audience, you need to configure your app on our platform also mange your subscription. No worries! We help these with one-click settings and it takes around 5 minutes. ##Subscription Management By default, your app use **Free Plan**. You can upgrade to another plan with subscription by click on **Upgrade** button to start upgrading your app to another with exclusive features and better support from us. [block:image] { "images": [ { "image": [ "https://files.readme.io/ef4b5db-Settings_-_App_Settings.png", "Settings - App Settings.png", 327, 333, "#363c43" ] } ] } [/block] Also you can review the following information belongs to Plan you're using now: -Name of current Plan. -Current Monthly Active User (MAU) of app. -MAU Limit of Plan. -Intelligent Delivery Support. -Receive Analytic Report Weekly. ##App Settings You can rename your default app, also upload new app image [block:image] { "images": [ { "image": [ "https://files.readme.io/4cf9aa3-AppName__AppImage.png", "AppName + AppImage.png", 667, 405, "#e3d9d3" ] } ] } [/block] ##Push Notification Configurations Push Notification need a bit security configuration. Along this guide, we'll help you how get push certificate from Apple Developer. With Android, HOLLER supports Firebase Cloud Messaging (FCM) you simply copy credential key from Google Developer Console and paste it here. ###APNs Certificate APNs stands for **A**pple **P**ush **N**otification **S**ervice, an exclusive feature from Apple to support developer with push notification. First, you need a Apple Developer Account and access: https://developer.apple.com. Choose "Account" and it should look like the below screenshot [block:image] { "images": [ { "image": [ "https://files.readme.io/a7919a6-Screen_Shot_2016-11-17_at_3.02.35_PM.png", "Screen Shot 2016-11-17 at 3.02.35 PM.png", 932, 692, "#80848b" ] } ] } [/block] Input your username and password and click on **Login** button to be redirected to Dashboard. You're going to see a developer dashboard [block:image] { "images": [ { "image": [ "https://files.readme.io/f77618a-Screen_Shot_2016-11-17_at_3.03.42_PM.png", "Screen Shot 2016-11-17 at 3.03.42 PM.png", 1278, 514, "#fbfbfb" ] } ] } [/block] Click on "Certificates, Identifiers & Profile". If you haven't register an identifier for you app, let create one and remember to enable **Push Notification** ability. Apple support **Development** and **Production** mode, they enables two independent environment for developer for testing and release. At this step, for development you can enable **Development** or both and don't forgot to download your Push Notification certificate, its extension is .cert. Then finish create your app identifier. Then you have to export your certificate from .cert to .p12. HOLLER Setting requires .p12 to enable your push service to Apple. Use Apple Keychain export it to .p12, you also can set password for it but we strongly recommend bypass by press "Return" or "Enter". Last step, open HOLLER's App Setting. Choose either **Development** or **Production** and upload respective certificate you got from Apple Developer. If your certificate have password, input them in the textfield below and click **Save** button. If your certificate is valid, system soon show information about your certificate. [block:image] { "images": [ { "image": [ "https://files.readme.io/2860a74-Settings_-_App_Settings_-_Production_Cert_saved.png", "Settings - App Settings - Production Cert (saved).png", 668, 241, "#2b3137" ] } ] } [/block] You also can remove your uploaded certificate and upload a replacement by click on "Delete" button to remove it and try another one.
HOLLER empowers every mobile app with push capability and built-in analytic system. Our analytic system not only support developer with easy-integration also help marketer can get an overview on their app performance as well. Before start to engage mobile audience, you need to configure your app on our platform also mange your subscription. No worries! We help these with one-click settings and it takes around 5 minutes. ##Subscription Management By default, your app use **Free Plan**. You can upgrade to another plan with subscription by click on **Upgrade** button to start upgrading your app to another with exclusive features and better support from us. [block:image] { "images": [ { "image": [ "https://files.readme.io/ef4b5db-Settings_-_App_Settings.png", "Settings - App Settings.png", 327, 333, "#363c43" ] } ] } [/block] Also you can review the following information belongs to Plan you're using now: -Name of current Plan. -Current Monthly Active User (MAU) of app. -MAU Limit of Plan. -Intelligent Delivery Support. -Receive Analytic Report Weekly. ##App Settings You can rename your default app, also upload new app image [block:image] { "images": [ { "image": [ "https://files.readme.io/4cf9aa3-AppName__AppImage.png", "AppName + AppImage.png", 667, 405, "#e3d9d3" ] } ] } [/block] ##Push Notification Configurations Push Notification need a bit security configuration. Along this guide, we'll help you how get push certificate from Apple Developer. With Android, HOLLER supports Firebase Cloud Messaging (FCM) you simply copy credential key from Google Developer Console and paste it here. ###APNs Certificate APNs stands for **A**pple **P**ush **N**otification **S**ervice, an exclusive feature from Apple to support developer with push notification. First, you need a Apple Developer Account and access: https://developer.apple.com. Choose "Account" and it should look like the below screenshot [block:image] { "images": [ { "image": [ "https://files.readme.io/a7919a6-Screen_Shot_2016-11-17_at_3.02.35_PM.png", "Screen Shot 2016-11-17 at 3.02.35 PM.png", 932, 692, "#80848b" ] } ] } [/block] Input your username and password and click on **Login** button to be redirected to Dashboard. You're going to see a developer dashboard [block:image] { "images": [ { "image": [ "https://files.readme.io/f77618a-Screen_Shot_2016-11-17_at_3.03.42_PM.png", "Screen Shot 2016-11-17 at 3.03.42 PM.png", 1278, 514, "#fbfbfb" ] } ] } [/block] Click on "Certificates, Identifiers & Profile". If you haven't register an identifier for you app, let create one and remember to enable **Push Notification** ability. Apple support **Development** and **Production** mode, they enables two independent environment for developer for testing and release. At this step, for development you can enable **Development** or both and don't forgot to download your Push Notification certificate, its extension is .cert. Then finish create your app identifier. Then you have to export your certificate from .cert to .p12. HOLLER Setting requires .p12 to enable your push service to Apple. Use Apple Keychain export it to .p12, you also can set password for it but we strongly recommend bypass by press "Return" or "Enter". Last step, open HOLLER's App Setting. Choose either **Development** or **Production** and upload respective certificate you got from Apple Developer. If your certificate have password, input them in the textfield below and click **Save** button. If your certificate is valid, system soon show information about your certificate. [block:image] { "images": [ { "image": [ "https://files.readme.io/2860a74-Settings_-_App_Settings_-_Production_Cert_saved.png", "Settings - App Settings - Production Cert (saved).png", 668, 241, "#2b3137" ] } ] } [/block] You also can remove your uploaded certificate and upload a replacement by click on "Delete" button to remove it and try another one.
{"__v":0,"_id":"582bbbaae290ea0f00ec07b2","api":{"auth":"never","examples":{"codes":[{"name":"Json Format","language":"javascript","code":"{\n  \"status\": 0,\n  \"code\": 0,\n  \"message\": \"string\",\n  \"errors\": [\n    {}\n  ]\n}"}]},"method":"get","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/subscribers"},"body":"This API Previewer helps developer to make request and retrieve all subscriber which is currently subscriber to HOLLER's service. Please mind about API version, if you're going to consume latest version please change to specific version you prefer to use.","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T04:21:24.874Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":0,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2subscribers","sync_unique":"","title":"/v2/subscribers","type":"get","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

get/v2/subscribers


This API Previewer helps developer to make request and retrieve all subscriber which is currently subscriber to HOLLER's service. Please mind about API version, if you're going to consume latest version please change to specific version you prefer to use.

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



This API Previewer helps developer to make request and retrieve all subscriber which is currently subscriber to HOLLER's service. Please mind about API version, if you're going to consume latest version please change to specific version you prefer to use.
{"__v":0,"_id":"582bbbaae290ea0f00ec07b3","api":{"auth":"never","examples":{"codes":[]},"method":"post","params":[{"_id":"57e2368b85b9db0e00214305","ref":"","in":"body","required":true,"desc":"Username of subscriber","default":"","type":"string","name":"username"},{"_id":"57e2368b85b9db0e00214304","ref":"","in":"body","required":true,"desc":"Email of subscriber","default":"","type":"string","name":"email"},{"_id":"57e2368b85b9db0e00214303","ref":"","in":"body","required":true,"desc":"First name of subscriber","default":"","type":"string","name":"first_name"},{"_id":"57e2368b85b9db0e00214302","ref":"","in":"body","required":true,"desc":"Last Name of subscriber","default":"","type":"string","name":"last_name"},{"_id":"57e2368b85b9db0e00214301","ref":"","in":"body","required":true,"desc":"Cellphone number of subscriber, use to receive SMS from campaign","default":"","type":"string","name":"phone"},{"_id":"57e2368b85b9db0e00214300","ref":"","in":"body","required":true,"desc":"Unique device token of smartphone (iOS & Android) to register push notification service","default":"","type":"string","name":"device_token"},{"_id":"57e2368b85b9db0e002142ff","ref":"","in":"body","required":true,"desc":"Device type determines iOS/Android","default":"iOS","type":"string","name":"device_type"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/subscribers/register"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T07:28:11.983Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":1,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2subscribersregister","sync_unique":"","title":"/v2/subscribers/register","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/subscribers/register


Body Params

username:
required
string
Username of subscriber
email:
required
string
Email of subscriber
first_name:
required
string
First name of subscriber
last_name:
required
string
Last Name of subscriber
phone:
required
string
Cellphone number of subscriber, use to receive SMS from campaign
device_token:
required
string
Unique device token of smartphone (iOS & Android) to register push notification service
device_type:
required
stringiOS
Device type determines iOS/Android

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07b4","api":{"auth":"never","examples":{"codes":[]},"method":"get","params":[{"_id":"57e23fe8ae01870e00603b83","ref":"","in":"path","required":false,"desc":"Unique ID for subscriber","default":"","type":"string","name":"id"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/subscribers/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T07:30:23.477Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":2,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2subscribersid","sync_unique":"","title":"/v2/subscribers/:id","type":"get","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

get/v2/subscribers/:id


Path Params

id:
string
Unique ID for subscriber

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07b5","api":{"auth":"never","examples":{"codes":[]},"method":"put","params":[{"_id":"57e242df85b9db0e0021431e","ref":"","in":"path","required":false,"desc":"Unique ID for subscriber","default":"","type":"string","name":"id"},{"_id":"57e242df85b9db0e0021431d","ref":"","in":"body","required":false,"desc":"Username of subscriber","default":"","type":"string","name":"username"},{"_id":"57e242df85b9db0e0021431c","ref":"","in":"body","required":false,"desc":"Email of subscriber","default":"","type":"string","name":"email"},{"_id":"57e242df85b9db0e0021431b","ref":"","in":"body","required":false,"desc":"First name of subscriber","default":"","type":"string","name":"first_name"},{"_id":"57e242df85b9db0e0021431a","ref":"","in":"body","required":false,"desc":"Last name of subscriber","default":"","type":"string","name":"last_name"},{"_id":"57e242df85b9db0e00214319","ref":"","in":"body","required":false,"desc":"Cellphone number of subscriber","default":"","type":"string","name":"phone"},{"_id":"57e242df85b9db0e00214318","ref":"","in":"body","required":false,"desc":"Unique device token of smartphone (iOS & Android) to register push notification service","default":"","type":"string","name":"device_token"},{"_id":"57e2431885b9db0e0021431f","ref":"","in":"body","required":false,"desc":"Device type determines iOS/Android","default":"iOS","type":"string","name":"device_type"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/subscribers/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T08:20:47.127Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":3,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2subscribersid-1","sync_unique":"","title":"/v2/subscribers/:id","type":"put","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

put/v2/subscribers/:id


Path Params

id:
string
Unique ID for subscriber

Body Params

username:
string
Username of subscriber
email:
string
Email of subscriber
first_name:
string
First name of subscriber
last_name:
string
Last name of subscriber
phone:
string
Cellphone number of subscriber
device_token:
string
Unique device token of smartphone (iOS & Android) to register push notification service
device_type:
stringiOS
Device type determines iOS/Android

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07b6","api":{"auth":"never","examples":{"codes":[]},"method":"post","params":[{"_id":"57e24403cda3750e0054a7d3","ref":"","in":"path","required":false,"desc":"Unique for subscriber","default":"","type":"string","name":"id"},{"_id":"57e24403cda3750e0054a7d2","ref":"","in":"body","required":false,"desc":"Unique device token of smartphone (iOS & Android) to register push notification service","default":"","type":"string","name":"device_token"},{"_id":"57e2441818164d0e0062141b","ref":"","in":"body","required":false,"desc":"Device type determines iOS/Android","default":"","type":"string","name":"device_type"},{"_id":"57e2444d572fac1700f83138","ref":"","in":"body","required":false,"desc":"Determine status of subscriber's device","default":"","type":"boolean","name":"active"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/subscribers/:id/device_token"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T08:24:48.818Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":4,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2subscribersiddevice_token","sync_unique":"","title":"/v2/subscribers/:id/device_token","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/subscribers/:id/device_token


Path Params

id:
string
Unique for subscriber

Body Params

device_token:
string
Unique device token of smartphone (iOS & Android) to register push notification service
device_type:
string
Device type determines iOS/Android
active:
boolean
Determine status of subscriber's device

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07b7","api":{"auth":"never","examples":{"codes":[]},"method":"get","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/subscribers/total"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T08:28:57.525Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":5,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2subscriberstotal","sync_unique":"","title":"/v2/subscribers/total","type":"get","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

get/v2/subscribers/total



User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07b8","api":{"auth":"required","examples":{"codes":[]},"method":"post","params":[{"_id":"57e249691e7b7220000d7ef5","ref":"","in":"body","required":false,"desc":"Name of campaign","default":"","type":"string","name":"name"},{"_id":"57e249691e7b7220000d7ef4","ref":"","in":"body","required":false,"desc":"Description of campaign","default":"","type":"string","name":"description"},{"_id":"57e249691e7b7220000d7ef3","ref":"","in":"body","required":false,"desc":"Specify channel to engage subscriber","default":"{     type: \"pushnotif/sms/email\",     content: {       // the content depending on channel type       // if channel type is \"pushnotif\"       subject: \"\",       content: \"\",       deep_link: \"\"        // if channel type is \"sms\"       from: \"\",       content: \"\"         // if channel type is email       subject: \"\",       from:\"\" ,       content:\"\"     }   }","type":"object","name":"channel"},{"_id":"57e24b4085b9db0e00214326","ref":"","in":"body","required":false,"desc":"Targeting to subscriber with segmentation","default":"{     segment: {       device: \"\",       country: \"\",       gender: \"\",       age: {         from: 5,         to: 10       },       industry: \"\",       interest: \"\",       designation: \"\",       date_of_register: {         from: date-time,         to: date-time       },       location: \"\"     }   }","type":"object","name":"target"},{"_id":"57e24b4085b9db0e00214325","ref":"","in":"body","required":false,"desc":"Delivery options for campaign, either send now or to be scheduled","default":"{     now: true/false (true: send now, false: scheduled),     date: date-time   }","type":"string","name":"time"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/communications/create"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T08:46:17.024Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":6,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2communicationscreate","sync_unique":"","title":"/v2/communications/create","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/communications/create


Body Params

name:
string
Name of campaign
description:
string
Description of campaign
channel:
object{ type: "pushnotif/sms/email", content: { // the content depending on channel type // if channel type is "pushnotif" subject: "", content: "", deep_link: "" // if channel type is "sms" from: "", content: "" // if channel type is email subject: "", from:"" , content:"" } }
Specify channel to engage subscriber
target:
object{ segment: { device: "", country: "", gender: "", age: { from: 5, to: 10 }, industry: "", interest: "", designation: "", date_of_register: { from: date-time, to: date-time }, location: "" } }
Targeting to subscriber with segmentation
time:
string{ now: true/false (true: send now, false: scheduled), date: date-time }
Delivery options for campaign, either send now or to be scheduled

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07b9","api":{"auth":"required","examples":{"codes":[]},"method":"get","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/communications"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T09:00:02.607Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":7,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2communications","sync_unique":"","title":"/v2/communications","type":"get","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

get/v2/communications



User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07ba","api":{"auth":"required","examples":{"codes":[]},"method":"delete","params":[{"_id":"57e24c541e7b7220000d7ef9","ref":"","in":"path","required":false,"desc":"Unique ID for campaign","default":"","type":"int","name":"id"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/communications/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T09:01:08.241Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":8,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2communicationsid","sync_unique":"","title":"/v2/communications/:id","type":"delete","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

delete/v2/communications/:id


Path Params

id:
integer
Unique ID for campaign

User Information

Try It Out

delete
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07bb","api":{"auth":"required","examples":{"codes":[]},"method":"get","params":[{"_id":"57e24c7dae01870e00603b9a","ref":"","in":"path","required":false,"desc":"Unique ID for campaign","default":"","type":"string","name":"id"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/communications/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-21T09:01:49.913Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":9,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2communicationsid-1","sync_unique":"","title":"/v2/communications/:id","type":"get","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

get/v2/communications/:id


Path Params

id:
string
Unique ID for campaign

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07bc","api":{"auth":"never","examples":{"codes":[]},"method":"post","params":[{"_id":"57e3c00b6865da170085a3c2","ref":"","in":"body","required":false,"desc":"Name of interrest","default":"","type":"string","name":"interest_name"},{"_id":"57e3c00b6865da170085a3c1","ref":"","in":"body","required":false,"desc":"Publish status of Interest, value should be Boolean. If \"Yes\" this interest segment can be used to filter subscriber, either \"No\", this interest is not visible and unable to use to filter subscriber","default":"","type":"boolean","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{\n  \"status\": 0,\n  \"code\": 0,\n  \"message\": \"string\",\n  \"errors\": [\n    {}\n  ]\n}","name":""}]},"settings":"","url":"/v2/interest"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-22T11:27:07.668Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":10,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2interest","sync_unique":"","title":"/v2/interest","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/interest


Body Params

interest_name:
string
Name of interrest
is_published:
boolean
Publish status of Interest, value should be Boolean. If "Yes" this interest segment can be used to filter subscriber, either "No", this interest is not visible and unable to use to filter subscriber

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07bd","api":{"auth":"never","examples":{"codes":[]},"method":"put","params":[{"_id":"57e3c0698e37b01700eb6ca5","ref":"","in":"path","required":false,"desc":"Unique ID for Interest","default":"","type":"string","name":"id"},{"_id":"57e3c0698e37b01700eb6ca4","ref":"","in":"body","required":false,"desc":"Name for Interest","default":"","type":"string","name":"interest_name"},{"_id":"57e3c0698e37b01700eb6ca3","ref":"","in":"body","required":false,"desc":"Use's able to change interest segment to another app","default":"","type":"string","name":"application_id"},{"_id":"57e3c0698e37b01700eb6ca2","ref":"","in":"body","required":false,"desc":"Publish status of Interest, value should be Boolean. If \"Yes\" this interest segment can be used to filter subscriber, either \"No\", this interest is not visible and unable to use to filter subscriber","default":"","type":"boolean","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{\n  \"status\": 0,\n  \"code\": 0,\n  \"message\": \"string\",\n  \"errors\": [\n    {}\n  ]\n}","name":""},{"status":404,"language":"text","code":"{\n  \"status\": 0,\n  \"code\": 0,\n  \"message\": \"string\"\n}"}]},"settings":"","url":"/v2/interest/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-22T11:28:41.230Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":11,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2interestid","sync_unique":"","title":"/v2/interest/:id","type":"put","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

put/v2/interest/:id


Path Params

id:
string
Unique ID for Interest

Body Params

interest_name:
string
Name for Interest
application_id:
string
Use's able to change interest segment to another app
is_published:
boolean
Publish status of Interest, value should be Boolean. If "Yes" this interest segment can be used to filter subscriber, either "No", this interest is not visible and unable to use to filter subscriber

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07be","api":{"auth":"never","examples":{"codes":[]},"method":"post","params":[{"_id":"57e48ec100c8680e00fae6ed","ref":"","in":"body","required":false,"desc":"Name for industry","default":"","type":"string","name":"industry_name"},{"_id":"57e48ec100c8680e00fae6ec","ref":"","in":"body","required":false,"desc":"Publish status of Industry, value should be Boolean. If \"Yes\" this interest segment can be used to filter subscriber, either \"No\", this industry is not visible and unable to use to filter subscriber","default":"","type":"boolean","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/industry/"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-23T02:09:05.352Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":12,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2industry","sync_unique":"","title":"/v2/industry","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/industry


Body Params

industry_name:
string
Name for industry
is_published:
boolean
Publish status of Industry, value should be Boolean. If "Yes" this interest segment can be used to filter subscriber, either "No", this industry is not visible and unable to use to filter subscriber

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07bf","api":{"auth":"required","examples":{"codes":[]},"method":"post","params":[{"_id":"57e490d7fe6af90e002ed542","ref":"","in":"body","required":false,"desc":"ID for Industry","default":"","type":"int","name":"id"},{"_id":"57e490d7fe6af90e002ed541","ref":"","in":"body","required":false,"desc":"Name for Industry","default":"","type":"string","name":"industry_name"},{"_id":"57e490d7fe6af90e002ed540","ref":"","in":"body","required":false,"desc":"The application owns this industry as segment to be able to filter subscriber","default":"","type":"string","name":"application_id"},{"_id":"57e490d7fe6af90e002ed53f","ref":"","in":"body","required":false,"desc":"Publish status of Industry, value should be Boolean. If \"Yes\" this interest segment can be used to filter subscriber, either \"No\", this industry is not visible and unable to use to filter subscriber","default":"","type":"boolean","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/industry/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-23T02:10:08.646Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":13,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2industryid","sync_unique":"","title":"/v2/industry/:id","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/industry/:id


Body Params

id:
integer
ID for Industry
industry_name:
string
Name for Industry
application_id:
string
The application owns this industry as segment to be able to filter subscriber
is_published:
boolean
Publish status of Industry, value should be Boolean. If "Yes" this interest segment can be used to filter subscriber, either "No", this industry is not visible and unable to use to filter subscriber

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07c0","api":{"auth":"required","examples":{"codes":[]},"method":"post","params":[{"_id":"57e48fe3f3d7fc0e009c503d","ref":"","in":"body","required":false,"desc":"Name for designation","default":"","type":"string","name":"designation_name"},{"_id":"57e4903500c8680e00fae6ee","ref":"","in":"body","required":false,"desc":"Publish status of Designation, value should be Boolean. If \"Yes\" this interest segment can be used to filter subscriber, either \"No\", this designation is not visible and unable to use to filter subscriber","default":"","type":"string","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/designation"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-23T02:13:55.977Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":14,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2designation","sync_unique":"","title":"/v2/designation","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/designation


Body Params

designation_name:
string
Name for designation
is_published:
string
Publish status of Designation, value should be Boolean. If "Yes" this interest segment can be used to filter subscriber, either "No", this designation is not visible and unable to use to filter subscriber

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07c1","api":{"auth":"required","examples":{"codes":[]},"method":"put","params":[{"_id":"57e492ada29afa0e00d31157","ref":"","in":"body","required":false,"desc":"ID for Designation","default":"","type":"int","name":"id"},{"_id":"57e492ada29afa0e00d31156","ref":"","in":"body","required":false,"desc":"Name for Designation","default":"","type":"string","name":"designation_name"},{"_id":"57e492ada29afa0e00d31155","ref":"","in":"body","required":false,"desc":"The application owns this designation as segment to be able to filter subscriber","default":"","type":"string","name":"application_id"},{"_id":"57e492c5390bb60e004165b0","ref":"","in":"body","required":false,"desc":"Publish status of Designation, value should be Boolean. If \"Yes\" this interest segment can be used to filter subscriber, either \"No\", this designation is not visible and unable to use to filter subscriber","default":"","type":"boolean","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/designation/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-23T02:16:28.642Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":15,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2designationid","sync_unique":"","title":"/v2/designation/:id","type":"put","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

put/v2/designation/:id


Body Params

id:
integer
ID for Designation
designation_name:
string
Name for Designation
application_id:
string
The application owns this designation as segment to be able to filter subscriber
is_published:
boolean
Publish status of Designation, value should be Boolean. If "Yes" this interest segment can be used to filter subscriber, either "No", this designation is not visible and unable to use to filter subscriber

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07c2","api":{"auth":"required","examples":{"codes":[]},"method":"post","params":[{"_id":"57e493d3f3d7fc0e009c5042","ref":"","in":"body","required":false,"desc":"Name for location","default":"","type":"string","name":"location_name"},{"_id":"57e493d3f3d7fc0e009c5041","ref":"","in":"body","required":false,"desc":"The radius of proximity cover on map to reach all subscriber inside","default":"","type":"float","name":"radius"},{"_id":"57e493d3f3d7fc0e009c5040","ref":"","in":"body","required":false,"desc":"Longitude for location","default":"","type":"long","name":"gps_longitude"},{"_id":"57e493d3f3d7fc0e009c503f","ref":"","in":"body","required":false,"desc":"Latitude for location","default":"","type":"long","name":"gps_latitude"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/location"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-23T02:30:43.539Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":16,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2location","sync_unique":"","title":"/v2/location","type":"post","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

post/v2/location


Body Params

location_name:
string
Name for location
radius:
float
The radius of proximity cover on map to reach all subscriber inside
gps_longitude:
long
Longitude for location
gps_latitude:
long
Latitude for location

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07c3","api":{"auth":"required","examples":{"codes":[]},"method":"put","params":[{"_id":"57e4947d7ee1b50e00b7de8f","ref":"","in":"path","required":false,"desc":"ID for Location","default":"","type":"string","name":"id"},{"_id":"57e4947d7ee1b50e00b7de8e","ref":"","in":"body","required":false,"desc":"Name for location","default":"","type":"string","name":"location_name"},{"_id":"57e4947d7ee1b50e00b7de8d","ref":"","in":"body","required":false,"desc":"The radius of proximity cover on map to reach all subscriber inside","default":"","type":"float","name":"radius"},{"_id":"57e49539f3d7fc0e009c5046","ref":"","in":"body","required":false,"desc":"Longitude for location","default":"","type":"long","name":"gps_longitude"},{"_id":"57e49539f3d7fc0e009c5045","ref":"","in":"body","required":false,"desc":"Latitude for location","default":"","type":"long","name":"gps_latitude"},{"_id":"57e49539f3d7fc0e009c5044","ref":"","in":"body","required":false,"desc":"The application owns this location as segment to be able to filter subscriber","default":"","type":"string","name":"application_id"},{"_id":"57e4956f390bb60e004165b2","ref":"","in":"body","required":false,"desc":"Publish status of Location, value should be Boolean. If \"Yes\" this location segment can be used to filter subscriber, either \"No\", this designation is not visible and unable to use to filter subscriber","default":"","type":"boolean","name":"is_published"}],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","url":"/v2/location/:id"},"body":"","category":"582bbbaae290ea0f00ec07a3","createdAt":"2016-09-23T02:33:33.173Z","excerpt":"","githubsync":"","hidden":false,"isReference":true,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":17,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"v2locationid","sync_unique":"","title":"/v2/location/:id","type":"put","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

put/v2/location/:id


Path Params

id:
string
ID for Location

Body Params

location_name:
string
Name for location
radius:
float
The radius of proximity cover on map to reach all subscriber inside
gps_longitude:
long
Longitude for location
gps_latitude:
long
Latitude for location
application_id:
string
The application owns this location as segment to be able to filter subscriber
is_published:
boolean
Publish status of Location, value should be Boolean. If "Yes" this location segment can be used to filter subscriber, either "No", this designation is not visible and unable to use to filter subscriber

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Result Format



{"__v":0,"_id":"582bbbaae290ea0f00ec07ad","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"##Can I change plan?\nOf course. Anytime you can upgrade or cancel subscription.\n\n##Can I cancel my subscription?\nYes you can cancel your subscription any time you want, but only eligible with monthly subscription. Unfortunately, you can't cancel annual subscription. Annual subscription offers a cheaper price, cancelling it doesn't mean you can get money back. Non-refundable.\n\n##Which payment method can I use?\nCurrently, we offer online Payment with Stripe (https://stripe.com). Very secured, fast and transparent. We accept: Visa, Master and American Express (Amex). \n\n##What happen if my credit card is insufficient balance?\nOur partner - Stripe will inform us as soon as possible about problem with auto debiting your account. We'll intimate you via email, cellphone number (use for account registration), in mean time our system keeps your service in 30 days. At 31st date, if your subscription won't be extended, your plan will be downgrade to Free plan.\n\n##Does HOLLER provide invoice based billing?\nYes. Only customer who have opted our Enterprise plan.\n\n##Does HOLLER require credit card for Free plan?\nDefinitely no. You can use our free plan until want to upgrade to another plans require credit card.\n\n##Which feature is included in Free Plan?\n-Campaign Dashboard Centralization.\n-Analytic Dashboard.\n-1 Free Active Campaign.\n-Free Push Notification.\n-Free Daily/Weekly/Monthly Report.\n-Free first 1.000 MAU.\n\n##How can I reach HOLLER's Discount & Promotion?\nTo be quickly updated about our Discount & Promotion, you can reach us at:\n-Subscriber to our newsletter at: https://appholler.com/contact-us/\nLike & follow us on social network:\n         -Facebook: https://www.facebook.com/RainmakerLabs/\n         -Twitter: https://twitter.com/rainmakerlabssg\n         -Google Plus: https://plus.google.com/+Rainmaker-Labs/posts","category":"582bbbaae290ea0f00ec079f","createdAt":"2016-09-29T02:21:38.103Z","excerpt":"","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":0,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"pricing-upgradation","sync_unique":"","title":"Pricing & Upgradation","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Pricing & Upgradation


##Can I change plan? Of course. Anytime you can upgrade or cancel subscription. ##Can I cancel my subscription? Yes you can cancel your subscription any time you want, but only eligible with monthly subscription. Unfortunately, you can't cancel annual subscription. Annual subscription offers a cheaper price, cancelling it doesn't mean you can get money back. Non-refundable. ##Which payment method can I use? Currently, we offer online Payment with Stripe (https://stripe.com). Very secured, fast and transparent. We accept: Visa, Master and American Express (Amex). ##What happen if my credit card is insufficient balance? Our partner - Stripe will inform us as soon as possible about problem with auto debiting your account. We'll intimate you via email, cellphone number (use for account registration), in mean time our system keeps your service in 30 days. At 31st date, if your subscription won't be extended, your plan will be downgrade to Free plan. ##Does HOLLER provide invoice based billing? Yes. Only customer who have opted our Enterprise plan. ##Does HOLLER require credit card for Free plan? Definitely no. You can use our free plan until want to upgrade to another plans require credit card. ##Which feature is included in Free Plan? -Campaign Dashboard Centralization. -Analytic Dashboard. -1 Free Active Campaign. -Free Push Notification. -Free Daily/Weekly/Monthly Report. -Free first 1.000 MAU. ##How can I reach HOLLER's Discount & Promotion? To be quickly updated about our Discount & Promotion, you can reach us at: -Subscriber to our newsletter at: https://appholler.com/contact-us/ Like & follow us on social network: -Facebook: https://www.facebook.com/RainmakerLabs/ -Twitter: https://twitter.com/rainmakerlabssg -Google Plus: https://plus.google.com/+Rainmaker-Labs/posts
##Can I change plan? Of course. Anytime you can upgrade or cancel subscription. ##Can I cancel my subscription? Yes you can cancel your subscription any time you want, but only eligible with monthly subscription. Unfortunately, you can't cancel annual subscription. Annual subscription offers a cheaper price, cancelling it doesn't mean you can get money back. Non-refundable. ##Which payment method can I use? Currently, we offer online Payment with Stripe (https://stripe.com). Very secured, fast and transparent. We accept: Visa, Master and American Express (Amex). ##What happen if my credit card is insufficient balance? Our partner - Stripe will inform us as soon as possible about problem with auto debiting your account. We'll intimate you via email, cellphone number (use for account registration), in mean time our system keeps your service in 30 days. At 31st date, if your subscription won't be extended, your plan will be downgrade to Free plan. ##Does HOLLER provide invoice based billing? Yes. Only customer who have opted our Enterprise plan. ##Does HOLLER require credit card for Free plan? Definitely no. You can use our free plan until want to upgrade to another plans require credit card. ##Which feature is included in Free Plan? -Campaign Dashboard Centralization. -Analytic Dashboard. -1 Free Active Campaign. -Free Push Notification. -Free Daily/Weekly/Monthly Report. -Free first 1.000 MAU. ##How can I reach HOLLER's Discount & Promotion? To be quickly updated about our Discount & Promotion, you can reach us at: -Subscriber to our newsletter at: https://appholler.com/contact-us/ Like & follow us on social network: -Facebook: https://www.facebook.com/RainmakerLabs/ -Twitter: https://twitter.com/rainmakerlabssg -Google Plus: https://plus.google.com/+Rainmaker-Labs/posts
{"__v":0,"_id":"582bbbaae290ea0f00ec07ae","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"##Typically how long it takes to integration HOLLER's service to our mobile app?\nTypically it takes around 15 mins to integrate HOLLER's service to every mobile app. We offer out library officially on Cocoapods for iOS development & Gradle for Android development. These dependency managements can help you start install our library shortly to start integrate our service.\n\n##How many step do developer have to start engage audience?\nFortunately, developer simply do the following steps:\n-Step 1: Register HOLLER account & get secret codes includes appId and access key for integration\n-Step 2: Install library via Cocoapods or Gradle\n-Step 3: Start integrating with secret code\n-Step 4: Go to dashboard and start engage audience with Campaign Dashboard.\n\nWell, It takes around 15 minutes to empower mobile app with our capabilities.\n\n##Is my data secured?\nOf course. We are hosted on Amazon Web Service with complicated Digital Signature Authentication & Authorization. No one else other than administrator of accounts can access the data\n\n##Does HOLLER provides hosted solution?\nUnfortunately, we currently doesn't provide this.","category":"582bbbaae290ea0f00ec079f","createdAt":"2016-09-29T02:21:58.245Z","excerpt":"","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":1,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"integration","sync_unique":"","title":"Integration","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Integration


##Typically how long it takes to integration HOLLER's service to our mobile app? Typically it takes around 15 mins to integrate HOLLER's service to every mobile app. We offer out library officially on Cocoapods for iOS development & Gradle for Android development. These dependency managements can help you start install our library shortly to start integrate our service. ##How many step do developer have to start engage audience? Fortunately, developer simply do the following steps: -Step 1: Register HOLLER account & get secret codes includes appId and access key for integration -Step 2: Install library via Cocoapods or Gradle -Step 3: Start integrating with secret code -Step 4: Go to dashboard and start engage audience with Campaign Dashboard. Well, It takes around 15 minutes to empower mobile app with our capabilities. ##Is my data secured? Of course. We are hosted on Amazon Web Service with complicated Digital Signature Authentication & Authorization. No one else other than administrator of accounts can access the data ##Does HOLLER provides hosted solution? Unfortunately, we currently doesn't provide this.
##Typically how long it takes to integration HOLLER's service to our mobile app? Typically it takes around 15 mins to integrate HOLLER's service to every mobile app. We offer out library officially on Cocoapods for iOS development & Gradle for Android development. These dependency managements can help you start install our library shortly to start integrate our service. ##How many step do developer have to start engage audience? Fortunately, developer simply do the following steps: -Step 1: Register HOLLER account & get secret codes includes appId and access key for integration -Step 2: Install library via Cocoapods or Gradle -Step 3: Start integrating with secret code -Step 4: Go to dashboard and start engage audience with Campaign Dashboard. Well, It takes around 15 minutes to empower mobile app with our capabilities. ##Is my data secured? Of course. We are hosted on Amazon Web Service with complicated Digital Signature Authentication & Authorization. No one else other than administrator of accounts can access the data ##Does HOLLER provides hosted solution? Unfortunately, we currently doesn't provide this.
{"__v":0,"_id":"582bbbaae290ea0f00ec07af","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"##How marketer can engage audience?\nWe have comprehended User Guide document for Marketer. This help every Marketer can quickly start audience engagement.\n\n##What's Intelligent Delivery?\nHOLLER offers Intelligent Delivery, new generation of technology that engage audience by smart way. Self-make decision empower this feature work independently and autonomously.\n\n##Does HOLLER provide Re-Engagement?\nOf course! HOLLER system backed by a real-time system that means it can keep track every movement of user and can start re-engagement if needs.","category":"582bbbaae290ea0f00ec079f","createdAt":"2016-09-29T02:22:17.324Z","excerpt":"","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":2,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"mobile-marketing-automation","sync_unique":"","title":"Mobile Marketing Automation","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Mobile Marketing Automation


##How marketer can engage audience? We have comprehended User Guide document for Marketer. This help every Marketer can quickly start audience engagement. ##What's Intelligent Delivery? HOLLER offers Intelligent Delivery, new generation of technology that engage audience by smart way. Self-make decision empower this feature work independently and autonomously. ##Does HOLLER provide Re-Engagement? Of course! HOLLER system backed by a real-time system that means it can keep track every movement of user and can start re-engagement if needs.
##How marketer can engage audience? We have comprehended User Guide document for Marketer. This help every Marketer can quickly start audience engagement. ##What's Intelligent Delivery? HOLLER offers Intelligent Delivery, new generation of technology that engage audience by smart way. Self-make decision empower this feature work independently and autonomously. ##Does HOLLER provide Re-Engagement? Of course! HOLLER system backed by a real-time system that means it can keep track every movement of user and can start re-engagement if needs.
{"__v":0,"_id":"582bbbaae290ea0f00ec07b0","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"##Does HOLLER support Rich Push?\nComing soon. Our team currently build this feature and release soon.\n\n##Does HOLLER support mobile deeplink?\nYes. HOLLER supports Deeplink with Web URL or Mobile App Scheme. You can discover it in Campaign Dashboard.\n\n##Is Push system secured?\nYes our system is built on Apple Push Notification Service (APNs) and FireBase Cloud Message (FCM)'s security compliances from Apple & Google.\n\n##Is HOLLER's Push Service free?\nYes our Push Service is free. Please mind about your MAU. Checkout our Pricing Plan for details.","category":"582bbbaae290ea0f00ec079f","createdAt":"2016-09-29T02:22:26.121Z","excerpt":"","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":3,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"push-engagement","sync_unique":"","title":"Push Engagement","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Push Engagement


##Does HOLLER support Rich Push? Coming soon. Our team currently build this feature and release soon. ##Does HOLLER support mobile deeplink? Yes. HOLLER supports Deeplink with Web URL or Mobile App Scheme. You can discover it in Campaign Dashboard. ##Is Push system secured? Yes our system is built on Apple Push Notification Service (APNs) and FireBase Cloud Message (FCM)'s security compliances from Apple & Google. ##Is HOLLER's Push Service free? Yes our Push Service is free. Please mind about your MAU. Checkout our Pricing Plan for details.
##Does HOLLER support Rich Push? Coming soon. Our team currently build this feature and release soon. ##Does HOLLER support mobile deeplink? Yes. HOLLER supports Deeplink with Web URL or Mobile App Scheme. You can discover it in Campaign Dashboard. ##Is Push system secured? Yes our system is built on Apple Push Notification Service (APNs) and FireBase Cloud Message (FCM)'s security compliances from Apple & Google. ##Is HOLLER's Push Service free? Yes our Push Service is free. Please mind about your MAU. Checkout our Pricing Plan for details.
{"__v":0,"_id":"582bbbaae290ea0f00ec07b1","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"##How can I use Email & SMS?\nDifferent to Push Service, Email & SMS is pay-per-use service and coming soon. You can consider about cost of them by contact our Sale Team, our team will get in touch soon to support.\n\n##Does HOLLER support Email Template?\nUnfortunately we're building it. Coming soon. Subscribe for newsletter to get updates.","category":"582bbbaae290ea0f00ec079f","createdAt":"2016-09-29T02:22:39.173Z","excerpt":"","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":4,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"email-sms-engagement","sync_unique":"","title":"Email & SMS Engagement","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Email & SMS Engagement


##How can I use Email & SMS? Different to Push Service, Email & SMS is pay-per-use service and coming soon. You can consider about cost of them by contact our Sale Team, our team will get in touch soon to support. ##Does HOLLER support Email Template? Unfortunately we're building it. Coming soon. Subscribe for newsletter to get updates.
##How can I use Email & SMS? Different to Push Service, Email & SMS is pay-per-use service and coming soon. You can consider about cost of them by contact our Sale Team, our team will get in touch soon to support. ##Does HOLLER support Email Template? Unfortunately we're building it. Coming soon. Subscribe for newsletter to get updates.
{"__v":0,"_id":"582bbbaae290ea0f00ec07a8","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Installing the HOLLER iOS SDK will provide you with our basic but strong analytics feature, as well as the ability to work in Marketing Automation and User Engagement, which will help you to pick the right time to deliver content to the correct user.\n\n#iOS COCOAPODS INTEGRATION\n## STEP 1: INSTALLING LATEST COCOAPODS\n\nHOLLER iOS SDK is provided officially on our Resource corner as well as on CocoaPods - a favorite open source 3rd library and framework of many developers. Before you begin integrating HOLLER iOS SDK through CocoaPods, please make sure that your machine is currently using Ruby version 2.0. Do not worry if you are not familiar to Ruby syntax.\n\nSimply run the following snippet command in Terminal to get started:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$ sudo gem install cocoapods\",\n      \"language\": \"ruby\"\n    }\n  ]\n}\n[/block]\nNote: If you are prompted to overwrite the rake executable, please refer to the Getting Started Directions section on CocoaPods.org for more information. \n\nNote: If you have issues regarding CocoaPods, please refer to the CocoaPods Troubleshooting Guide.\n\n## **STEP 2: BUILD PODFILE**\n\nCongrats! You installed the CocoaPods Ruby Gem. Your next step is to build your specifications file of Pods in your Xcode project's directory named 'Podfile'\n\nIf you are using Xcode 7.x or later, add the following line to your Podfile:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"pod 'Holler-iOS'\",\n      \"language\": \"ruby\",\n      \"name\": null\n    }\n  ]\n}\n[/block]\nBy using this line of code, you will be using the latest version of HOLLER iOS SDK. If you want to use older versions, specify the version by adding 'xx.yy.zz'\n\nIf you are not going to use Swift, please comment this line in your Podfile:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"user_frameworks!\",\n      \"language\": \"ruby\"\n    }\n  ]\n}\n[/block]\n##STEP 3: INSTALL HOLLER iOS SDK\n\nTo install HOLLER iOS SDK from CocoaPod, you simply navigate to the directory of your Xcode project within Terminal.\n\nIn terminal, copy the follow snippet command:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"pod install\",\n      \"language\": \"ruby\"\n    }\n  ]\n}\n[/block]\nOnce done, our HOLLER iOS SDK will be \"pod-ed\" from the CocoaPods repository to your local machine and linked to your Xcode project. At this point, please navigate to the directory of your project and open the new Xcode workspace created by CocoaPods. This workspace includes your Xcode project and our SDK, managed by the Pods Xcode project.\n\n#OBJECTIVE-C INSTALLATION\n## Step 4: START INTEGRATING HOLLER iOS SDK\n\nLet's open your AppDelegate class and add the following code:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"#import <Holler/Holler.h>\",\n      \"language\": \"objectivec\",\n      \"name\": \"Objective-C\"\n    },\n    {\n      \"code\": \"import Holler\",\n      \"language\": \"swift\"\n    }\n  ]\n}\n[/block]\nWithin the AppDelegate.m file, add the following snippet within your callback method from UIApplicationDelegate. Be sure to update your application ID and access ID correctly from the App Settings of HOLLER\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[Holler startHolleringWithApplicationId:@\\\"ApplicationId\\\" accessId:@\\\"AccessId\\\"];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"Holler.startHolleringWithApplicationId(\\\"ApplicationId\\\", accessId: \\\"AccessId\\\")\",\n      \"language\": \"swift\"\n    }\n  ]\n}\n[/block]\nHOLLER iOS SDK support two methods to initialise HOLLER services. You can supply the application Id and access Id or simply specified these keys in info.plist of your default file.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/Sx00MNQkQ8qitomPB9FO_Screen%20Shot%202016-04-25%20at%208.53.10%20AM.png\",\n        \"Screen Shot 2016-04-25 at 8.53.10 AM.png\",\n        \"625\",\n        \"327\",\n        \"#ed2709\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nBy supplying both application ID and access ID in the info.plist file, you can use the following snippet instead of previous one:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[Holler didLaunchAppWithOptions:launchOptions];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"Holler.didLaunchAppWithOptions(launchOptions)\",\n      \"language\": \"swift\"\n    }\n  ]\n}\n[/block]\nNow you have completed the SDK installation and initialisation to use HOLLER to empower your iOS application. In the next step, we would like to introduce how to install HOLLER SDK to your Swift Xcode project.\n\n#SWIFT COMPATIBILITY & INSTALLATION\nIf you are familiar with Swift, it has a few steps involved in using SDK. Firstly, if you do not have a bridging header file, create one in the directory of your Xcode project. \n\nName it as: yourProjectBridgingHeader.h.\n\nThen add the following line of code to your bridging header file:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"#import <Holler/Holler.h>\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nMove to the Build Settings tab of your Xcode project and look for \"Objective-C Bridging Header\" under \"Swift Compiler - Code Generation.\" \n\nHere is where your header file should be:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/GGmgogQRFSyvV2R1MnRA_Screen%20Shot%202016-04-25%20at%209.26.51%20AM.png\",\n        \"Screen Shot 2016-04-25 at 9.26.51 AM.png\",\n        \"852\",\n        \"193\",\n        \"#a1281f\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nNow that you have finished the SDK installation, you can play around with HOLLER SDK now!\n\n#DYNAMIC FRAMEWORK INSTALLATION & NOTICE\nHaven't worked with CocoaPods and have no experience with dependency injections? No worries! We also provide dynamic framework in our Developer Corner. You can download it from here (note: we encourage you to use CocoaPods for easier installation and to update our framework):\n\nAfter finishing the download, you can find our SDK in the Downloads directory:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/zLo2AF6RSGcp01FNOjAQ_Screen%20Shot%202016-05-11%20at%201.48.22%20PM.png\",\n        \"Screen Shot 2016-05-11 at 1.48.22 PM.png\",\n        \"1542\",\n        \"572\",\n        \"#315f92\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nMove (or copy) it to your Xcode project directory. Then open your Xcode project. Move it to the Build Phases tab and link our SDK under \"Link Binary with Libraries.\"\n\nNow, you are two-thirds of the way done! The last part is very important. HOLLER supports iOS app from 8.0 so please remember that older versions will not work properly. This is due to HOLLER iOS SDK's dynamic framework. The dynamic framework is compiled dynamically and thus is linked in runtime. Unless you have gotten this when trying to run your project with HOLLER iOS SDK, make sure the version is newer than 8.0.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"yld: Library not loaded: @rpath/Holler.framework/Holler\\n  Referenced from: /Users/rml/Library/Developer/CoreSimulator/Devices/558EBB68-B94A-4B92-BEA5-2758DE3718E8/data/Containers/Bundle/Application/B9B8DA9A-1373-4CCE-BF12-B9DE83D5E5CE/Holler_SDK_Testing_Swift.app/Holler_SDK_Testing_Swift\\n  Reason: image not found\",\n      \"language\": \"shell\",\n      \"name\": \"Xcode Debug Console\"\n    }\n  ]\n}\n[/block]\nBut don't worry! Navigate to the \"General\" tab of your Xcode project, under Embedded Binaries, and add HOLLER iOS SDK under it. Clean and compile, then run your project. It would run well from here.\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/4pfmK4HSlqcN0hmnFlqS_Screen%20Shot%202016-04-25%20at%209.51.41%20AM.png\",\n        \"Screen Shot 2016-04-25 at 9.51.41 AM.png\",\n        \"1001\",\n        \"139\",\n        \"#ec2a09\",\n        \"\"\n      ],\n      \"sizing\": \"smart\"\n    }\n  ]\n}\n[/block]\nWe hope you enjoy HOLLER iOS SDK and that it adds new capability and empower your app. Then you have to configure your app in Xcode to enable push capability. We're going to guide you to last step.\n\n#Xcode Configuration\nOpen Xcode, and of course you must have a either project or workspace. Open it and click on your project. \n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/ef03155-Screen_Shot_2016-11-17_at_3.21.52_PM.png\",\n        \"Screen Shot 2016-11-17 at 3.21.52 PM.png\",\n        2560,\n        1270,\n        \"#f0f1f1\"\n      ]\n    }\n  ]\n}\n[/block]\nOn the right side, click on **Capabilities** tab. Look for **Push Notification** option, turn it on to enable push notification capability.\nAnd a little tricky tip here, to enable push notification even when app is killed or not running in background you have to enable Background service for push notification. Look for **Background Modes** and check **Remote Notifications**\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/b3baabe-Screen_Shot_2016-11-17_at_3.26.25_PM.png\",\n        \"Screen Shot 2016-11-17 at 3.26.25 PM.png\",\n        1980,\n        562,\n        \"#2b486c\"\n      ]\n    }\n  ]\n}\n[/block]\nNow you can start sending push notification from HOLLER dashboard and blast your audience with attracted message.","category":"582bbbaae290ea0f00ec07a0","createdAt":"2016-04-19T03:26:29.517Z","excerpt":"This page will help you get started with HOLLER iOS SDK. We provide officially through Cocoapod","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":0,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"getting-started","sync_unique":"","title":"iOS SDK","type":"basic","updates":["5757e4f9f0a43e0e00cc086c"],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

iOS SDK

This page will help you get started with HOLLER iOS SDK. We provide officially through Cocoapod

Installing the HOLLER iOS SDK will provide you with our basic but strong analytics feature, as well as the ability to work in Marketing Automation and User Engagement, which will help you to pick the right time to deliver content to the correct user. #iOS COCOAPODS INTEGRATION ## STEP 1: INSTALLING LATEST COCOAPODS HOLLER iOS SDK is provided officially on our Resource corner as well as on CocoaPods - a favorite open source 3rd library and framework of many developers. Before you begin integrating HOLLER iOS SDK through CocoaPods, please make sure that your machine is currently using Ruby version 2.0. Do not worry if you are not familiar to Ruby syntax. Simply run the following snippet command in Terminal to get started: [block:code] { "codes": [ { "code": "$ sudo gem install cocoapods", "language": "ruby" } ] } [/block] Note: If you are prompted to overwrite the rake executable, please refer to the Getting Started Directions section on CocoaPods.org for more information. Note: If you have issues regarding CocoaPods, please refer to the CocoaPods Troubleshooting Guide. ## **STEP 2: BUILD PODFILE** Congrats! You installed the CocoaPods Ruby Gem. Your next step is to build your specifications file of Pods in your Xcode project's directory named 'Podfile' If you are using Xcode 7.x or later, add the following line to your Podfile: [block:code] { "codes": [ { "code": "pod 'Holler-iOS'", "language": "ruby", "name": null } ] } [/block] By using this line of code, you will be using the latest version of HOLLER iOS SDK. If you want to use older versions, specify the version by adding 'xx.yy.zz' If you are not going to use Swift, please comment this line in your Podfile: [block:code] { "codes": [ { "code": "user_frameworks!", "language": "ruby" } ] } [/block] ##STEP 3: INSTALL HOLLER iOS SDK To install HOLLER iOS SDK from CocoaPod, you simply navigate to the directory of your Xcode project within Terminal. In terminal, copy the follow snippet command: [block:code] { "codes": [ { "code": "pod install", "language": "ruby" } ] } [/block] Once done, our HOLLER iOS SDK will be "pod-ed" from the CocoaPods repository to your local machine and linked to your Xcode project. At this point, please navigate to the directory of your project and open the new Xcode workspace created by CocoaPods. This workspace includes your Xcode project and our SDK, managed by the Pods Xcode project. #OBJECTIVE-C INSTALLATION ## Step 4: START INTEGRATING HOLLER iOS SDK Let's open your AppDelegate class and add the following code: [block:code] { "codes": [ { "code": "#import <Holler/Holler.h>", "language": "objectivec", "name": "Objective-C" }, { "code": "import Holler", "language": "swift" } ] } [/block] Within the AppDelegate.m file, add the following snippet within your callback method from UIApplicationDelegate. Be sure to update your application ID and access ID correctly from the App Settings of HOLLER [block:code] { "codes": [ { "code": "[Holler startHolleringWithApplicationId:@\"ApplicationId\" accessId:@\"AccessId\"];", "language": "objectivec" }, { "code": "Holler.startHolleringWithApplicationId(\"ApplicationId\", accessId: \"AccessId\")", "language": "swift" } ] } [/block] HOLLER iOS SDK support two methods to initialise HOLLER services. You can supply the application Id and access Id or simply specified these keys in info.plist of your default file. [block:image] { "images": [ { "image": [ "https://files.readme.io/Sx00MNQkQ8qitomPB9FO_Screen%20Shot%202016-04-25%20at%208.53.10%20AM.png", "Screen Shot 2016-04-25 at 8.53.10 AM.png", "625", "327", "#ed2709", "" ] } ] } [/block] By supplying both application ID and access ID in the info.plist file, you can use the following snippet instead of previous one: [block:code] { "codes": [ { "code": "[Holler didLaunchAppWithOptions:launchOptions];", "language": "objectivec" }, { "code": "Holler.didLaunchAppWithOptions(launchOptions)", "language": "swift" } ] } [/block] Now you have completed the SDK installation and initialisation to use HOLLER to empower your iOS application. In the next step, we would like to introduce how to install HOLLER SDK to your Swift Xcode project. #SWIFT COMPATIBILITY & INSTALLATION If you are familiar with Swift, it has a few steps involved in using SDK. Firstly, if you do not have a bridging header file, create one in the directory of your Xcode project. Name it as: yourProjectBridgingHeader.h. Then add the following line of code to your bridging header file: [block:code] { "codes": [ { "code": "#import <Holler/Holler.h>", "language": "objectivec" } ] } [/block] Move to the Build Settings tab of your Xcode project and look for "Objective-C Bridging Header" under "Swift Compiler - Code Generation." Here is where your header file should be: [block:image] { "images": [ { "image": [ "https://files.readme.io/GGmgogQRFSyvV2R1MnRA_Screen%20Shot%202016-04-25%20at%209.26.51%20AM.png", "Screen Shot 2016-04-25 at 9.26.51 AM.png", "852", "193", "#a1281f", "" ] } ] } [/block] Now that you have finished the SDK installation, you can play around with HOLLER SDK now! #DYNAMIC FRAMEWORK INSTALLATION & NOTICE Haven't worked with CocoaPods and have no experience with dependency injections? No worries! We also provide dynamic framework in our Developer Corner. You can download it from here (note: we encourage you to use CocoaPods for easier installation and to update our framework): After finishing the download, you can find our SDK in the Downloads directory: [block:image] { "images": [ { "image": [ "https://files.readme.io/zLo2AF6RSGcp01FNOjAQ_Screen%20Shot%202016-05-11%20at%201.48.22%20PM.png", "Screen Shot 2016-05-11 at 1.48.22 PM.png", "1542", "572", "#315f92", "" ] } ] } [/block] Move (or copy) it to your Xcode project directory. Then open your Xcode project. Move it to the Build Phases tab and link our SDK under "Link Binary with Libraries." Now, you are two-thirds of the way done! The last part is very important. HOLLER supports iOS app from 8.0 so please remember that older versions will not work properly. This is due to HOLLER iOS SDK's dynamic framework. The dynamic framework is compiled dynamically and thus is linked in runtime. Unless you have gotten this when trying to run your project with HOLLER iOS SDK, make sure the version is newer than 8.0. [block:code] { "codes": [ { "code": "yld: Library not loaded: @rpath/Holler.framework/Holler\n Referenced from: /Users/rml/Library/Developer/CoreSimulator/Devices/558EBB68-B94A-4B92-BEA5-2758DE3718E8/data/Containers/Bundle/Application/B9B8DA9A-1373-4CCE-BF12-B9DE83D5E5CE/Holler_SDK_Testing_Swift.app/Holler_SDK_Testing_Swift\n Reason: image not found", "language": "shell", "name": "Xcode Debug Console" } ] } [/block] But don't worry! Navigate to the "General" tab of your Xcode project, under Embedded Binaries, and add HOLLER iOS SDK under it. Clean and compile, then run your project. It would run well from here. [block:image] { "images": [ { "image": [ "https://files.readme.io/4pfmK4HSlqcN0hmnFlqS_Screen%20Shot%202016-04-25%20at%209.51.41%20AM.png", "Screen Shot 2016-04-25 at 9.51.41 AM.png", "1001", "139", "#ec2a09", "" ], "sizing": "smart" } ] } [/block] We hope you enjoy HOLLER iOS SDK and that it adds new capability and empower your app. Then you have to configure your app in Xcode to enable push capability. We're going to guide you to last step. #Xcode Configuration Open Xcode, and of course you must have a either project or workspace. Open it and click on your project. [block:image] { "images": [ { "image": [ "https://files.readme.io/ef03155-Screen_Shot_2016-11-17_at_3.21.52_PM.png", "Screen Shot 2016-11-17 at 3.21.52 PM.png", 2560, 1270, "#f0f1f1" ] } ] } [/block] On the right side, click on **Capabilities** tab. Look for **Push Notification** option, turn it on to enable push notification capability. And a little tricky tip here, to enable push notification even when app is killed or not running in background you have to enable Background service for push notification. Look for **Background Modes** and check **Remote Notifications** [block:image] { "images": [ { "image": [ "https://files.readme.io/b3baabe-Screen_Shot_2016-11-17_at_3.26.25_PM.png", "Screen Shot 2016-11-17 at 3.26.25 PM.png", 1980, 562, "#2b486c" ] } ] } [/block] Now you can start sending push notification from HOLLER dashboard and blast your audience with attracted message.
Installing the HOLLER iOS SDK will provide you with our basic but strong analytics feature, as well as the ability to work in Marketing Automation and User Engagement, which will help you to pick the right time to deliver content to the correct user. #iOS COCOAPODS INTEGRATION ## STEP 1: INSTALLING LATEST COCOAPODS HOLLER iOS SDK is provided officially on our Resource corner as well as on CocoaPods - a favorite open source 3rd library and framework of many developers. Before you begin integrating HOLLER iOS SDK through CocoaPods, please make sure that your machine is currently using Ruby version 2.0. Do not worry if you are not familiar to Ruby syntax. Simply run the following snippet command in Terminal to get started: [block:code] { "codes": [ { "code": "$ sudo gem install cocoapods", "language": "ruby" } ] } [/block] Note: If you are prompted to overwrite the rake executable, please refer to the Getting Started Directions section on CocoaPods.org for more information. Note: If you have issues regarding CocoaPods, please refer to the CocoaPods Troubleshooting Guide. ## **STEP 2: BUILD PODFILE** Congrats! You installed the CocoaPods Ruby Gem. Your next step is to build your specifications file of Pods in your Xcode project's directory named 'Podfile' If you are using Xcode 7.x or later, add the following line to your Podfile: [block:code] { "codes": [ { "code": "pod 'Holler-iOS'", "language": "ruby", "name": null } ] } [/block] By using this line of code, you will be using the latest version of HOLLER iOS SDK. If you want to use older versions, specify the version by adding 'xx.yy.zz' If you are not going to use Swift, please comment this line in your Podfile: [block:code] { "codes": [ { "code": "user_frameworks!", "language": "ruby" } ] } [/block] ##STEP 3: INSTALL HOLLER iOS SDK To install HOLLER iOS SDK from CocoaPod, you simply navigate to the directory of your Xcode project within Terminal. In terminal, copy the follow snippet command: [block:code] { "codes": [ { "code": "pod install", "language": "ruby" } ] } [/block] Once done, our HOLLER iOS SDK will be "pod-ed" from the CocoaPods repository to your local machine and linked to your Xcode project. At this point, please navigate to the directory of your project and open the new Xcode workspace created by CocoaPods. This workspace includes your Xcode project and our SDK, managed by the Pods Xcode project. #OBJECTIVE-C INSTALLATION ## Step 4: START INTEGRATING HOLLER iOS SDK Let's open your AppDelegate class and add the following code: [block:code] { "codes": [ { "code": "#import <Holler/Holler.h>", "language": "objectivec", "name": "Objective-C" }, { "code": "import Holler", "language": "swift" } ] } [/block] Within the AppDelegate.m file, add the following snippet within your callback method from UIApplicationDelegate. Be sure to update your application ID and access ID correctly from the App Settings of HOLLER [block:code] { "codes": [ { "code": "[Holler startHolleringWithApplicationId:@\"ApplicationId\" accessId:@\"AccessId\"];", "language": "objectivec" }, { "code": "Holler.startHolleringWithApplicationId(\"ApplicationId\", accessId: \"AccessId\")", "language": "swift" } ] } [/block] HOLLER iOS SDK support two methods to initialise HOLLER services. You can supply the application Id and access Id or simply specified these keys in info.plist of your default file. [block:image] { "images": [ { "image": [ "https://files.readme.io/Sx00MNQkQ8qitomPB9FO_Screen%20Shot%202016-04-25%20at%208.53.10%20AM.png", "Screen Shot 2016-04-25 at 8.53.10 AM.png", "625", "327", "#ed2709", "" ] } ] } [/block] By supplying both application ID and access ID in the info.plist file, you can use the following snippet instead of previous one: [block:code] { "codes": [ { "code": "[Holler didLaunchAppWithOptions:launchOptions];", "language": "objectivec" }, { "code": "Holler.didLaunchAppWithOptions(launchOptions)", "language": "swift" } ] } [/block] Now you have completed the SDK installation and initialisation to use HOLLER to empower your iOS application. In the next step, we would like to introduce how to install HOLLER SDK to your Swift Xcode project. #SWIFT COMPATIBILITY & INSTALLATION If you are familiar with Swift, it has a few steps involved in using SDK. Firstly, if you do not have a bridging header file, create one in the directory of your Xcode project. Name it as: yourProjectBridgingHeader.h. Then add the following line of code to your bridging header file: [block:code] { "codes": [ { "code": "#import <Holler/Holler.h>", "language": "objectivec" } ] } [/block] Move to the Build Settings tab of your Xcode project and look for "Objective-C Bridging Header" under "Swift Compiler - Code Generation." Here is where your header file should be: [block:image] { "images": [ { "image": [ "https://files.readme.io/GGmgogQRFSyvV2R1MnRA_Screen%20Shot%202016-04-25%20at%209.26.51%20AM.png", "Screen Shot 2016-04-25 at 9.26.51 AM.png", "852", "193", "#a1281f", "" ] } ] } [/block] Now that you have finished the SDK installation, you can play around with HOLLER SDK now! #DYNAMIC FRAMEWORK INSTALLATION & NOTICE Haven't worked with CocoaPods and have no experience with dependency injections? No worries! We also provide dynamic framework in our Developer Corner. You can download it from here (note: we encourage you to use CocoaPods for easier installation and to update our framework): After finishing the download, you can find our SDK in the Downloads directory: [block:image] { "images": [ { "image": [ "https://files.readme.io/zLo2AF6RSGcp01FNOjAQ_Screen%20Shot%202016-05-11%20at%201.48.22%20PM.png", "Screen Shot 2016-05-11 at 1.48.22 PM.png", "1542", "572", "#315f92", "" ] } ] } [/block] Move (or copy) it to your Xcode project directory. Then open your Xcode project. Move it to the Build Phases tab and link our SDK under "Link Binary with Libraries." Now, you are two-thirds of the way done! The last part is very important. HOLLER supports iOS app from 8.0 so please remember that older versions will not work properly. This is due to HOLLER iOS SDK's dynamic framework. The dynamic framework is compiled dynamically and thus is linked in runtime. Unless you have gotten this when trying to run your project with HOLLER iOS SDK, make sure the version is newer than 8.0. [block:code] { "codes": [ { "code": "yld: Library not loaded: @rpath/Holler.framework/Holler\n Referenced from: /Users/rml/Library/Developer/CoreSimulator/Devices/558EBB68-B94A-4B92-BEA5-2758DE3718E8/data/Containers/Bundle/Application/B9B8DA9A-1373-4CCE-BF12-B9DE83D5E5CE/Holler_SDK_Testing_Swift.app/Holler_SDK_Testing_Swift\n Reason: image not found", "language": "shell", "name": "Xcode Debug Console" } ] } [/block] But don't worry! Navigate to the "General" tab of your Xcode project, under Embedded Binaries, and add HOLLER iOS SDK under it. Clean and compile, then run your project. It would run well from here. [block:image] { "images": [ { "image": [ "https://files.readme.io/4pfmK4HSlqcN0hmnFlqS_Screen%20Shot%202016-04-25%20at%209.51.41%20AM.png", "Screen Shot 2016-04-25 at 9.51.41 AM.png", "1001", "139", "#ec2a09", "" ], "sizing": "smart" } ] } [/block] We hope you enjoy HOLLER iOS SDK and that it adds new capability and empower your app. Then you have to configure your app in Xcode to enable push capability. We're going to guide you to last step. #Xcode Configuration Open Xcode, and of course you must have a either project or workspace. Open it and click on your project. [block:image] { "images": [ { "image": [ "https://files.readme.io/ef03155-Screen_Shot_2016-11-17_at_3.21.52_PM.png", "Screen Shot 2016-11-17 at 3.21.52 PM.png", 2560, 1270, "#f0f1f1" ] } ] } [/block] On the right side, click on **Capabilities** tab. Look for **Push Notification** option, turn it on to enable push notification capability. And a little tricky tip here, to enable push notification even when app is killed or not running in background you have to enable Background service for push notification. Look for **Background Modes** and check **Remote Notifications** [block:image] { "images": [ { "image": [ "https://files.readme.io/b3baabe-Screen_Shot_2016-11-17_at_3.26.25_PM.png", "Screen Shot 2016-11-17 at 3.26.25 PM.png", 1980, 562, "#2b486c" ] } ] } [/block] Now you can start sending push notification from HOLLER dashboard and blast your audience with attracted message.
{"__v":0,"_id":"582bbbaae290ea0f00ec07a9","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Installing the HOLLER! Android SDK will provide you with our basic, but quite strong analytics feature. This also includes the ability to work in Marketing Automation and User Engagement, which will help you pick the right time to deliver content to the correct user.\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"GRADLE INTEGRATION\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"MANUAL INSTALLATION\"\n}\n[/block]\nCurrently, HOLLER Android SDK provides SDK for Android Studio, after download our SDK from Developer corner, you have to import it to your created project simply\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/yU3bUtJvTKx8Dw3HmPRw_Import_SDK_Android%20Studio.png\",\n        \"Import_SDK_Android Studio.png\",\n        \"668\",\n        \"545\",\n        \"#6c6b6d\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nThen choose HOLLER SDK source\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/CrvZOFqNQaaWlsm978gl_SDK_Source_In_Finder.png\",\n        \"SDK_Source_In_Finder.png\",\n        \"763\",\n        \"469\",\n        \"#8d4f3a\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nNow you successful integrate HOLLER SDK to project, to start using HOLLER Android SDK, it requires one more step is configuration with application Id and access Key. You simply open build.gradle file and add the following snippet\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/1uAozuVWQASZ4ueJYzwl_Configuration_HOLLLER_KEYs.png\",\n        \"Configuration_HOLLLER_KEYs.png\",\n        \"940\",\n        \"248\",\n        \"#328e32\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nWe hope you enjoy HOLLER Android SDK and that it adds new capability and empowerment your iOS app!","category":"582bbbaae290ea0f00ec07a0","createdAt":"2016-04-22T03:23:35.697Z","excerpt":"This page will help you get started with HOLLER! Android SDK. We provides officially through Gradle and Resource site.","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":1,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"android","sync_unique":"","title":"Android SDK","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Android SDK

This page will help you get started with HOLLER! Android SDK. We provides officially through Gradle and Resource site.

Installing the HOLLER! Android SDK will provide you with our basic, but quite strong analytics feature. This also includes the ability to work in Marketing Automation and User Engagement, which will help you pick the right time to deliver content to the correct user. [block:api-header] { "type": "basic", "title": "GRADLE INTEGRATION" } [/block] [block:api-header] { "type": "basic", "title": "MANUAL INSTALLATION" } [/block] Currently, HOLLER Android SDK provides SDK for Android Studio, after download our SDK from Developer corner, you have to import it to your created project simply [block:image] { "images": [ { "image": [ "https://files.readme.io/yU3bUtJvTKx8Dw3HmPRw_Import_SDK_Android%20Studio.png", "Import_SDK_Android Studio.png", "668", "545", "#6c6b6d", "" ] } ] } [/block] Then choose HOLLER SDK source [block:image] { "images": [ { "image": [ "https://files.readme.io/CrvZOFqNQaaWlsm978gl_SDK_Source_In_Finder.png", "SDK_Source_In_Finder.png", "763", "469", "#8d4f3a", "" ] } ] } [/block] Now you successful integrate HOLLER SDK to project, to start using HOLLER Android SDK, it requires one more step is configuration with application Id and access Key. You simply open build.gradle file and add the following snippet [block:image] { "images": [ { "image": [ "https://files.readme.io/1uAozuVWQASZ4ueJYzwl_Configuration_HOLLLER_KEYs.png", "Configuration_HOLLLER_KEYs.png", "940", "248", "#328e32", "" ] } ] } [/block] We hope you enjoy HOLLER Android SDK and that it adds new capability and empowerment your iOS app!
Installing the HOLLER! Android SDK will provide you with our basic, but quite strong analytics feature. This also includes the ability to work in Marketing Automation and User Engagement, which will help you pick the right time to deliver content to the correct user. [block:api-header] { "type": "basic", "title": "GRADLE INTEGRATION" } [/block] [block:api-header] { "type": "basic", "title": "MANUAL INSTALLATION" } [/block] Currently, HOLLER Android SDK provides SDK for Android Studio, after download our SDK from Developer corner, you have to import it to your created project simply [block:image] { "images": [ { "image": [ "https://files.readme.io/yU3bUtJvTKx8Dw3HmPRw_Import_SDK_Android%20Studio.png", "Import_SDK_Android Studio.png", "668", "545", "#6c6b6d", "" ] } ] } [/block] Then choose HOLLER SDK source [block:image] { "images": [ { "image": [ "https://files.readme.io/CrvZOFqNQaaWlsm978gl_SDK_Source_In_Finder.png", "SDK_Source_In_Finder.png", "763", "469", "#8d4f3a", "" ] } ] } [/block] Now you successful integrate HOLLER SDK to project, to start using HOLLER Android SDK, it requires one more step is configuration with application Id and access Key. You simply open build.gradle file and add the following snippet [block:image] { "images": [ { "image": [ "https://files.readme.io/1uAozuVWQASZ4ueJYzwl_Configuration_HOLLLER_KEYs.png", "Configuration_HOLLLER_KEYs.png", "940", "248", "#328e32", "" ] } ] } [/block] We hope you enjoy HOLLER Android SDK and that it adds new capability and empowerment your iOS app!
{"__v":0,"_id":"582bbbaae290ea0f00ec07aa","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Each subscriber lives in a different place, works in a different industry, and is assigned to several positions and job roles. Some of them prefer mobile apps as their hobbies rather than other entertainment. We provide the subscriber a module in HOLLER! iOS SDK to help you manage them easier, update and modify demographic targets, and segmentation that will improve your campaign's quality and effectiveness.\n\n##CREATE SUBSCRIBER\nThe subscriber is shown as an independent module of HOLLER! iOS SDK specified as \"HLSubscriber\". \n\nTo create a new subscriber, add the following snippet of code to your class:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"HLSubscriber *subscriber = [[HLSubscriber alloc] init];\\n    [subscriber setSubscriberFirstName:@\\\"Phong\\\"];\\n    [subscriber setSubscriberLastName:@\\\"Nguyen\\\"];\\n    [subscriber setSubscriberEmail:@\\\"phong.nguyen@rainmaker-labs.com\\\"];\\n    [subscriber setSubscriberUsername:@\\\"phongnguyen\\\"];\\n    [subscriber setSubscriberCellphoneNumber:@\\\"65 90755230\\\"];\\n\\t\\t[subscriber setSubscriberDeviceToken:@\\\"FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660\\\"];\\n\\n    [subscriber setSubscriberInformations:@{@\\\"gps_latitude\\\": @0,\\n                                           @\\\"gps_longitude\\\": @0,\\n                                           @\\\"gender\\\": @\\\"male\\\",\\n                                           @\\\"date_of_birth\\\": @\\\"2016/6/12\\\",\\n                                           @\\\"country\\\": @\\\"SG\\\",\\n                                           @\\\"industry\\\": @\\\"\\\",\\n                                           @\\\"designation\\\": @\\\"\\\",\\n                                           @\\\"interest_id\\\": @\\\"\\\"}];\\n    [subscriber registerSubscriberSilently];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"let subscriber: HLSubscriber = HLSubscriber.init()\\n        subscriber.subscriberFirstName = \\\"Phong\\\"\\n        subscriber.subscriberLastName = \\\"Nguyen\\\"\\n        subscriber.subscriberEmail = \\\"phong.nguyen@rainmaker-labs.com\\\"\\n        subscriber.subscriberUsername = \\\"phongNguyen\\\"\\n        subscriber.subscriberCellphoneNumber = \\\"65 90755230\\\"\\n        subscriber.subscriberInformations = [\\\"gps_latitude\\\": 0,\\n                                             \\\"gps_longitude\\\": 0,\\n                                             \\\"gender\\\": \\\"male\\\",\\n                                             \\\"date_of_birth\\\": \\\"2016/6/12\\\",\\n                                             \\\"country\\\": \\\"SG\\\",\\n                                             \\\"industry\\\": \\\"\\\",\\n                                             \\\"designation\\\": \\\"\\\",\\n                                             \\\"interest_id\\\": \\\"\\\"]\\n        \\n        subscriber.registerSubscriberSilently()\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"java\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\nHLSubscriber also provides another method to register a subscriber with callback block (closure). Asynchronously, this method registers a new subscriber and gives you a callback at completion.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"HLSubscriber *subscriber = [[HLSubscriber alloc] init];\\n    [subscriber setSubscriberFirstName:@\\\"Phong\\\"];\\n    [subscriber setSubscriberLastName:@\\\"Nguyen\\\"];\\n    [subscriber setSubscriberEmail:@\\\"phong.nguyen@rainmaker-labs.com\\\"];\\n    [subscriber setSubscriberUsername:@\\\"phongnguyen\\\"];\\n    [subscriber setSubscriberCellphoneNumber:@\\\"65 90755230\\\"];\\n\\t\\t[subscriber setSubscriberDeviceToken:@\\\"FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660\\\"];\\n\\n    [subscriber setSubscriberInformations:@{@\\\"gps_latitude\\\": @0,\\n                                           @\\\"gps_longitude\\\": @0,\\n                                           @\\\"gender\\\": @\\\"male\\\",\\n                                           @\\\"date_of_birth\\\": @\\\"2016/6/12\\\",\\n                                           @\\\"country\\\": @\\\"SG\\\",\\n                                           @\\\"industry\\\": @\\\"\\\",\\n                                           @\\\"designation\\\": @\\\"\\\",\\n                                           @\\\"interest_id\\\": @\\\"\\\"}];\\n[subscriber registerSubscriberOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSNumber *subscriberId){\\n        if(errorObject){\\n            //handle error object with description and error status\\n        }else{\\n            //succeed. subscriberId'll returned back\\n        }\\n    }];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"let subscriber: HLSubscriber = HLSubscriber.init()\\n        subscriber.subscriberFirstName = \\\"Phong\\\"\\n        subscriber.subscriberLastName = \\\"Nguyen\\\"\\n        subscriber.subscriberEmail = \\\"phong.nguyen@rainmaker-labs.com\\\"\\n        subscriber.subscriberUsername = \\\"phongNguyen\\\"\\n        subscriber.subscriberCellphoneNumber = \\\"65 90755230\\\"\\n        subscriber.subscriberInformations = [\\\"gps_latitude\\\": 0,\\n                                             \\\"gps_longitude\\\": 0,\\n                                             \\\"gender\\\": \\\"male\\\",\\n                                             \\\"date_of_birth\\\": \\\"2016/6/12\\\",\\n                                             \\\"country\\\": \\\"SG\\\",\\n                                             \\\"industry\\\": \\\"\\\",\\n                                             \\\"designation\\\": \\\"\\\",\\n                                             \\\"interest_id\\\": \\\"\\\"]\\n                                             \\n    subscriber.registerSubscriberOnCompletion({(succeed, error, errorObject, subscriberId) in\\n            if let errObj = errorObject as? HLError{\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        })\\n                                         \",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"java\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##MODIFY SUBSCRIBER\nTo modify a subscriber's details, you simply update subscriber with new data and then call HLSubscriber's method below:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \" [subscriber updateBySubscriberId:[NSNumber numberWithInt:subscriberId] onCompletion:^(BOOL succeed, NSError *error, HLError *errorObject){\\n   if(errorObject){\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        }];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"subscriber.updateBySubscriberId(NSNumber.init(int: 154), onCompletion: {(succeed, error, errorObject) in\\n            if let errObj = errorObject as? HLError{\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        })\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"java\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##DEMOGRAPHIC TARGETING & SUBSCRIBER INFORMATION\nEach subscriber is supplied with individual demographic targets (pre-created of HOLLER!). These targets are specified inside \"info\" members of subscriber including:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Property Name\",\n    \"h-1\": \"Description\",\n    \"h-2\": \"Data Type\",\n    \"0-0\": \"Longitude\",\n    \"1-0\": \"Latitude\",\n    \"2-0\": \"Gender\",\n    \"3-0\": \"Date of Birth\",\n    \"4-0\": \"Country\",\n    \"5-0\": \"Industry\",\n    \"6-0\": \"Designation\",\n    \"7-0\": \"Interest\",\n    \"0-1\": \"The angular distance of a place east or west of the meridian at Greenwich, England, or west of the standard meridian of a celestial object, usually expressed in degrees and minutes.\",\n    \"1-1\": \"The angular distance of a place north or south of the earth's equator, or of a celestial object north or south of the celestial equator, usually expressed in degrees and minutes.\",\n    \"2-1\": \"Gender of subscriber\",\n    \"4-1\": \"The country subscriber is currently living\",\n    \"5-1\": \"The industry subscriber is currently working in\",\n    \"6-1\": \"Job Role/Position of subscriber\",\n    \"7-1\": \"Hobbies of subscriber\",\n    \"0-2\": \"NSNumber\",\n    \"1-2\": \"NSNumber\",\n    \"2-2\": \"NSString\",\n    \"3-2\": \"NSString\",\n    \"4-2\": \"NSString\",\n    \"5-2\": \"NSString\",\n    \"6-2\": \"NSString\",\n    \"7-2\": \"NSString\"\n  },\n  \"cols\": 3,\n  \"rows\": 8\n}\n[/block]\n##SUBSCRIBER's READ-ONLY MEMBERs\nHLSubscribers also provide some read-only property member to support subscribers.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Property Name\",\n    \"h-1\": \"Description\",\n    \"h-2\": \"Data Type\",\n    \"0-0\": \"isActive\",\n    \"0-1\": \"Determine whether subscriber is active or not\",\n    \"0-2\": \"BOOL\",\n    \"1-0\": \"createdDate\",\n    \"1-1\": \"Date subscriber was registered\",\n    \"1-2\": \"NSDate\",\n    \"2-0\": \"updatedDate\",\n    \"2-1\": \"Latest date subscriber was modified\",\n    \"2-2\": \"NSDate\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]","category":"582bbbaae290ea0f00ec07a1","createdAt":"2016-04-25T02:57:39.246Z","excerpt":"The subscriber is the user that subscribes to your service, managed by HOLLER!, and receives mobile marketing campaigns through demographic targeting.","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":0,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"subscriber","sync_unique":"","title":"Subscriber","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Subscriber

The subscriber is the user that subscribes to your service, managed by HOLLER!, and receives mobile marketing campaigns through demographic targeting.

Each subscriber lives in a different place, works in a different industry, and is assigned to several positions and job roles. Some of them prefer mobile apps as their hobbies rather than other entertainment. We provide the subscriber a module in HOLLER! iOS SDK to help you manage them easier, update and modify demographic targets, and segmentation that will improve your campaign's quality and effectiveness. ##CREATE SUBSCRIBER The subscriber is shown as an independent module of HOLLER! iOS SDK specified as "HLSubscriber". To create a new subscriber, add the following snippet of code to your class: [block:code] { "codes": [ { "code": "HLSubscriber *subscriber = [[HLSubscriber alloc] init];\n [subscriber setSubscriberFirstName:@\"Phong\"];\n [subscriber setSubscriberLastName:@\"Nguyen\"];\n [subscriber setSubscriberEmail:@\"phong.nguyen@rainmaker-labs.com\"];\n [subscriber setSubscriberUsername:@\"phongnguyen\"];\n [subscriber setSubscriberCellphoneNumber:@\"65 90755230\"];\n\t\t[subscriber setSubscriberDeviceToken:@\"FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660\"];\n\n [subscriber setSubscriberInformations:@{@\"gps_latitude\": @0,\n @\"gps_longitude\": @0,\n @\"gender\": @\"male\",\n @\"date_of_birth\": @\"2016/6/12\",\n @\"country\": @\"SG\",\n @\"industry\": @\"\",\n @\"designation\": @\"\",\n @\"interest_id\": @\"\"}];\n [subscriber registerSubscriberSilently];", "language": "objectivec" }, { "code": "let subscriber: HLSubscriber = HLSubscriber.init()\n subscriber.subscriberFirstName = \"Phong\"\n subscriber.subscriberLastName = \"Nguyen\"\n subscriber.subscriberEmail = \"phong.nguyen@rainmaker-labs.com\"\n subscriber.subscriberUsername = \"phongNguyen\"\n subscriber.subscriberCellphoneNumber = \"65 90755230\"\n subscriber.subscriberInformations = [\"gps_latitude\": 0,\n \"gps_longitude\": 0,\n \"gender\": \"male\",\n \"date_of_birth\": \"2016/6/12\",\n \"country\": \"SG\",\n \"industry\": \"\",\n \"designation\": \"\",\n \"interest_id\": \"\"]\n \n subscriber.registerSubscriberSilently()", "language": "swift" }, { "code": "", "language": "java", "name": "Android - Java" } ] } [/block] HLSubscriber also provides another method to register a subscriber with callback block (closure). Asynchronously, this method registers a new subscriber and gives you a callback at completion. [block:code] { "codes": [ { "code": "HLSubscriber *subscriber = [[HLSubscriber alloc] init];\n [subscriber setSubscriberFirstName:@\"Phong\"];\n [subscriber setSubscriberLastName:@\"Nguyen\"];\n [subscriber setSubscriberEmail:@\"phong.nguyen@rainmaker-labs.com\"];\n [subscriber setSubscriberUsername:@\"phongnguyen\"];\n [subscriber setSubscriberCellphoneNumber:@\"65 90755230\"];\n\t\t[subscriber setSubscriberDeviceToken:@\"FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660\"];\n\n [subscriber setSubscriberInformations:@{@\"gps_latitude\": @0,\n @\"gps_longitude\": @0,\n @\"gender\": @\"male\",\n @\"date_of_birth\": @\"2016/6/12\",\n @\"country\": @\"SG\",\n @\"industry\": @\"\",\n @\"designation\": @\"\",\n @\"interest_id\": @\"\"}];\n[subscriber registerSubscriberOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSNumber *subscriberId){\n if(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n }];", "language": "objectivec" }, { "code": "let subscriber: HLSubscriber = HLSubscriber.init()\n subscriber.subscriberFirstName = \"Phong\"\n subscriber.subscriberLastName = \"Nguyen\"\n subscriber.subscriberEmail = \"phong.nguyen@rainmaker-labs.com\"\n subscriber.subscriberUsername = \"phongNguyen\"\n subscriber.subscriberCellphoneNumber = \"65 90755230\"\n subscriber.subscriberInformations = [\"gps_latitude\": 0,\n \"gps_longitude\": 0,\n \"gender\": \"male\",\n \"date_of_birth\": \"2016/6/12\",\n \"country\": \"SG\",\n \"industry\": \"\",\n \"designation\": \"\",\n \"interest_id\": \"\"]\n \n subscriber.registerSubscriberOnCompletion({(succeed, error, errorObject, subscriberId) in\n if let errObj = errorObject as? HLError{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })\n ", "language": "swift" }, { "code": "", "language": "java", "name": "Android - Java" } ] } [/block] ##MODIFY SUBSCRIBER To modify a subscriber's details, you simply update subscriber with new data and then call HLSubscriber's method below: [block:code] { "codes": [ { "code": " [subscriber updateBySubscriberId:[NSNumber numberWithInt:subscriberId] onCompletion:^(BOOL succeed, NSError *error, HLError *errorObject){\n if(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n }];", "language": "objectivec" }, { "code": "subscriber.updateBySubscriberId(NSNumber.init(int: 154), onCompletion: {(succeed, error, errorObject) in\n if let errObj = errorObject as? HLError{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "java", "name": "Android - Java" } ] } [/block] ##DEMOGRAPHIC TARGETING & SUBSCRIBER INFORMATION Each subscriber is supplied with individual demographic targets (pre-created of HOLLER!). These targets are specified inside "info" members of subscriber including: [block:parameters] { "data": { "h-0": "Property Name", "h-1": "Description", "h-2": "Data Type", "0-0": "Longitude", "1-0": "Latitude", "2-0": "Gender", "3-0": "Date of Birth", "4-0": "Country", "5-0": "Industry", "6-0": "Designation", "7-0": "Interest", "0-1": "The angular distance of a place east or west of the meridian at Greenwich, England, or west of the standard meridian of a celestial object, usually expressed in degrees and minutes.", "1-1": "The angular distance of a place north or south of the earth's equator, or of a celestial object north or south of the celestial equator, usually expressed in degrees and minutes.", "2-1": "Gender of subscriber", "4-1": "The country subscriber is currently living", "5-1": "The industry subscriber is currently working in", "6-1": "Job Role/Position of subscriber", "7-1": "Hobbies of subscriber", "0-2": "NSNumber", "1-2": "NSNumber", "2-2": "NSString", "3-2": "NSString", "4-2": "NSString", "5-2": "NSString", "6-2": "NSString", "7-2": "NSString" }, "cols": 3, "rows": 8 } [/block] ##SUBSCRIBER's READ-ONLY MEMBERs HLSubscribers also provide some read-only property member to support subscribers. [block:parameters] { "data": { "h-0": "Property Name", "h-1": "Description", "h-2": "Data Type", "0-0": "isActive", "0-1": "Determine whether subscriber is active or not", "0-2": "BOOL", "1-0": "createdDate", "1-1": "Date subscriber was registered", "1-2": "NSDate", "2-0": "updatedDate", "2-1": "Latest date subscriber was modified", "2-2": "NSDate" }, "cols": 3, "rows": 3 } [/block]
Each subscriber lives in a different place, works in a different industry, and is assigned to several positions and job roles. Some of them prefer mobile apps as their hobbies rather than other entertainment. We provide the subscriber a module in HOLLER! iOS SDK to help you manage them easier, update and modify demographic targets, and segmentation that will improve your campaign's quality and effectiveness. ##CREATE SUBSCRIBER The subscriber is shown as an independent module of HOLLER! iOS SDK specified as "HLSubscriber". To create a new subscriber, add the following snippet of code to your class: [block:code] { "codes": [ { "code": "HLSubscriber *subscriber = [[HLSubscriber alloc] init];\n [subscriber setSubscriberFirstName:@\"Phong\"];\n [subscriber setSubscriberLastName:@\"Nguyen\"];\n [subscriber setSubscriberEmail:@\"phong.nguyen@rainmaker-labs.com\"];\n [subscriber setSubscriberUsername:@\"phongnguyen\"];\n [subscriber setSubscriberCellphoneNumber:@\"65 90755230\"];\n\t\t[subscriber setSubscriberDeviceToken:@\"FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660\"];\n\n [subscriber setSubscriberInformations:@{@\"gps_latitude\": @0,\n @\"gps_longitude\": @0,\n @\"gender\": @\"male\",\n @\"date_of_birth\": @\"2016/6/12\",\n @\"country\": @\"SG\",\n @\"industry\": @\"\",\n @\"designation\": @\"\",\n @\"interest_id\": @\"\"}];\n [subscriber registerSubscriberSilently];", "language": "objectivec" }, { "code": "let subscriber: HLSubscriber = HLSubscriber.init()\n subscriber.subscriberFirstName = \"Phong\"\n subscriber.subscriberLastName = \"Nguyen\"\n subscriber.subscriberEmail = \"phong.nguyen@rainmaker-labs.com\"\n subscriber.subscriberUsername = \"phongNguyen\"\n subscriber.subscriberCellphoneNumber = \"65 90755230\"\n subscriber.subscriberInformations = [\"gps_latitude\": 0,\n \"gps_longitude\": 0,\n \"gender\": \"male\",\n \"date_of_birth\": \"2016/6/12\",\n \"country\": \"SG\",\n \"industry\": \"\",\n \"designation\": \"\",\n \"interest_id\": \"\"]\n \n subscriber.registerSubscriberSilently()", "language": "swift" }, { "code": "", "language": "java", "name": "Android - Java" } ] } [/block] HLSubscriber also provides another method to register a subscriber with callback block (closure). Asynchronously, this method registers a new subscriber and gives you a callback at completion. [block:code] { "codes": [ { "code": "HLSubscriber *subscriber = [[HLSubscriber alloc] init];\n [subscriber setSubscriberFirstName:@\"Phong\"];\n [subscriber setSubscriberLastName:@\"Nguyen\"];\n [subscriber setSubscriberEmail:@\"phong.nguyen@rainmaker-labs.com\"];\n [subscriber setSubscriberUsername:@\"phongnguyen\"];\n [subscriber setSubscriberCellphoneNumber:@\"65 90755230\"];\n\t\t[subscriber setSubscriberDeviceToken:@\"FE66489F304DC75B8D6E8200DFF8A456E8DAEACEC428B427E9518741C92C6660\"];\n\n [subscriber setSubscriberInformations:@{@\"gps_latitude\": @0,\n @\"gps_longitude\": @0,\n @\"gender\": @\"male\",\n @\"date_of_birth\": @\"2016/6/12\",\n @\"country\": @\"SG\",\n @\"industry\": @\"\",\n @\"designation\": @\"\",\n @\"interest_id\": @\"\"}];\n[subscriber registerSubscriberOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSNumber *subscriberId){\n if(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n }];", "language": "objectivec" }, { "code": "let subscriber: HLSubscriber = HLSubscriber.init()\n subscriber.subscriberFirstName = \"Phong\"\n subscriber.subscriberLastName = \"Nguyen\"\n subscriber.subscriberEmail = \"phong.nguyen@rainmaker-labs.com\"\n subscriber.subscriberUsername = \"phongNguyen\"\n subscriber.subscriberCellphoneNumber = \"65 90755230\"\n subscriber.subscriberInformations = [\"gps_latitude\": 0,\n \"gps_longitude\": 0,\n \"gender\": \"male\",\n \"date_of_birth\": \"2016/6/12\",\n \"country\": \"SG\",\n \"industry\": \"\",\n \"designation\": \"\",\n \"interest_id\": \"\"]\n \n subscriber.registerSubscriberOnCompletion({(succeed, error, errorObject, subscriberId) in\n if let errObj = errorObject as? HLError{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })\n ", "language": "swift" }, { "code": "", "language": "java", "name": "Android - Java" } ] } [/block] ##MODIFY SUBSCRIBER To modify a subscriber's details, you simply update subscriber with new data and then call HLSubscriber's method below: [block:code] { "codes": [ { "code": " [subscriber updateBySubscriberId:[NSNumber numberWithInt:subscriberId] onCompletion:^(BOOL succeed, NSError *error, HLError *errorObject){\n if(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n }];", "language": "objectivec" }, { "code": "subscriber.updateBySubscriberId(NSNumber.init(int: 154), onCompletion: {(succeed, error, errorObject) in\n if let errObj = errorObject as? HLError{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "java", "name": "Android - Java" } ] } [/block] ##DEMOGRAPHIC TARGETING & SUBSCRIBER INFORMATION Each subscriber is supplied with individual demographic targets (pre-created of HOLLER!). These targets are specified inside "info" members of subscriber including: [block:parameters] { "data": { "h-0": "Property Name", "h-1": "Description", "h-2": "Data Type", "0-0": "Longitude", "1-0": "Latitude", "2-0": "Gender", "3-0": "Date of Birth", "4-0": "Country", "5-0": "Industry", "6-0": "Designation", "7-0": "Interest", "0-1": "The angular distance of a place east or west of the meridian at Greenwich, England, or west of the standard meridian of a celestial object, usually expressed in degrees and minutes.", "1-1": "The angular distance of a place north or south of the earth's equator, or of a celestial object north or south of the celestial equator, usually expressed in degrees and minutes.", "2-1": "Gender of subscriber", "4-1": "The country subscriber is currently living", "5-1": "The industry subscriber is currently working in", "6-1": "Job Role/Position of subscriber", "7-1": "Hobbies of subscriber", "0-2": "NSNumber", "1-2": "NSNumber", "2-2": "NSString", "3-2": "NSString", "4-2": "NSString", "5-2": "NSString", "6-2": "NSString", "7-2": "NSString" }, "cols": 3, "rows": 8 } [/block] ##SUBSCRIBER's READ-ONLY MEMBERs HLSubscribers also provide some read-only property member to support subscribers. [block:parameters] { "data": { "h-0": "Property Name", "h-1": "Description", "h-2": "Data Type", "0-0": "isActive", "0-1": "Determine whether subscriber is active or not", "0-2": "BOOL", "1-0": "createdDate", "1-1": "Date subscriber was registered", "1-2": "NSDate", "2-0": "updatedDate", "2-1": "Latest date subscriber was modified", "2-2": "NSDate" }, "cols": 3, "rows": 3 } [/block]
{"__v":0,"_id":"582bbbaae290ea0f00ec07ab","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"HOLLER! provide a pre-created demographic target to help you reach more subscribers by specifying subscriber characteristics.\n\n##GET TARGET DETAIL\nDevelopers can easily get all their target subscribers to see their details. HLTarget represents all targets, including:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Target Name\",\n    \"h-1\": \"Description\",\n    \"0-0\": \"Nationality\",\n    \"0-1\": \"Subscriber's nationality\",\n    \"1-0\": \"Location\",\n    \"1-1\": \"GPS coordinates of subscriber\",\n    \"2-0\": \"Gender\",\n    \"2-1\": \"Male/Female\",\n    \"3-0\": \"Device\",\n    \"3-1\": \"DeviceOS that subscriber is currently using (*)\",\n    \"4-0\": \"\",\n    \"4-1\": \"\",\n    \"5-0\": \"\",\n    \"5-1\": \"\",\n    \"6-0\": \"\",\n    \"6-1\": \"\"\n  },\n  \"cols\": 2,\n  \"rows\": 4\n}\n[/block]\nHLTarget provides several methods to get the above targets for individual purposes.\n\n(*) HOLLER! currently only supports two mobile operating systems: iOS and Android.\n\n##Nationality\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[HLTarget fetchListCountryOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *countries){\\n\\t\\tif(errorObject){\\n            //handle error object with description and error status\\n    }else{\\n            //succeed. subscriberId'll returned back\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"HLTarget.fetchListCountryOnCompletion({(succeed, error, errorObject, countries) in\\n            if let errObj = errorObject as HLError?{\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        })\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##Location\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[HLTarget fetchListLocationOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *locations){\\n\\t\\tif(errorObject){\\n            //handle error object with description and error status\\n    }else{\\n            //succeed. subscriberId'll returned back\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"HLTarget.fetchListLocationOnCompletion({(succeed, error, errorObject, locations) in\\n            if let errObj = errorObject as HLError?{\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        })\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n\n##Gender\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[HLTarget fetchListGenderOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *genders){\\n  \\tif(errorObject){\\n            //handle error object with description and error status\\n    }else{\\n            //succeed. subscriberId'll returned back\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"HLTarget.fetchListGenderOnCompletion({(succeed, error, errorObject, genders) in\\n            if let errObj = errorObject as HLError?{\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        })\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##Device\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[HLTarget fetchListDeviceOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *devices){   \\n  \\t\\tif(errorObject){\\n            //handle error object with description and error status\\n    }else{\\n            //succeed. subscriberId'll returned back\\n    }\\n}];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"HLTarget.fetchListDeviceOnCompletion({(succeed, error, errorObject, devices) in\\n            if let errObj = errorObject as HLError?{\\n                //handle error object with description and error status\\n            }else{\\n                //succeed. subscriberId'll returned back\\n            }\\n        })\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]","category":"582bbbaae290ea0f00ec07a1","createdAt":"2016-04-25T03:04:13.832Z","excerpt":"Demographic target is a set of targets, provided inside HOLLER!, to help you pick the right time to deliver content to the correct subscribers.","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":1,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"demographic-target","sync_unique":"","title":"Demographic Target","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Demographic Target

Demographic target is a set of targets, provided inside HOLLER!, to help you pick the right time to deliver content to the correct subscribers.

HOLLER! provide a pre-created demographic target to help you reach more subscribers by specifying subscriber characteristics. ##GET TARGET DETAIL Developers can easily get all their target subscribers to see their details. HLTarget represents all targets, including: [block:parameters] { "data": { "h-0": "Target Name", "h-1": "Description", "0-0": "Nationality", "0-1": "Subscriber's nationality", "1-0": "Location", "1-1": "GPS coordinates of subscriber", "2-0": "Gender", "2-1": "Male/Female", "3-0": "Device", "3-1": "DeviceOS that subscriber is currently using (*)", "4-0": "", "4-1": "", "5-0": "", "5-1": "", "6-0": "", "6-1": "" }, "cols": 2, "rows": 4 } [/block] HLTarget provides several methods to get the above targets for individual purposes. (*) HOLLER! currently only supports two mobile operating systems: iOS and Android. ##Nationality [block:code] { "codes": [ { "code": "[HLTarget fetchListCountryOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *countries){\n\t\tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListCountryOnCompletion({(succeed, error, errorObject, countries) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##Location [block:code] { "codes": [ { "code": "[HLTarget fetchListLocationOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *locations){\n\t\tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListLocationOnCompletion({(succeed, error, errorObject, locations) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##Gender [block:code] { "codes": [ { "code": "[HLTarget fetchListGenderOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *genders){\n \tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListGenderOnCompletion({(succeed, error, errorObject, genders) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##Device [block:code] { "codes": [ { "code": "[HLTarget fetchListDeviceOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *devices){ \n \t\tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListDeviceOnCompletion({(succeed, error, errorObject, devices) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block]
HOLLER! provide a pre-created demographic target to help you reach more subscribers by specifying subscriber characteristics. ##GET TARGET DETAIL Developers can easily get all their target subscribers to see their details. HLTarget represents all targets, including: [block:parameters] { "data": { "h-0": "Target Name", "h-1": "Description", "0-0": "Nationality", "0-1": "Subscriber's nationality", "1-0": "Location", "1-1": "GPS coordinates of subscriber", "2-0": "Gender", "2-1": "Male/Female", "3-0": "Device", "3-1": "DeviceOS that subscriber is currently using (*)", "4-0": "", "4-1": "", "5-0": "", "5-1": "", "6-0": "", "6-1": "" }, "cols": 2, "rows": 4 } [/block] HLTarget provides several methods to get the above targets for individual purposes. (*) HOLLER! currently only supports two mobile operating systems: iOS and Android. ##Nationality [block:code] { "codes": [ { "code": "[HLTarget fetchListCountryOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *countries){\n\t\tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListCountryOnCompletion({(succeed, error, errorObject, countries) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##Location [block:code] { "codes": [ { "code": "[HLTarget fetchListLocationOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *locations){\n\t\tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListLocationOnCompletion({(succeed, error, errorObject, locations) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##Gender [block:code] { "codes": [ { "code": "[HLTarget fetchListGenderOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *genders){\n \tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListGenderOnCompletion({(succeed, error, errorObject, genders) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##Device [block:code] { "codes": [ { "code": "[HLTarget fetchListDeviceOnCompletion:^(BOOL succeed, NSError *error, HLError *errorObject, NSArray *devices){ \n \t\tif(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "HLTarget.fetchListDeviceOnCompletion({(succeed, error, errorObject, devices) in\n if let errObj = errorObject as HLError?{\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n })", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block]
{"__v":0,"_id":"582bbbaae290ea0f00ec07ac","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Push Notifications are one of the most essential features of mobile technology. HOLLER! provides Push Notifications with many advantages and inside support features.\n\n##PUSH NOTIFICATION\nHLPush represents HOLLER! Push, and provides several functions so that developers can customise push notifications easier for their own individual purpose. For example:\n-After your user makes the first payment, a push notification of a coupon or voucher can be sent to them to receive future traction.\n-After your user registers an enterprise account or upgrades their account, a push notification can be sent of a discount or promotion code to them.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"//lets push some thing attracts your user\\n[[HLPush defaultPush] pushNotificationToSubscribers:@[subscriberToPush] description:@\\\"Welcome to HOLLER\\\" subject:@\\\"Welcome to HOLLER! Our pleasure to serve your succeed\\\" content:@\\\"Hello HOLLER\\\" onCompletion:^(BOOL succeed, HLError *error){\\n       \\t\\t\\tif(errorObject){\\n            \\t\\t//handle error object with description and error status\\n        \\t\\t}else{\\n            \\t\\t//succeed\\n        \\t\\t} \\n        }];\\n}];\\n\\n\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"HLPush.defaultPush().pushNotificationToSubscribers(subscriberToPush as! [HLSubscriber], description: \\\"Welcome to HOLLER\\\", subject: \\\"Hello World\\\", content: \\\"Hello World\\\", onCompletion: {(succeed, error) in\\n    if let errorObj = error{\\n       //handle error object with description and error status\\n    }else{\\n       //succeed\\n    }\\n})\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##PUSH NOTIFICATION WITH WRAPPED DEEP LINK\nDeep Link is a new methodology that is supported very well on the smart phone; but what is it and how will it empower your app?\n1. Deeplinking is a methodology for launching a native mobile application via a link.\n2. Deeplinking connects a unique url to a defined action in a mobile app, seamlessly linking users to relevant content.\n\nSo you have another mobile app, and you want to introduce them to your user; HOLLER! helps to wrap it inside your push notification payload. Lets do it!\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"NSURL *deeplink = [NSURL URLWithString:@\\\"appScheme://moveToYourApp\\\"];\\n    \\n[[HLPush defaultPush] pushNotificationToSubscribers:@[subscriberToPush] deepLink:deeplink description:@\\\"Welcome to HOLLER\\\" subject:@\\\"Welcome to HOLLER! Our pleasure to serve your succeed\\\" content:@\\\"Hello HOLLER\\\" onCompletion:^(BOOL succeed, HLError *error){\\n   if(errorObject){\\n      //handle error object with description and error status\\n   }else{\\n      //succeed. subscriberId'll returned back\\n   }\\n}];\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"let deepLink = NSURL.init(string: \\\"appScheme://moveToYourApp\\\")\\n        \\nHLPush.defaultPush().pushNotificationToSubscribers(subscriberToPush as! [HLSubscriber], deepLink: deepLink, description: \\\"Welcome to HOLLER\\\", subject: \\\"Hello World\\\", content: \\\"Hello World\\\", onCompletion: {(succeed, error) in\\n     if let errorObj = error{\\n        //handle error object with description and error status\\n     }else{\\n        //succeed\\n     }\\n})\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##PUSH NOTIFICATION PRE-HANDLING\nTo push notification to your user's device, HOLLER! needs a device token to do it. So it's simple: just  copy the following snippet.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{\\n    //this line of code to trigger event to HOLLER about your device token, HOLLER will parse and use your device token for push notification\\n    [Holler didRegisterForRemoteNotificationWithDeviceToken:deviceToken];\\n}\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {\\n   Holler.didRegisterForRemoteNotificationWithDeviceToken(deviceToken)\\n}\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##PUSH NOTIFICATION POST-HANDLING\nHOLLER! needs to know whenever your application receives notification that push from HOLLER!. HOLLER! use this information to collect and make statistics on your campaign's effectiveness and reports. To achieve this, you simply copy the following snippet of code below: \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{\\n    //use this snippet to inform HOLLER that app did receive notification on device\\n    [Holler didReceiveRemoteNotification:userInfo];\\n}\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {\\n    Holler.didReceiveRemoteNotification(userInfo)\\n}\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]","category":"582bbbaae290ea0f00ec07a1","createdAt":"2016-05-09T01:55:29.781Z","excerpt":"Essential mobile features that provide the ability to reach developer's users in the fastest and most efficient way possible.","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":2,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"push","sync_unique":"","title":"Push Notifications","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

Push Notifications

Essential mobile features that provide the ability to reach developer's users in the fastest and most efficient way possible.

Push Notifications are one of the most essential features of mobile technology. HOLLER! provides Push Notifications with many advantages and inside support features. ##PUSH NOTIFICATION HLPush represents HOLLER! Push, and provides several functions so that developers can customise push notifications easier for their own individual purpose. For example: -After your user makes the first payment, a push notification of a coupon or voucher can be sent to them to receive future traction. -After your user registers an enterprise account or upgrades their account, a push notification can be sent of a discount or promotion code to them. [block:code] { "codes": [ { "code": "//lets push some thing attracts your user\n[[HLPush defaultPush] pushNotificationToSubscribers:@[subscriberToPush] description:@\"Welcome to HOLLER\" subject:@\"Welcome to HOLLER! Our pleasure to serve your succeed\" content:@\"Hello HOLLER\" onCompletion:^(BOOL succeed, HLError *error){\n \t\t\tif(errorObject){\n \t\t//handle error object with description and error status\n \t\t}else{\n \t\t//succeed\n \t\t} \n }];\n}];\n\n", "language": "objectivec" }, { "code": "HLPush.defaultPush().pushNotificationToSubscribers(subscriberToPush as! [HLSubscriber], description: \"Welcome to HOLLER\", subject: \"Hello World\", content: \"Hello World\", onCompletion: {(succeed, error) in\n if let errorObj = error{\n //handle error object with description and error status\n }else{\n //succeed\n }\n})", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##PUSH NOTIFICATION WITH WRAPPED DEEP LINK Deep Link is a new methodology that is supported very well on the smart phone; but what is it and how will it empower your app? 1. Deeplinking is a methodology for launching a native mobile application via a link. 2. Deeplinking connects a unique url to a defined action in a mobile app, seamlessly linking users to relevant content. So you have another mobile app, and you want to introduce them to your user; HOLLER! helps to wrap it inside your push notification payload. Lets do it! [block:code] { "codes": [ { "code": "NSURL *deeplink = [NSURL URLWithString:@\"appScheme://moveToYourApp\"];\n \n[[HLPush defaultPush] pushNotificationToSubscribers:@[subscriberToPush] deepLink:deeplink description:@\"Welcome to HOLLER\" subject:@\"Welcome to HOLLER! Our pleasure to serve your succeed\" content:@\"Hello HOLLER\" onCompletion:^(BOOL succeed, HLError *error){\n if(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "let deepLink = NSURL.init(string: \"appScheme://moveToYourApp\")\n \nHLPush.defaultPush().pushNotificationToSubscribers(subscriberToPush as! [HLSubscriber], deepLink: deepLink, description: \"Welcome to HOLLER\", subject: \"Hello World\", content: \"Hello World\", onCompletion: {(succeed, error) in\n if let errorObj = error{\n //handle error object with description and error status\n }else{\n //succeed\n }\n})", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##PUSH NOTIFICATION PRE-HANDLING To push notification to your user's device, HOLLER! needs a device token to do it. So it's simple: just copy the following snippet. [block:code] { "codes": [ { "code": "- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{\n //this line of code to trigger event to HOLLER about your device token, HOLLER will parse and use your device token for push notification\n [Holler didRegisterForRemoteNotificationWithDeviceToken:deviceToken];\n}", "language": "objectivec" }, { "code": "func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {\n Holler.didRegisterForRemoteNotificationWithDeviceToken(deviceToken)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##PUSH NOTIFICATION POST-HANDLING HOLLER! needs to know whenever your application receives notification that push from HOLLER!. HOLLER! use this information to collect and make statistics on your campaign's effectiveness and reports. To achieve this, you simply copy the following snippet of code below: [block:code] { "codes": [ { "code": "- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{\n //use this snippet to inform HOLLER that app did receive notification on device\n [Holler didReceiveRemoteNotification:userInfo];\n}", "language": "objectivec" }, { "code": "func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {\n Holler.didReceiveRemoteNotification(userInfo)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block]
Push Notifications are one of the most essential features of mobile technology. HOLLER! provides Push Notifications with many advantages and inside support features. ##PUSH NOTIFICATION HLPush represents HOLLER! Push, and provides several functions so that developers can customise push notifications easier for their own individual purpose. For example: -After your user makes the first payment, a push notification of a coupon or voucher can be sent to them to receive future traction. -After your user registers an enterprise account or upgrades their account, a push notification can be sent of a discount or promotion code to them. [block:code] { "codes": [ { "code": "//lets push some thing attracts your user\n[[HLPush defaultPush] pushNotificationToSubscribers:@[subscriberToPush] description:@\"Welcome to HOLLER\" subject:@\"Welcome to HOLLER! Our pleasure to serve your succeed\" content:@\"Hello HOLLER\" onCompletion:^(BOOL succeed, HLError *error){\n \t\t\tif(errorObject){\n \t\t//handle error object with description and error status\n \t\t}else{\n \t\t//succeed\n \t\t} \n }];\n}];\n\n", "language": "objectivec" }, { "code": "HLPush.defaultPush().pushNotificationToSubscribers(subscriberToPush as! [HLSubscriber], description: \"Welcome to HOLLER\", subject: \"Hello World\", content: \"Hello World\", onCompletion: {(succeed, error) in\n if let errorObj = error{\n //handle error object with description and error status\n }else{\n //succeed\n }\n})", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##PUSH NOTIFICATION WITH WRAPPED DEEP LINK Deep Link is a new methodology that is supported very well on the smart phone; but what is it and how will it empower your app? 1. Deeplinking is a methodology for launching a native mobile application via a link. 2. Deeplinking connects a unique url to a defined action in a mobile app, seamlessly linking users to relevant content. So you have another mobile app, and you want to introduce them to your user; HOLLER! helps to wrap it inside your push notification payload. Lets do it! [block:code] { "codes": [ { "code": "NSURL *deeplink = [NSURL URLWithString:@\"appScheme://moveToYourApp\"];\n \n[[HLPush defaultPush] pushNotificationToSubscribers:@[subscriberToPush] deepLink:deeplink description:@\"Welcome to HOLLER\" subject:@\"Welcome to HOLLER! Our pleasure to serve your succeed\" content:@\"Hello HOLLER\" onCompletion:^(BOOL succeed, HLError *error){\n if(errorObject){\n //handle error object with description and error status\n }else{\n //succeed. subscriberId'll returned back\n }\n}];", "language": "objectivec" }, { "code": "let deepLink = NSURL.init(string: \"appScheme://moveToYourApp\")\n \nHLPush.defaultPush().pushNotificationToSubscribers(subscriberToPush as! [HLSubscriber], deepLink: deepLink, description: \"Welcome to HOLLER\", subject: \"Hello World\", content: \"Hello World\", onCompletion: {(succeed, error) in\n if let errorObj = error{\n //handle error object with description and error status\n }else{\n //succeed\n }\n})", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##PUSH NOTIFICATION PRE-HANDLING To push notification to your user's device, HOLLER! needs a device token to do it. So it's simple: just copy the following snippet. [block:code] { "codes": [ { "code": "- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{\n //this line of code to trigger event to HOLLER about your device token, HOLLER will parse and use your device token for push notification\n [Holler didRegisterForRemoteNotificationWithDeviceToken:deviceToken];\n}", "language": "objectivec" }, { "code": "func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {\n Holler.didRegisterForRemoteNotificationWithDeviceToken(deviceToken)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##PUSH NOTIFICATION POST-HANDLING HOLLER! needs to know whenever your application receives notification that push from HOLLER!. HOLLER! use this information to collect and make statistics on your campaign's effectiveness and reports. To achieve this, you simply copy the following snippet of code below: [block:code] { "codes": [ { "code": "- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo{\n //use this snippet to inform HOLLER that app did receive notification on device\n [Holler didReceiveRemoteNotification:userInfo];\n}", "language": "objectivec" }, { "code": "func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {\n Holler.didReceiveRemoteNotification(userInfo)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block]
{"__v":0,"_id":"582bbbaae290ea0f00ec07c4","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"body":"Currently HOLLER! only supports App Usage features to help track active users, churn rates, and retention and stickiness that are based on app usage in a user's smartphone. To implement this feature, simply uses two functions that HOLLER! provides.\n\n##EVENT APP ACTIVE\nTo let HOLLER! know whenever an app is opened and becomes active on a user's smartphone, cover it with several lines of code in AppDelegate.m.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"- (void)applicationDidBecomeActive:(UIApplication *)application {\\n    //trigger when your app did become active on user's smartphone to let HOLLER knows app on user's device started\\n    [Holler applicationDidBecomeActive:application];\\n}\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"func applicationDidBecomeActive(application: UIApplication) {\\n    Holler.applicationDidBecomeActive(application)\\n}\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]\n##EVENT APP INACTIVE/TERMINATED\nTo let HOLLER! know whenever an app is opened and becomes inactive or terminated on user's smartphone, cover it with several lines of code in AppDelegate.m, as well.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"- (void)applicationWillTerminate:(UIApplication *)application {\\n    //trigger when your app will terminated soon. This event araise even to let HOLLER knows app on user's device will be terminate in secs\\n    [Holler applicationWillTerminate:application];\\n}\",\n      \"language\": \"objectivec\"\n    },\n    {\n      \"code\": \"func applicationWillTerminate(application: UIApplication) {\\n    Holler.applicationWillTerminate(application)\\n}\",\n      \"language\": \"swift\"\n    },\n    {\n      \"code\": \"\",\n      \"language\": \"text\",\n      \"name\": \"Android - Java\"\n    }\n  ]\n}\n[/block]","category":"582bbbaae290ea0f00ec07a2","createdAt":"2016-05-11T02:46:21.118Z","excerpt":"HOLLER! provides Insight & Analytic features to help developers, marketers and product managers. They cover the app's growth and understand every movement of the app's user.","githubsync":"","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"order":0,"parentDoc":null,"project":"5715a565b5af590e00a0fd65","slug":"app-usage","sync_unique":"","title":"App Usage","type":"basic","updates":[],"user":"570342fa18ad001700a2962a","version":"582bbba9e290ea0f00ec079d","childrenPages":[]}

App Usage

HOLLER! provides Insight & Analytic features to help developers, marketers and product managers. They cover the app's growth and understand every movement of the app's user.

Currently HOLLER! only supports App Usage features to help track active users, churn rates, and retention and stickiness that are based on app usage in a user's smartphone. To implement this feature, simply uses two functions that HOLLER! provides. ##EVENT APP ACTIVE To let HOLLER! know whenever an app is opened and becomes active on a user's smartphone, cover it with several lines of code in AppDelegate.m. [block:code] { "codes": [ { "code": "- (void)applicationDidBecomeActive:(UIApplication *)application {\n //trigger when your app did become active on user's smartphone to let HOLLER knows app on user's device started\n [Holler applicationDidBecomeActive:application];\n}", "language": "objectivec" }, { "code": "func applicationDidBecomeActive(application: UIApplication) {\n Holler.applicationDidBecomeActive(application)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##EVENT APP INACTIVE/TERMINATED To let HOLLER! know whenever an app is opened and becomes inactive or terminated on user's smartphone, cover it with several lines of code in AppDelegate.m, as well. [block:code] { "codes": [ { "code": "- (void)applicationWillTerminate:(UIApplication *)application {\n //trigger when your app will terminated soon. This event araise even to let HOLLER knows app on user's device will be terminate in secs\n [Holler applicationWillTerminate:application];\n}", "language": "objectivec" }, { "code": "func applicationWillTerminate(application: UIApplication) {\n Holler.applicationWillTerminate(application)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block]
Currently HOLLER! only supports App Usage features to help track active users, churn rates, and retention and stickiness that are based on app usage in a user's smartphone. To implement this feature, simply uses two functions that HOLLER! provides. ##EVENT APP ACTIVE To let HOLLER! know whenever an app is opened and becomes active on a user's smartphone, cover it with several lines of code in AppDelegate.m. [block:code] { "codes": [ { "code": "- (void)applicationDidBecomeActive:(UIApplication *)application {\n //trigger when your app did become active on user's smartphone to let HOLLER knows app on user's device started\n [Holler applicationDidBecomeActive:application];\n}", "language": "objectivec" }, { "code": "func applicationDidBecomeActive(application: UIApplication) {\n Holler.applicationDidBecomeActive(application)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block] ##EVENT APP INACTIVE/TERMINATED To let HOLLER! know whenever an app is opened and becomes inactive or terminated on user's smartphone, cover it with several lines of code in AppDelegate.m, as well. [block:code] { "codes": [ { "code": "- (void)applicationWillTerminate:(UIApplication *)application {\n //trigger when your app will terminated soon. This event araise even to let HOLLER knows app on user's device will be terminate in secs\n [Holler applicationWillTerminate:application];\n}", "language": "objectivec" }, { "code": "func applicationWillTerminate(application: UIApplication) {\n Holler.applicationWillTerminate(application)\n}", "language": "swift" }, { "code": "", "language": "text", "name": "Android - Java" } ] } [/block]