Changes for page Flutter integration
Last modified by Developer on 2020/03/19 15:21
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -11,85 +11,43 @@ 11 11 12 12 = 2. Adding SDK to the project = 13 13 14 -**First, i nstalllibraryfromtherepositorywith**14 +**First, add this to your package's pubspec.yaml file** 15 15 16 16 {{code language=""}} 17 -yarn add react-native-mobigate 17 +dependencies: 18 + flutter_mobigate: ^1.0.2 18 18 {{/code}} 19 19 20 - or21 +**Install packages from the command line** 21 21 22 22 {{code language=""}} 23 - npminstall react-native-mobigate--save24 +$ flutter pub get 24 24 {{/code}} 25 25 26 -**Link newly added plugin** 27 - 28 -* **React Native >= 0.60** 29 -Starting from React Native 0.60, [[autolinking>>https://github.com/react-native-community/cli/blob/master/docs/autolinking.md]] makes the installation process simpler 30 - 31 -* **React Native <= 0.59** 32 -** Mostly automatic installation: 33 -{{code language=""}}react-native link react-native-mobigate{{/code}} 34 -** Manual installation:{{showhide id="1" showmessage="Manually link the library on Android" hidemessage="Manually link the library on Android"}}* Add to: android/settings.gradle 35 - 36 -{{code language="groovy"}} 37 -include ':react-native-mobigate' 38 -project(':react-native-mobigate').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-mobigate/android') 39 -{{/code}} 40 -* Add to: android/app/build.gradle 41 - 42 -{{code language="groovy"}} 43 -dependencies { 44 -implementation project(':react-native-mobigate') 45 -} 46 -{{/code}} 47 -* Add the MobigatePackage class to your list of exported packages into: android/app/src/main/.../MainApplication.java 48 - 49 -{{code language="java"}} 50 -... 51 -import pl.spicymobile.reactmobigate.MobigatePackage; 52 - 53 - 54 -@Override 55 -protected List<ReactPackage> getPackages() { 56 - return Arrays.<ReactPackage>asList( 57 - new MainReactPackage(), 58 - new MobigatePackage() 59 - ); 60 -} 61 -{{/code}}{{/showhide}} 62 - 63 63 = 3. Api methods = 64 64 65 65 To use any method from the plugin add import: 66 66 67 -{{code language=" javascript"}}68 -import Mobigatefrom 'react-native-mobigate'31 +{{code language="dart"}} 32 +import 'package:flutter_mobigate/flutter_mobigate.dart'; 69 69 {{/code}} 70 70 71 -== 3.1 SDK initialization == 35 +== 3.1 MobigateSDK class initialization == 72 72 73 - You must initializethelibrarybefore running it.Use//init(apiKey, options,onSuccess,onError)//method for that:37 +Initialize class with //MobigateSDK(MobigateOptions options)// 74 74 75 - **Mobigate.init(apiKey,options, onSuccess,onError)**39 +//MobigateOptions(apiKey,{appIdentifier, appInstallationSource,email,cusUserId,enableUserFields,dataGatherPolicy,notificationText,enableIdProfiles})// 76 76 41 +{{showhide id="2" showmessage="MobigateOptions" hidemessage="MobigateOptions"}} 77 77 (% class="table-bordered table-hover" style="border-color:powderblue" %) 78 -|=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 79 -|apiKey|String|Api key provided by your business partner 80 -|options|Json Object|SDK configuration 81 -|onSuccess|Function|returns callback object 82 -|onError|Function|returns callback object 83 - 84 -{{showhide id="2" showmessage="Options" hidemessage="Options"}} 85 -(% class="table-bordered table-hover" style="border-color:powderblue" %) 86 86 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description 87 87 | appIdentifier|String| | Application identifier 88 88 |appInstallationSource |String| | App installation source e.g., google-play, organic. 89 89 |email |String | | Set's user email. 90 -|cus tomUserId |String | | You may use your custom userID for marking data. By default we are using device ID and emails for matching. Set it before starting the service using MobigateSDk.Builder method.47 +|cusUserId |String | | You may use your custom userID for marking data. By default we are using device ID and emails for matching. Set it before starting the service using MobigateSDk.Builder method. 91 91 | enableUserFields|Json Array | | Enable custom fields in user data. By default MobienceSDK is gathering all identifiers, which it can read. You can choose one of these field: ["email", "imei", "imsi", "msisdn", "mac", "serial"] see [[plugin user field constants>>https://wiki.spicymobile.pl/wiki/mobigatesdk/view/Main/sdkintegration/reactnativeintegration/#H4.1Userfieldconstants]]. 92 92 | dataGatherPolicy| Json Object| | Enable custom data gater policy. By default MobienceSDK gather all data it can read and hide notification icon. Check below DataGatherPolicy options for more details. 50 +| notificationText|String | | if state = Mobigate.DATA_GATHER_POLICY_DEFAULT you can pass custom foreground service notification text. 93 93 | enableIdProfiles|Boolean |false | turns on / off the IDs profiles system. 94 94 {{/showhide}} 95 95 ... ... @@ -97,67 +97,45 @@ 97 97 (% class="table-bordered table-hover" style="border-color:powderblue" %) 98 98 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description 99 99 | monitorState|String| | Possible monitor states: [[plugin constants>>https://wiki.spicymobile.pl/wiki/mobigatesdk/view/Main/sdkintegration/reactnativeintegration/#H4.2Datagatherpolicyconstants]]. More info about gathering data [[here>>https://wiki.spicymobile.pl/wiki/mobigatesdk/view/Main/mobigatesdkintegrationforandroiddevelopers/#H5.8Datagatherpolicy]] 100 -|notificationText|String| | if state = Mobigate.DATA_GATHER_POLICY_DEFAULT you can pass custom foreground service notification text 101 101 {{/showhide}} 102 102 60 +{{showhide id="3" showmessage="Example" hidemessage="Example"}} 61 +{{code language="dart"}} 62 + MobigateSDK mobigateInstance = MobigateSDK(MobigateOptions( 63 + "V0K6jhiIfem6CRWHYZ59Nmj3oFBBKbJsnSsWfR2JNq7ktblOUXwbJoBQTpWnw2uSwW76gpiu2kun50jweTY69B" 64 + )); 65 +{{/code}} 66 +{{/showhide}} 103 103 104 - Whenthelibraryis already initialized run it. Use //startSDK(onSuccess,onError)// method for that:68 +== 3.2 SDK initialization == 105 105 106 - **Mobigate.startSDK(onSuccess,onError)**70 +You must initialize the library before running it. Use //Future<String> init// method for that: 107 107 72 +**mobigateInstance.init()** 73 + 74 +Return: 75 + 108 108 (% class="table-bordered table-hover" style="border-color:powderblue" %) 109 -|=(% style="background-color:powderblue" %) Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description110 -| onSuccess|Function|returns callbackobject111 -| onError|Function|returnscallbackobject77 +|=(% style="background-color:powderblue" %)Message|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 78 +|success|String|returns success message 79 +|error|String|returns error message 112 112 113 -{{showhide id="3" showmessage="Example" hidemessage="Example"}} 114 -{{code language="javascript"}} 115 - initLibrary = () => { 116 - if (Platform.OS === 'android') { 117 - Mobigate.init("V0K6jhiIfem6CRWHYZ59Nmj3oFBBKbJsnSsWfR2JNq7ktblOUXwbJoBQTpWnw2uSwW76gpiu2kun50jweTY69B", 118 - { 119 - /*custom options, check docs for more details 120 - appIdentifier: 'customUserAppIdentifier', 121 - appInstallationSource: "customAppInstallationSourcexyz", 122 - email: 'testemail@gmail.com', 123 - userAgent: 'customUserAgent', 124 - customUserId: 'customUserId',*/ 125 - }, (success) => { 126 - /* You can configure custom collectors after init 127 - Mobigate.disableAllDataCollector() 128 - Mobigate.configureDataCollectors(true, [Mobigate.DATA_COLLECTOR_APPS_LIST, 129 - Mobigate.DATA_COLLECTOR_BATTERY, 130 - Mobigate.DATA_COLLECTOR_PHONE_INFO])*/ 81 +When the library is already initialized run it. Use //Future<String> startSdk()// method for that: 131 131 132 - Mobigate.startSDK((result) => { 133 - this.setState({ 134 - status: 'started', 135 - }); 83 +**mobigateInstance.startSdk();** 136 136 137 - }, (errorResult) => { 138 - this.setState({ 139 - status: errorResult, 140 - }); 141 - }) 142 - }, (initError) => { 143 - this.setState({ 144 - status: initError, 145 - }); 146 - }) 147 - }else{ 148 - this.setState({ 149 - status: 'Mobigate SDK supports only Android' 150 - }) 151 - } 152 - } 153 -{{/code}} 154 -{{/showhide}} 85 +Return: 155 155 156 -== 3.2 Tracking in app events == 87 +(% class="table-bordered table-hover" style="border-color:powderblue" %) 88 +|=(% style="background-color:powderblue" %)Message|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 89 +|success|String|returns success message 90 +|error|String|returns error message 157 157 92 +== 3.3 Tracking in app events == 93 + 158 158 In-App Events provide insight on what is happening in your app. It is recommended to take the time and define the events you would like to measure. 159 159 160 -=== 3. 2.1 Overview ===96 +=== 3.3.1 Overview === 161 161 162 162 An event consists of two fields that you (% style="display:none" %) (%%)can use to describe a user's interaction with your app content: 163 163 ... ... @@ -167,41 +167,31 @@ 167 167 |(% style="width:200px" %)Parameter|(% style="width:200px" %)String|(% style="width:200px" %)no|(% style="width:200px" %)Event parameter. 168 168 There can be more than one 169 169 170 -You can use any event category or parameter string of your choice. However, react-native-mobigate plugin contains recommended event categories and parameters via String constants (see [[Event categories>>doc:||anchor="H3.2.3Eventcategories"]] and [[Event parameters>>doc:||anchor="H3.2.4Eventparameters"]]).106 +You can use any event category or parameter string of your choice. However, flutter_mobigate plugin contains recommended event categories and parameters via String constants (see [[Event categories>>doc:||anchor="H3.2.3Eventcategories"]] and [[Event parameters>>doc:||anchor="H3.2.4Eventparameters"]]). 171 171 172 -=== 3. 2.2 Implementation ===108 +=== 3.3.2 Implementation === 173 173 174 174 Tracking in-app events is performed by two methods: 175 175 176 -** Mobigate.trackEvent(options)**112 +**void trackEvent(Category category)** 177 177 178 -{{showhide id="2" showmessage="Options" hidemessage="Options" effect="slide" effectduration="0.3"}} 179 179 (% class="table-bordered table-hover" style="border-color:powderblue" %) 180 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Default|=(% style="background-color:powderblue" %)Description 181 -|name|String | | Event category name. 182 -|parameters|Json array| | Array of parameters. Look below on example. 183 -{{/showhide}} 115 +|=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 116 +|Category|Category class |Category class built with help of CategoryBuilder 184 184 185 185 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 186 -{{code language="javascript"}} 187 - sendTrackEvent = () => { 188 - if (Platform.OS === 'android') { 189 - Mobigate.trackEvent({ 190 - name: Mobigate.CATEGORY_PURCHASE, 191 - parameters: { 192 - [Mobigate.PARAMETER_CONTENT_ID]: 42313532, 193 - [Mobigate.PARAMETER_PRICE]: 43.23, 194 - [Mobigate.PARAMETER_QUANTITY]: 2, 195 - 'userCustomParameterName':'simpleName' 196 - }, 197 - }) 198 - } 199 - } 119 +{{code language="dart"}} 120 +mobigateInstance.trackEvent((CategoryBuilder(EventCategory.BEGIN_TRIAL) 121 + ..setParameter(EventParameter.CITY, "Warsaw") 122 + ..setParameter(EventParameter.CONTENT_ID, 523456) 123 + ..setParameter(EventParameter.COUPON_CODE, 97636572) 124 + ..setParameter(EventParameter.CUSTOMER_SEGMENT, [1, 2, 4])) 125 + .build()); 200 200 {{/code}} 201 201 {{/showhide}} 202 202 203 203 204 -** Mobigate.trackAppInstall(timestamp)**130 +**void trackAppInstall(int timestamp)** 205 205 206 206 (% class="table-bordered table-hover" style="border-color:powderblue" %) 207 207 |=(% style="background-color:powderblue" %)Parameter|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description ... ... @@ -217,7 +217,7 @@ 217 217 {{/code}} 218 218 {{/showhide}} 219 219 220 -=== 3. 2.3 Event categories ===146 +=== 3.3.3 Event categories === 221 221 222 222 The following section describes the recommended structure of each event category. In-app events categories are defined as part of plugin String constants. 223 223 ... ... @@ -390,7 +390,7 @@ 390 390 **Recommended parameters:** CONTENT_ID 391 391 {{/showhide}} 392 392 393 -=== 3. 2.4 Event parameters ===319 +=== 3.3.4 Event parameters === 394 394 395 395 In addition each category that is passed with event may have optional parameters defined as part of the plugin constants, or custom defined as String. Below is a list of recommended parameters. 396 396 ... ... @@ -472,14 +472,14 @@ 472 472 473 473 {{/showhide}} 474 474 475 -== 3. 3Remaining methods ==401 +== 3.4 Remaining methods == 476 476 477 -** Mobigate.setCollectAll()**403 +**void setCollectAll()** 478 478 This method enables all data collectors. By default all data collectors are enabled. 479 479 480 480 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 481 -{{code language=" javascript"}}482 - Mobigate.disableAllDataCollector()407 +{{code language="dart"}} 408 +mobigateInstance.setCollectAll(); 483 483 {{/code}} 484 484 {{/showhide}} 485 485 ... ... @@ -486,19 +486,21 @@ 486 486 (% style="color:powderblue" %) 487 487 ---- 488 488 489 -** Mobigate.configureDataCollectors(enable, collectors)**415 +**void configureDataCollectors(bool enable, List<int> collectors)** 490 490 Enable or disable DataCollector by array collectors input 491 491 492 492 (% class="table-bordered table-hover" style="border-color:powderblue" %) 493 493 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 494 -|enable|boolean|true if enable, false if disable |495 -|collectors|array of [[data collector const>>doc:||anchor="H4.3Datacollectorsconstants"]]|e.g.,[Mobigate.DATA_COLLECTOR_BATTERY, DATA_COLLECTOR_GEOLOCATION] |420 +|enable|boolean|true if enable, false if disable 421 +|collectors|array of [[data collector const>>doc:||anchor="H4.3Datacollectorsconstants"]]|e.g.,[Mobigate.DATA_COLLECTOR_BATTERY, DATA_COLLECTOR_GEOLOCATION] 496 496 497 497 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 498 -{{code language="javascript"}} 499 -Mobigate.configureDataCollectors(true, [Mobigate.DATA_COLLECTOR_APPS_LIST, 500 - Mobigate.DATA_COLLECTOR_BATTERY, 501 - Mobigate.DATA_COLLECTOR_PHONE_INFO]) 424 +{{code language="dart"}} 425 +mobigateInstance.configureDataCollectors(true, [ 426 + DataCollector.APPS_LIST, 427 + DataCollector.APPS_USAGE, 428 + DataCollector.BROWSER 429 + ]); 502 502 {{/code}} 503 503 {{/showhide}} 504 504 ... ... @@ -505,12 +505,12 @@ 505 505 (% style="color:powderblue" %) 506 506 ---- 507 507 508 -** Mobigate.disableAllDataCollector()**436 +**void disableAllDataCollector()** 509 509 Disable all data collectors 510 510 511 511 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 512 -{{code language=" javascript"}}513 - Mobigate.disableAllDataCollector()440 +{{code language="dart"}} 441 +mobigateInstance.disableAllDataCollector(); 514 514 {{/code}} 515 515 {{/showhide}} 516 516 ... ... @@ -517,16 +517,16 @@ 517 517 (% style="color:powderblue" %) 518 518 ---- 519 519 520 -** Mobigate.setEmail(email)**448 +**void setEmail(String email)** 521 521 Set user's email 522 522 523 523 (% class="table-bordered table-hover" style="border-color:powderblue" %) 524 524 |=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 525 -|email |String |user's email address |453 +|email |String |user's email address 526 526 527 527 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 528 -{{code language=" javascript"}}529 - Mobigate.setEmail('emailExample@spicymobile.pl')456 +{{code language="dart"}} 457 +mobigateInstance.setEmail('test@spicymobile.pl'); 530 530 {{/code}} 531 531 {{/showhide}} 532 532 ... ... @@ -533,21 +533,12 @@ 533 533 (% style="color:powderblue" %) 534 534 ---- 535 535 536 -** Mobigate.getEmail(onSuccess, onError)**537 -Get previously set user email 464 +**Future<String> getEmail()** 465 +Get previously set user email. Return email on success, error otherwise. 538 538 539 -(% class="table-bordered table-hover" style="border-color:powderblue" %) 540 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 541 -|onSuccess |Function |returns callback object 542 -|onError |Function |returns callback object 543 - 544 544 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 545 -{{code language="javascript"}} 546 -Mobigate.getEmail((success) => { 547 - console.log("user email: " + success) 548 - }, (error) => { 549 - console.log(error) 550 - }) 468 +{{code language="dart"}} 469 +final String email = await mobigateInstance.getEmail(); 551 551 {{/code}} 552 552 {{/showhide}} 553 553 ... ... @@ -554,7 +554,7 @@ 554 554 (% style="color:powderblue" %) 555 555 ---- 556 556 557 -** Mobigate.setFbToken(token)**476 +**void setFbToken(String token)** 558 558 Set fb token for social network collector 559 559 560 560 (% class="table-bordered table-hover" style="border-color:powderblue" %) ... ... @@ -562,49 +562,20 @@ 562 562 |token |string |facebook token 563 563 564 564 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 565 -{{code language=" javascript"}}566 - Mobigate.setFbToken('9dsf87ds98978das98d7893u12rj808d0j09012jd012')484 +{{code language="dart"}} 485 +mobigateInstance.setFbToken('dsf87esy789fys9dfu08sds54s6547c8s8doc4'); 567 567 {{/code}} 568 568 {{/showhide}} 569 569 570 -((( 571 -(% class="showhidebutton" %) 572 -((( 573 -{{html clean="false"}} 574 -<a href="javascript:void(0)" id="showhidebuttontext3" data-show-duration="0" data-show-effect="toggle" data-show-message="Example" data-hide-message="Example">Example</a> 575 -{{/html}} 576 -))) 577 - 578 -(% class="showhidecontent" id="showhidecontent3" style="display: none;" %) 579 -((( 580 -((( 581 -{{code language="javascript"}} 582 -Mobigate.setFbToken('9dsf87ds98978das98d7893u12rj808d0j09012jd012') 583 -{{/code}} 584 -))) 585 -))) 586 -))) 587 - 588 - 589 - 590 590 (% style="color:powderblue" %) 591 591 ---- 592 592 593 -** Mobigate.getSDKInfo(onSuccess, onError)**594 -Getting information about the library 492 +**Future<String> getSDKInfo()** 493 +Getting information about the library. Return on success sdk info string, error otherwise. 595 595 596 -(% class="table-bordered table-hover" style="border-color:powderblue" %) 597 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 598 -|onSuccess |Function |returns callback object 599 -|onError |Function |returns callback object 600 - 601 601 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 602 -{{code language="javascript"}} 603 -Mobigate.getSDKInfo((success) => { 604 - console.log("sdk info: " + success) 605 - }, (error) => { 606 - console.log(error) 607 - }) 496 +{{code language="dart"}} 497 +final String sdkInfo = await mobigateInstance.getSDKInfo(); 608 608 {{/code}} 609 609 {{/showhide}} 610 610 ... ... @@ -611,21 +611,12 @@ 611 611 (% style="color:powderblue" %) 612 612 ---- 613 613 614 -** Mobigate.getSDKUniqueIdentifier(onSuccess, onError)**615 -Return unique SDK identificator 504 +**Future<String> getSDKUniqueIdentifier()** 505 +Return unique SDK identificator. Return on success sdk unique identifier, error otherwise. 616 616 617 -(% class="table-bordered table-hover" style="border-color:powderblue" %) 618 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 619 -|onSuccess |Function |returns callback object 620 -|onError |Function |returns callback object 621 - 622 622 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 623 -{{code language="javascript"}} 624 -Mobigate.getSDKUniqueIdentifier((success) => { 625 - console.log("UUID: " + success) 626 - }, (error) => { 627 - console.log(error) 628 - }) 508 +{{code language="dart"}} 509 +final String sdkUniqueIdentifier = await mobigateInstance.getSDKUniqueIdentifier(); 629 629 {{/code}} 630 630 {{/showhide}} 631 631 ... ... @@ -632,22 +632,12 @@ 632 632 (% style="color:powderblue" %) 633 633 ---- 634 634 635 -** Mobigate.getIDsProfiles(onSuccess, onError)**516 +**Future<List<int>> getIDsProfiles()** 636 636 Method returns IDs profiles. List of IDs profiles in the application memory is updated (synchronized with the server) at specified intervals. To enable functionality, use the 'enableIDsProfiles (boolean enable)' method. Returns the identifiers of IDs profiles (ex. 5,9,20), returns '0' if list of user IDs profiles is empty, returns 'null' if the system has not yet communicated 637 637 638 - 639 -(% class="table-bordered table-hover" style="border-color:powderblue" %) 640 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 641 -|onSuccess |Function |returns callback object 642 -|onError |Function |returns callback object 643 - 644 644 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 645 -{{code language="javascript"}} 646 -Mobigate.getIDsProfiles((success) => { 647 - console.log("Profiles: " + success) 648 - }, (error) => { 649 - console.log(error) 650 - }) 520 +{{code language="dart"}} 521 +final List<int> idsProfiles = await mobigateInstance.getIDsProfiles(); 651 651 {{/code}} 652 652 {{/showhide}} 653 653 ... ... @@ -654,21 +654,12 @@ 654 654 (% style="color:powderblue" %) 655 655 ---- 656 656 657 -**M obigate.getAdOceanTargeting(onSuccess, onError)**528 +**Future<Map<String, int>> getAdOceanTargeting()** 658 658 Getting numerical variables, that can be used for ads targeting. Method must be called from separate thread. Return 3 different identifiers of a user, encoded into a map of AdOcean numerical variables 659 659 660 -(% class="table-bordered table-hover" style="border-color:powderblue" %) 661 -|=(% style="background-color:powderblue" %)Name|=(% style="background-color:powderblue" %)Type|=(% style="background-color:powderblue" %)Description 662 -|onSuccess |Function |returns callback object 663 -|onError |Function |returns callback object 664 - 665 665 {{showhide id="3" showmessage="Example" hidemessage="Example"}} 666 -{{code language="javascript"}} 667 -Mobigate.getAdOceanTargeting((success) => { 668 - console.log("Adocean targeting: " + success) 669 - }, (error) => { 670 - console.log(error) 671 - }) 532 +{{code language="dart"}} 533 +final Map<String,int> adOceanTargeting = await mobigateInstance.getAdOceanTargeting(); 672 672 {{/code}} 673 673 {{/showhide}} 674 674