{"_id":"55781fe45129590d003ff513","project":"54aa7f773b56130b0056c86e","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"},"githubsync":"","__v":4,"user":"54aa7f3f9bb00c0b00cb899b","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"},"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-01-05T14:13:40.068Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":9,"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]\nThe Pulsate SDK allows you to store integer and float values as custom parameters against a given user. For example: *number_of_transactions = 100, number_of_points = 100.1*. We also give you the ability to increment / decrement these values.\n\nIt's useful in situations where you want to increase a value without knowing it beforehand.\n\nFor example, if you want to increment an integer counter you should invoke the *incrementIntegerAttribute* method on *PulsateManager*.\n\nIncrementing:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.incrementIntegerAttribute(\\\"clickCounter\\\", 1);\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nThis will increment the counter named clickCounter by 1. If the counter will be incremented for the first time, it will be created and initialized with 0 value, then incremented by 1.\n\nIncrement value can be positive as well as negative. If a negative value is given i.e. -1, it will act as decrement by 1.\n\nDecrementing:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"manager.decrementIntegerAttribute(\\\"clickCounter\\\", 2);\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nWill decrement counter named clickCounter by 2, if counter is decremented for the first time, it will be created and initialized with 0 value, then decremented by 2.\n\nDecrement value can be positive as well as negative. If negative value is given i.e. -1, it will act as increment by 1.\n\nAll counter operations are stored locally and synchronized with Pulsate server when synchronization occurs.","excerpt":"","slug":"incrementing--decrementing-custom-parameters","type":"basic","title":"Incrementing / Decrementing Custom Parameters"}

Incrementing / Decrementing Custom Parameters


[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] The Pulsate SDK allows you to store integer and float values as custom parameters against a given user. For example: *number_of_transactions = 100, number_of_points = 100.1*. We also give you the ability to increment / decrement these values. It's useful in situations where you want to increase a value without knowing it beforehand. For example, if you want to increment an integer counter you should invoke the *incrementIntegerAttribute* method on *PulsateManager*. Incrementing: [block:code] { "codes": [ { "code": "manager.incrementIntegerAttribute(\"clickCounter\", 1);", "language": "java" } ] } [/block] This will increment the counter named clickCounter by 1. If the counter will be incremented for the first time, it will be created and initialized with 0 value, then incremented by 1. Increment value can be positive as well as negative. If a negative value is given i.e. -1, it will act as decrement by 1. Decrementing: [block:code] { "codes": [ { "code": "manager.decrementIntegerAttribute(\"clickCounter\", 2);", "language": "java" } ] } [/block] Will decrement counter named clickCounter by 2, if counter is decremented for the first time, it will be created and initialized with 0 value, then decremented by 2. Decrement value can be positive as well as negative. If negative value is given i.e. -1, it will act as increment by 1. All counter operations are stored locally and synchronized with Pulsate server when synchronization occurs.