Skip to content

Commit bee8c6d

Browse files
committed
Update 4.2.1
1 parent 4a81f8e commit bee8c6d

5 files changed

+90
-37
lines changed

changelog.md

+17
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@
55
#### ** SDK **
66

77

8+
### Version 4.2.1 *(12-04-2021)*
9+
10+
**New Features**
11+
* _Lotame Module_: Added new module that incorporates the Lotame SDK used for tracking IAP and advertisement analytics.
12+
13+
**Bug fixes**
14+
* Android/iOS: Fixed several issues regarding advertising.
15+
* Unity Editor: Fixed displaying issue with dummy banner placements.
16+
17+
**Other**
18+
* Android: Added support for Billing Library v3. Both old AIDL implementation as well as the new Billing Library will be supported by the SDK.
19+
* Android/iOS/Unity/Cordova: Added support for first time offline usage for the Localization feature. When building the game, make sure that the 'defaultLocalizationData.json' file is present in your assets in order for this to work. The local file will always contain the default language.
20+
* Android/iOS/Unity: Added support of custom callbacks per PlayerData operations for Wallet and Inventory (Add, Subtract, Open Gacha, Buy Bundle). For more information check the the Wallet and Inventory documentation.
21+
* Android/iOS: Updated AdMob to latest version and all ad mediation networks.
22+
* Android/iOS: Updated to the latest AppsFlyer SDK.
23+
* Android: Migrated the SDK from Bintray to MavenCentral.
24+
825
### Version 4.1.0 *(28-01-2021)*
926

1027
**New Features**

gettingStarted.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ Current versions of the modules used in the SDK:
2222

2323
| Module | Android Version | iOS Version |
2424
|:----------------------------------|:------------------------|:-------------------|
25-
| AppsFlyer | 6.1.1 | 6.1.3 |
26-
| AdMob | 19.5.0 | 7.69.0 |
27-
| Firebase | 18.0.0 | 7.3.0 |
25+
| AppsFlyer | 6.2.3 | 6.2.4 |
26+
| AdMob | 19.8.0 | 8.3.0 |
27+
| Firebase | 18.0.2 | 7.9.0 |
28+
| Lotame | 2.3.0.4 | 4.2.0 |
2829

2930

knowledgeBase.md

+27
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,16 @@
7575
> The reason why you would get duplicate library (aar files) erros could be that you have both these libraries imported as files in the "Assets/Plugins/Android" folder as well as imported through the "mainTemplate.gradle" file. The first thing you can do to spot duplicates is to use the "Verify Android Setup" option from Gamedock. This can be found in the Gamedock SDK->Configuration->Android->Verify Android Setup. If no errors appear in the Editor Console, investigate manually the "Assets/Plugins/Android" folder an make sure you have as little ".aar" files as possible and instead import those dependencies through the "mainTemplate.gradle" file. If you are using the Play Resolver also make sure to disable automatic importing of ".aar" files when resolving dependencies.
7676
7777
</details>
78+
<br>
79+
80+
**For Android, when building the game/app I get a gradle error that contains this message: *AAPT: error: unexpected element <queries> found in <manifest>*.**
81+
82+
<details>
83+
<summary>Answer</summary>
7884

