{"_id":"55781fe45129590d003ff512","category":{"_id":"55781fe35129590d003ff4fc","pages":["55781fe45129590d003ff50d","55781fe45129590d003ff50e","55781fe45129590d003ff50f","55781fe45129590d003ff510","55781fe45129590d003ff511","55781fe45129590d003ff512","55781fe45129590d003ff513","55781fe45129590d003ff514","55781fe45129590d003ff515","55781fe45129590d003ff516","55f692b4fe4cce21005c78b0","55f7e91e60cc850d008a7a45","56333cab9c607719001b85e4","564462ed9ce94c0d00068ce9","564f54fa48a1df1700836653","565ee9e7413e06170093dde0","5661a8fdb401c70d00dde6fa","5671348860c8e70d006c96a1","568ce9707d3bf02300aa7734"],"version":"55781fe25129590d003ff4f7","__v":10,"project":"54aa7f773b56130b0056c86e","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-05T12:44:00.338Z","from_sync":false,"order":4,"slug":"android-sdk","title":"Android SDK"},"project":"54aa7f773b56130b0056c86e","__v":4,"parentDoc":null,"version":{"_id":"55781fe25129590d003ff4f7","project":"54aa7f773b56130b0056c86e","forked_from":"54aa7f773b56130b0056c871","__v":6,"createdAt":"2015-06-10T11:30:42.700Z","releaseDate":"2015-06-10T11:30:42.700Z","categories":["55781fe35129590d003ff4f8","55781fe35129590d003ff4f9","55781fe35129590d003ff4fa","55781fe35129590d003ff4fb","55781fe35129590d003ff4fc","55781fe35129590d003ff4fd","55781fe35129590d003ff4fe","564bbc7e8841060d00abb2ee","565b66c446118c0d00dcb0bb","56898269f8dc340d00308c13","582318b23b961a0f009516a1","594a848c9f4771001a43c959"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Developers","version_clean":"2.0.0","version":"2.0"},"githubsync":"","user":"54aa7f3f9bb00c0b00cb899b","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-01-05T14:13:25.746Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":8,"body":"[block:callout]\n{\n  \"type\": \"success\",\n  \"body\": \"Please make sure that you're familiar with the [Running the Pulsate SDK](https://pulsate.readme.io/v2.0/docs/running-the-pulsate-sdk-android) tutorial.\"\n}\n[/block]\nIn addition to the system parameters that Pulsate collects on your customers, you can optionally pass an unlimited amount of of custom parameters as well. This can be useful for collecting additional data on specific users such as: if they have made a purchase within the App yet, what plan they are on, free / paid etc.\n\nAny custom parameter that you pass to Pulsate automatically appears has a new filter option within the segment builder. Meaning that you can use a combination of our system filters such as \"last active / number of sessions\" combined with custom filters.\n\nSo for example you could build a segment around the following conditions: Show me users that - were last active less than 1 week ago - and where - number of purchases - is more than - 2. by combining Pulsate's system filter options with dynamic filters (created based on your custom parameters) we can create very granular segments, and thus create highly relevant and targeted campaigns.\n\nWhen you send a custom parameter to Pulsate, you need to let us know what data type it is so that Pulsate knows what segmentation options to present you with. For instance, if you send us a date, we will display options related to that date whereas a for a boolean we will display true or false as the only segment options. \n\nTo set a custom property simply invoke the *createAttribute(attributeName, attributeValue)* method:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.createAttribute(\\\"carColor\\\", \\\"green\\\");\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nThe execution of above line of code will update a *“carColor”* property using *“green”* value.\n\n*attributeValue* can be set as a String, Float, Integer, Boolean or Date.\n\nAll custom property operations are stored locally and synchronized with Pulsate server when synchronization occurs.\n\nThose properties can be viewed and queried via the Pulsate web console.","excerpt":"","slug":"passing-custom-parameters","type":"basic","title":"Passing Custom Parameters to Pulsate"}

Passing Custom Parameters to Pulsate


[block:callout] { "type": "success", "body": "Please make sure that you're familiar with the [Running the Pulsate SDK](https://pulsate.readme.io/v2.0/docs/running-the-pulsate-sdk-android) tutorial." } [/block] In addition to the system parameters that Pulsate collects on your customers, you can optionally pass an unlimited amount of of custom parameters as well. This can be useful for collecting additional data on specific users such as: if they have made a purchase within the App yet, what plan they are on, free / paid etc. Any custom parameter that you pass to Pulsate automatically appears has a new filter option within the segment builder. Meaning that you can use a combination of our system filters such as "last active / number of sessions" combined with custom filters. So for example you could build a segment around the following conditions: Show me users that - were last active less than 1 week ago - and where - number of purchases - is more than - 2. by combining Pulsate's system filter options with dynamic filters (created based on your custom parameters) we can create very granular segments, and thus create highly relevant and targeted campaigns. When you send a custom parameter to Pulsate, you need to let us know what data type it is so that Pulsate knows what segmentation options to present you with. For instance, if you send us a date, we will display options related to that date whereas a for a boolean we will display true or false as the only segment options. To set a custom property simply invoke the *createAttribute(attributeName, attributeValue)* method: [block:code] { "codes": [ { "code": "manager.createAttribute(\"carColor\", \"green\");", "language": "java" } ] } [/block] The execution of above line of code will update a *“carColor”* property using *“green”* value. *attributeValue* can be set as a String, Float, Integer, Boolean or Date. All custom property operations are stored locally and synchronized with Pulsate server when synchronization occurs. Those properties can be viewed and queried via the Pulsate web console.