{"_id":"55781fe45129590d003ff51d","category":{"_id":"55781fe35129590d003ff4fb","version":"55781fe25129590d003ff4f7","__v":11,"pages":["55781fe45129590d003ff517","55781fe45129590d003ff518","55781fe45129590d003ff519","55781fe45129590d003ff51a","55781fe45129590d003ff51b","55781fe45129590d003ff51c","55781fe45129590d003ff51d","55781fe45129590d003ff51e","55781fe45129590d003ff51f","55781fe45129590d003ff520","55781fe45129590d003ff521","55781fe45129590d003ff522","5579ab5fc7fb3f2100096fad","55f7de1660cc850d008a7a22","55f7e1fbe32e9b0d00a2d4d0","561f72bacec1a50d00979598","561f764f61c0521700acc428","563337539c607719001b85dd","564318f1f49bfa0d002f5566","564f03454f000617007bd670","565ee80a23fd5f0d00a129f9","56793cd73473bc0d008e141b"],"project":"54aa7f773b56130b0056c86e","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-01-05T12:43:51.897Z","from_sync":false,"order":3,"slug":"ios-sdk","title":"iOS SDK"},"githubsync":"","__v":7,"project":"54aa7f773b56130b0056c86e","parentDoc":null,"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"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-05-18T11:36:27.596Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":7,"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) 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:withInteger:* method on *PULPulsateManager*.\n\nIncrementing:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[pulsateManager incrementIntegerAttribute::::at:::\\\"number_of_transactions\\\" withInteger:1]\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"pulsateManager.incrementIntegerAttribute(\\\"number_of_transactions\\\", withInteger: 1)\",\n      \"language\": \"swift\"\n    }\n  ]\n}\n[/block]\nThis will increment the counter named number_of_transaction by 1, if counter is incremented for the first time, it will be created and initialized with 0 as the value,  and then incremented by 1.\n\nDecrementing:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"[pulsateManager decrementIntegerAttribute:@\\\"number_of_transactions\\\" withInteger:1]\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"pulsateManager.decrementIntegerAttribute(\\\"number_of_transactions\\\", withInteger: 1)\",\n      \"language\": \"swift\"\n    }\n  ]\n}\n[/block]\nThis will decrement the counter named number_of_transaction by 1, if counter is decremented for the first time, it will be created and initialized with 0 value, and then decremented by 1.\n\nAll counter operations are stored locally and synchronized with the 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) 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:withInteger:* method on *PULPulsateManager*. Incrementing: [block:code] { "codes": [ { "code": "[pulsateManager incrementIntegerAttribute:@\"number_of_transactions\" withInteger:1]", "language": "objectivec" } ] } [/block] [block:code] { "codes": [ { "code": "pulsateManager.incrementIntegerAttribute(\"number_of_transactions\", withInteger: 1)", "language": "swift" } ] } [/block] This will increment the counter named number_of_transaction by 1, if counter is incremented for the first time, it will be created and initialized with 0 as the value, and then incremented by 1. Decrementing: [block:code] { "codes": [ { "code": "[pulsateManager decrementIntegerAttribute:@\"number_of_transactions\" withInteger:1]", "language": "objectivec" } ] } [/block] [block:code] { "codes": [ { "code": "pulsateManager.decrementIntegerAttribute(\"number_of_transactions\", withInteger: 1)", "language": "swift" } ] } [/block] This will decrement the counter named number_of_transaction by 1, if counter is decremented for the first time, it will be created and initialized with 0 value, and then decremented by 1. All counter operations are stored locally and synchronized with the Pulsate server when synchronization occurs.