85+
> This gradle build error is caused by the newer versions of AdMob. In order to fix it make sure you use one of the following Gradle built tools version: 3.3.3, 3.4.3, 3.5.4, 3.6.4, 4.0.1 or newer. Make sure these version are configured in your mainTemplate.gradle file and in the baseProjectTemplate.gradle file (if the Unity version supports it). More info on the versions that fix the issue can be found here: [https://stackoverflow.com/a/62969918](https://stackoverflow.com/a/62969918).
86+
87+
</details>
7988

8089
#### ** AIR **
8190

@@ -87,7 +96,16 @@
8796
> There are several common mistakes that might be causing this issue. The first is that as of 3.9.x or above, it is required that you do any ad related requests/operations only after the callback OnAdsInitialized has been fired (you need to listen to this callback). Another mistake could be that the advertisement configuration was not yet added for your game in the Gamedock Console. In this case contact your Game Producer/Gamedock Representative.
8897
8998
</details>
99+
<br>
100+
101+
**For Android, when building the game/app I get a gradle error that contains this message: *AAPT: error: unexpected element <queries> found in <manifest>*.**
90102

103+
<details>
104+
<summary>Answer</summary>
105+
106+
> This gradle build error is caused by the newer versions of AdMob. In order to fix it make sure you use one of the following Gradle built tools version: 3.3.3, 3.4.3, 3.5.4, 3.6.4, 4.0.1 or newer. More info on the versions that fix the issue can be found here: [https://stackoverflow.com/a/62969918](https://stackoverflow.com/a/62969918).
107+
108+
</details>
91109

92110
#### ** Cordova **
93111

@@ -119,6 +137,15 @@
119137
> In general missing text in the Age Gate or Privacy Policy(GDPR) windows is related to either missing the "defaultGameConfig.json" in the build or not having setup properly the SDK Config in the Gamedock Console.
120138
121139
</details>
140+
<br>
141+
142+
**For Android, when building the game/app I get a gradle error that contains this message: *AAPT: error: unexpected element <queries> found in <manifest>*.**
122143

144+
<details>
145+
<summary>Answer</summary>
146+
147+
> This gradle build error is caused by the newer versions of AdMob. In order to fix it make sure you use one of the following Gradle built tools version: 3.3.3, 3.4.3, 3.5.4, 3.6.4, 4.0.1 or newer. More info on the versions that fix the issue can be found here: [https://stackoverflow.com/a/62969918](https://stackoverflow.com/a/62969918).
148+
149+
</details>
123150

124151
<!-- tabs:end -->

shopWalletInventoryControl.md

+17-9
Original file line numberDiff line numberDiff line change
@@ -207,27 +207,34 @@ Inventory Inventory = Gamedock.Instance.PlayerData.Inventory;
207207
Helper methods for doing operations with the Wallet and the Inventory.
208208
~~~csharp
209209
///Wallet Operations
210+
211+
//You can create a custom callback if you don't want to use the global one for Player Data operations
212+
UserDataCallbackAction UserDataCallbackAction = new UserDataCallbackAction(
213+
playerDataUpdate => {}, //Fired once the operation was successful. The "playerDataUpdate" object contains all the new information
214+
userDataError => {} // Fired if an error occurred during the operation
215+
);
216+
210217
//Adding Currency to the User's Wallet
211-
Gamedock.Instance.PlayerData.Wallet.Add(Currency ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null);
218+
Gamedock.Instance.PlayerData.Wallet.Add(Currency ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null, UserDataCallbackAction = null);
212219

213220
//Subtracting Currency to the User's Wallet
214-
Gamedock.Instance.PlayerData.Wallet.Subtract(Currency ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null);
221+
Gamedock.Instance.PlayerData.Wallet.Subtract(Currency ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null, UserDataCallbackAction = null);
215222

216223
//Method to set a currency limit
217224
Gamedock.Instance.SetCurrencyLimit(int currencyId, int limit);
218225

219226
///Inventory Operations
220227
//Adding Item to the User's Inventory
221-
Gamedock.Instance.PlayerData.Inventory.Add(Item ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null);
228+
Gamedock.Instance.PlayerData.Inventory.Add(Item ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null, UserDataCallbackAction = null);
222229

223230
//Subtracting Item to the User's Inventory
224-
Gamedock.Instance.PlayerData.Inventory.Subtract(Item ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null);
231+
Gamedock.Instance.PlayerData.Inventory.Subtract(Item ID, Amount, Reason, Location, ReasonDetails = null, TransactionId = null, UserDataCallbackAction = null);
225232

226233
//Consuming a bundle
227-
Gamedock.Instance.PlayerData.BuyBundle(Bundle ID, Reason, Location, ReasonDetails = null, TransactionId = null, List<PerkItem> perkItems = null);
234+
Gamedock.Instance.PlayerData.BuyBundle(Bundle ID, Reason, Location, ReasonDetails = null, TransactionId = null, List<PerkItem> perkItems = null, UserDataCallbackAction = null);
228235

229236
//Opening a Gacha Item
230-
Gamedock.Instance.PlayerData.OpenGacha(Gacha ID, Reason, Location, ReasonDetail = null, List<PerkItem> perkItems = null);
237+
Gamedock.Instance.PlayerData.OpenGacha(Gacha ID, Reason, Location, ReasonDetail = null, List<PerkItem> perkItems = null, UserDataCallbackAction = null);
231238

232239
//Method to set an item limit
233240
Gamedock.Instance.SetItemLimit(int itemId, int limit);
@@ -238,14 +245,14 @@ UniquePlayerItem uniqueItem = Gamedock.Instance.PlayerData.Inventory.CreateUniqu
238245
UniquePlayerItem uniqueItem = Gamedock.Instance.PlayerData.Inventory.CreateUniqueItem(itemId, uniqueId);
239246

240247
//Add Unique Item to the inventory
241-
Gamedock.Instance.PlayerData.Inventory.AddUniqueItemToInventory(uniqueItem, reason, reasonDetails, location, transactionId);
248+
Gamedock.Instance.PlayerData.Inventory.AddUniqueItemToInventory(uniqueItem, reason, reasonDetails, location, transactionId, userDataCallbackAction);
242249

243250
//Update Unique Item with new properties
244251
uniqueItem.uniqueProperties.Add("test", "test");
245-
Gamedock.Instance.PlayerData.Inventory.UpdateUniqueItemFromInventory(uniqueItem, reason, reasonDetails, location, transactionId);
252+
Gamedock.Instance.PlayerData.Inventory.UpdateUniqueItemFromInventory(uniqueItem, reason, reasonDetails, location, transactionId, userDataCallbackAction);
246253

247254
//Remove Unique Item from the Inventory
248-
Gamedock.Instance.PlayerData.Inventory.RemoveUniqueItemFromInventory(uniqueItem, reason, reasonDetails, location, transactionId);
255+
Gamedock.Instance.PlayerData.Inventory.RemoveUniqueItemFromInventory(uniqueItem, reason, reasonDetails, location, transactionId, userDataCallbackAction);
249256
~~~
250257

251258
Helper methods for retrieving specific entries in the Game Data lists (ID represents the id generated in the Console, NAME represents the name given by you to the specific entity when it was created).
@@ -289,6 +296,7 @@ By default each operation done on the Wallet or Inventory sends their own events
289296
Gamedock.Instance.PlayerData.TransactionBuilder
290297
.AddCurrency(currencyId, amount)
291298
.SubtractItem(itemId, amount)
299+
.AddCallback(userDataCallbackAction) //For custom callbacks, otherwise update will be fired on the delegate
292300
.Submit(reason, reasonDetails, location, transactionId);
293301

294302
//Supported operations

smartAdvertisements.md

+25-25
Original file line numberDiff line numberDiff line change
@@ -18,39 +18,39 @@ The SDK currently has the following Ad Networks implemented:
1818

1919
| Ad Network | Version | Type | Banner | Interstitial | Rewarded Video |
2020
|:----------------------------------|:-----------------------------------------------|:-------------------|:----------|:---------------|:-----------------|
21-
| AdMob | 19.5.0 | Mediator ||||
22-
| AdManager | 19.5.0 | Mediator ||||
23-
| Gamedock Ads | 4.0.0 | Mediation ||||
24-
| AdColony | 4.3.0 | Mediation ||||
25-
| Unity Ads | 3.5.1 | Mediation ||||
26-
| Facebook Audience Network | 6.2.0 | Mediation ||||
27-
| Vungle | 6.8.1 | Mediation ||||
28-
| Applovin | 9.14.5 | Mediation ||||
29-
| InMobi | 9.1.1 | Mediation ||||
21+
| AdMob | 19.8.0 | Mediator ||||
22+
| AdManager | 19.8.0 | Mediator ||||
23+
| Gamedock Ads | 4.2.0 | Mediation ||||
24+
| AdColony | 4.4.1 | Mediation ||||
25+
| Unity Ads | 3.6.2 | Mediation ||||
26+
| Facebook Audience Network | 6.3.0 | Mediation ||||
27+
| Vungle | 6.9.1 | Mediation ||||
28+
| Applovin | 9.15.2 | Mediation ||||
29+
| InMobi | 9.1.6 | Mediation ||||
3030
| Tapjoy | 12.7.1 | Mediation | x |||
31-
| Ironsource | 7.0.3 | Mediation | x |||
32-
| MyTarget | 5.11.3 | Mediation ||||
33-
| Fyber | 7.7.3 | Mediation ||||
31+
| Ironsource | 7.1.0.2 | Mediation | x |||
32+
| MyTarget | 5.11.12 | Mediation ||||
33+
| Fyber | 7.8.1 | Mediation ||||
3434
| Ogury | 4.9.0 | Mediation ||||
3535

3636

3737
#### iOS
3838

3939
| Ad Network | Version | Type | Banner | Interstitial | Rewarded Video | SKAdNetworks |
4040
|:----------------------------------|:-----------------------------------------------|:-------------------|:----------|:---------------|:-----------------|:---------------|
41-
| AdMob | 7.66.0 | Mediator |||||
42-
| AdManager | 7.66.0 | Mediator |||||
43-
| Gamedock Ads | 4.0.0 | Mediation |||| x |
44-
| Unity Ads | 3.5.0 | Mediation |||| x |
45-
| Facebook Audience Network | 6.2.1 | Mediation |||| x |
46-
| Vungle | 6.8.0 | Mediation |||||
47-
| Applovin | 6.14.4 | Mediation |||| x |
48-
| InMobi | 9.1.0 | Mediation |||||
49-
| Tapjoy | 12.7.0 | Mediation | x ||||
50-
| Ironsource | 7.0.2 | Mediation | x ||||
51-
| MyTarget | 5.7.5 | Mediation |||| x |
52-
| Chartboost | 8.3.1 | Mediation |||||
53-
| Fyber | 7.7.1 | Mediation |||| x |
41+
| AdMob | 8.3.0 | Mediator |||||
42+
| AdManager | 8.3.0 | Mediator |||||
43+
| Gamedock Ads | 4.2.0 | Mediation |||| x |
44+
| Unity Ads | 3.6.2 | Mediation |||| x |
45+
| Facebook Audience Network | 6.3.1 | Mediation |||| x |
46+
| Vungle | 6.9.1 | Mediation |||||
47+
| Applovin | 10.0.1 | Mediation |||| x |
48+
| InMobi | 9.1.5 | Mediation |||||
49+
| Tapjoy | 12.8.0 | Mediation | x ||||
50+
| Ironsource | 7.1.4 | Mediation | x ||||
51+
| MyTarget | 5.10.1 | Mediation |||| x |
52+
| Chartboost | 8.4.1 | Mediation |||||
53+
| Fyber | 7.8.2 | Mediation |||| x |
5454
| Ogury | 1.3.1 | Mediation |||| x |
5555

5656
### Configuration in Console

0 commit comments

Comments
 (0)