{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"Incrementing / Decrementing Custom Parameters","type":"basic","slug":"incrementing--decrementing-custom-parameters","excerpt":"","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.","updates":[],"order":14,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5e5019b49e8f240011cc6a5b","project":"54aa7f773b56130b0056c86e","category":{"sync":{"isSync":false,"url":""},"pages":["5e5019b49e8f240011cc6a55","5e5019b49e8f240011cc6a56","5e5019b49e8f240011cc6a57","5e5019b49e8f240011cc6a58","5e5019b49e8f240011cc6a59","5e5019b49e8f240011cc6a5a","5e5019b49e8f240011cc6a5b","5e5019b49e8f240011cc6a5c","5e5019b49e8f240011cc6a5d","5e5019b49e8f240011cc6a5e","5e5019b49e8f240011cc6a68","5e5019b49e8f240011cc6a6b","5e5019b49e8f240011cc6a71","5e5019b49e8f240011cc6a73","5e5019b49e8f240011cc6a7e","5e5019b49e8f240011cc6a80","5e5019b49e8f240011cc6a81","5e5019b49e8f240011cc6a82","5e5019b49e8f240011cc6a84"],"title":"Android SDK","slug":"android-sdk","order":1,"from_sync":false,"reference":false,"_id":"5e5019b49e8f240011cc6a49","version":"5e5019b49e8f240011cc6ade","__v":10,"project":"54aa7f773b56130b0056c86e","createdAt":"2015-01-05T12:44:00.338Z"},"githubsync":"","__v":4,"createdAt":"2015-01-05T14:13:40.068Z","user":"54aa7f3f9bb00c0b00cb899b","version":{"version":"2.8","version_clean":"2.8.0","codename":"Android SDK","is_stable":false,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["5e5019b49e8f240011cc6a47","55781fe35129590d003ff4f9","55781fe35129590d003ff4fa","5e5019b49e8f240011cc6a48","5e5019b49e8f240011cc6a49","5e5019b49e8f240011cc6a4a","5e5019b49e8f240011cc6a4b","5e5019b49e8f240011cc6a4c","565b66c446118c0d00dcb0bb","56898269f8dc340d00308c13","5e5019b49e8f240011cc6a4d","5e5019b49e8f240011cc6a4e","5c73dd27e8fdc000572a206a","5e5019b49e8f240011cc6a4f","5e501b7e7c8bdc00450ea66a","5e53daa9884b750025b5cad4"],"_id":"5e5019b49e8f240011cc6ade","project":"54aa7f773b56130b0056c86e","forked_from":"5e4fbbbda8fb41028f1861fe","__v":2,"createdAt":"2015-06-10T11:30:42.700Z","releaseDate":"2015-06-10T11:30:42.700Z"},"parentDoc":null}

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.