Skip to content

Commit

Permalink
Merge pull request #138 from AppsFlyerSDK/releases/6.x.x/6.15.x/6.15.…
Browse files Browse the repository at this point in the history
…0-rc1

Merge releases/6.x.x/6.15.x/6.15.0-rc1 into main
  • Loading branch information
Dani-Koza-AF authored Aug 15, 2024
2 parents 248d9bb + ae5145c commit 4933136
Show file tree
Hide file tree
Showing 1,518 changed files with 355 additions and 138,960 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build-apps-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16.x
node-version: 18.x


- name: Install plugin dependencies
Expand All @@ -39,7 +39,7 @@ jobs:
gradle wrapper
echo "ls: $(ls)"
chmod +x ./gradlew
./gradlew wrapper --gradle-version 8.0.2
./gradlew wrapper --gradle-version 8.2
./gradlew clean assembleRelease
# Build-Capacitor-ios:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-to-QA.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16.x
node-version: 18.x
- name: Install dependency
run: |
npm i rimraf
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-Production-workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16.x
node-version: 18.x
- name: Install dependency
run: |
npm i rimraf
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 6.15.0
Release date: *2024-08-15*

- Capacitor >> Update Plugin to v6.15.0
- Capacitor >> Update to Capacitor v6

## 6.14.3
Release date: *2024-05-01*

Expand Down
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,17 @@

### <a id="plugin-build-for"> This plugin is built for

- Android AppsFlyer SDK **6.14.0**
- iOS AppsFlyer SDK **6.14.3**
- Android AppsFlyer SDK **6.15.0**
- iOS AppsFlyer SDK **6.15.0**

## <a id="breaking-changes-6-15-0"> ❗❗ Breaking changes when updating to v6.15.0 ❗❗
Starting from v6.15.0, this plugin works only with Capacitor 6. </br>
If you are still interested in using Capacitor 5, please follow the instructions [here](/docs/Installation.md#cap5) to install the latest version that supports Capacitor 5.

## <a id="breaking-changes-6-12-1"> ❗❗ Breaking changes when updating to v6.12.1 ❗❗
Starting from v6.12.1, this plugin works only with Capacitor 5. </br>
If you are still interested in using Capacitor 4, please follow the instructions [here](/docs/Installation.md#cap4) to install the latest version that supports Capacitor 4.



## <a id="breaking-changes"> ❗❗ Breaking changes when updating to v6.9.2 ❗❗
Starting from v6.9.2, this plugin works only with Capacitor 4. </br>
If you are still interested in using Capacitor 3, please follow the instructions [here](/docs/Installation.md#cap3) to install the latest version that supports Capacitor 3.
Expand Down
8 changes: 4 additions & 4 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,13 @@ ext {
}

buildscript {
ext.kotlin_version = project.hasProperty("kotlin_version") ? rootProject.ext.kotlin_version : '1.8.20'
ext.kotlin_version = project.hasProperty("kotlin_version") ? rootProject.ext.kotlin_version : '1.9.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.0'
classpath 'com.android.tools.build:gradle:8.2.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'org.codehaus.groovy:groovy-json:3.0.9'
}
Expand All @@ -116,10 +116,10 @@ apply plugin: 'kotlin-android'

android {
namespace "capacitor.plugin.appsflyer.sdk"
compileSdkVersion project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 33
compileSdk project.hasProperty('compileSdkVersion') ? rootProject.ext.compileSdkVersion : 34
defaultConfig {
minSdkVersion project.hasProperty('minSdkVersion') ? rootProject.ext.minSdkVersion : 22
targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 33
targetSdkVersion project.hasProperty('targetSdkVersion') ? rootProject.ext.targetSdkVersion : 34
versionCode Integer.parseInt(plugin_build_version)
versionName "$plugin_version"
buildConfigField "int", "VERSION_CODE", plugin_build_version
Expand Down
2 changes: 1 addition & 1 deletion android/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,8 @@ const val AF_MANUAL_START = "manualStart"
const val AF_IS_SUBJECTED_TO_GDPR = "isUserSubjectToGDPR"
const val AF_CONSENT_FOR_DATA_USAGE = "hasConsentForDataUsage"
const val AF_CONSENT_FOR_ADS_PERSONALIZATION = "hasConsentForAdsPersonalization"
const val AF_MONETIZATION_NETWORK = "monetizationNetwork"
const val AF_CURRENCY_ISO4217_CODE = "currencyIso4217Code"
const val AF_REVENUE = "revenue"
const val AF_MEDIATION_NETWORK = "mediationNetwork"

Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,36 @@ class AppsFlyerPlugin : Plugin() {
call.resolve()
}

@PluginMethod(returnType = PluginMethod.RETURN_NONE)
fun logAdRevenue(call: PluginCall) {
val adRevenueDataJson = call.data ?: return call.reject("adRevenueData is missing, the data mandatory to use this API.")

// Parse the fields from the adRevenueDataJson object
val monetizationNetwork = adRevenueDataJson.getString(AF_MONETIZATION_NETWORK) ?: return call.reject("monetizationNetwork is missing")
val currencyIso4217Code = adRevenueDataJson.getString(AF_CURRENCY_ISO4217_CODE) ?: return call.reject("currencyIso4217Code is missing")
val revenue = adRevenueDataJson.getDouble(AF_REVENUE)
if (revenue.isNaN()) {
return call.reject("revenue is missing or not a number")
}
val additionalParams = AFHelpers.jsonToMap(adRevenueDataJson.getJSObject(AF_ADDITIONAL_PARAMETERS)) // can be nullable

// Convert the mediationNetwork string to the MediationNetwork enum
val mediationNetworkValue = adRevenueDataJson.getString(AF_MEDIATION_NETWORK) ?: return call.reject("mediationNetwork is missing")
val mediationNetwork = MediationNetwork.entries.find { it.value == mediationNetworkValue } ?: return call.reject("Invalid mediation network")

// Create the AFAdRevenueData object
val adRevenueData = AFAdRevenueData(
monetizationNetwork = monetizationNetwork,
mediationNetwork = mediationNetwork,
currencyIso4217Code = currencyIso4217Code,
revenue = revenue
)

AppsFlyerLib.getInstance().logAdRevenue(adRevenueData, additionalParams)

call.resolve()
}

private fun getDeepLinkListener(): DeepLinkListener {
return DeepLinkListener {
if (udl == true) {
Expand Down
64 changes: 64 additions & 0 deletions docs/API.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ The list of available methods for this plugin is described below.
* [`startSDK`](#startSDK) - Since 6.13.0
* [`enableTCFDataCollection`](#enableTCFDataCollection) - Since 6.13.0
* [`setConsentData`](#setConsentData) - Since 6.13.0
* [`logAdRevenue`](#logAdRevenue) - Since 6.15.0



Expand Down Expand Up @@ -980,6 +981,40 @@ If *GDPR applies* apply to the user perform the following:
```
*Please take a look how to properly setConsentData Manualy in [Set Consent For DMA Compliance](/docs/DMA.md#)*

--------------------

### logAdRevenue
```typescript
logAdRevenue(data: AFAdRevenueData): Promise<void>
```

Use this method to log your ad revenue.</br>
By attributing ad revenue, app owners gain the complete view of user LTV and campaign ROI.
Ad revenue is generated by displaying ads on rewarded videos, offer walls, interstitials, and banners in an app.

| Param | Type |
| ------------- | ------------------------------------------------------- |
| **`data`** | <code><a href="#AFAdRevenueData">AFAdRevenueData</a></code> |

**Returns:** <code>Promise</code>

**Usage Example:**
```typescript
const myAdditionalParams = {
spong: 'bob',
doctor: 'who'
};

const data: AFAdRevenueData = {
monetizationNetwork: "MoneyMoneyMoney",
mediationNetwork: MediationNetwork.IRONSOURCE,
currencyIso4217Code: "USD",
revenue: 200.0,
additionalParameters: myAdditionalParams
};

AppsFlyer.logAdRevenue(data);
```

## Interfaces

Expand Down Expand Up @@ -1286,6 +1321,16 @@ If *GDPR applies* apply to the user perform the following:
| **`hasConsentForDataUsage`** | <code>boolean</code>|
| **`hasConsentForAdsPersonalization`** | <code>boolean</code>|

#### AFAdRevenueData

| Prop | Type |
| ----------------- | ----------------------------------------------- |
| **`monetizationNetwork`** | <code>string</code>|
| **`mediationNetwork`** | <code><a href="#MediationNetwork">MediationNetwork</a></code>|
| **`currencyIso4217Code`** | <code>string</code>|
| **`revenue`** | <code>number</code>|
| **`additionalParameters?`** | <code><a href="#stringmap">StringMap</a></code>|

## Enums


Expand All @@ -1300,5 +1345,24 @@ If *GDPR applies* apply to the user perform the following:
| **`CONVERSION_CALLBACK`** | <code>'conversion_callback'</code> |
| **`OAOA_CALLBACK`** | <code>'oaoa_callback'</code> |
| **`UDL_CALLBACK`** | <code>'udl_callback'</code> |

#### MediationNetwork

| Members | Value |
| ----------------------------- | -------------------------------------- |
| **`IRONSOURCE`** | <code>'ironsource'</code> |
| **`APPLOVIN_MAX`** | <code>'applovinmax'</code> |
| **`GOOGLE_ADMOB`** | <code>'googleadmob'</code> |
| **`FYBER`** | <code>'fyber'</code> |
| **`APPODEAL`** | <code>'appodeal'</code> |
| **`ADMOST`** | <code>'Admost'</code> |
| **`TOPON`** | <code>'Topon'</code> |
| **`TRADPLUS`** | <code>'Tradplus'</code> |
| **`YANDEX`** | <code>'Yandex'</code> |
| **`CHARTBOOST`** | <code>'chartboost'</code> |
| **`UNITY`** | <code>'Unity'</code> |
| **`TOPON_PTE`** | <code>'toponpte'</code> |
| **`CUSTOM_MEDIATION`** | <code>'customMediation'</code> |
| **`DIRECT_MONETIZATION_NETWORK`** | <code>'directMonetizationNetwork'</code> |

</docgen-api>
2 changes: 1 addition & 1 deletion docs/Guides.md
Original file line number Diff line number Diff line change
Expand Up @@ -385,4 +385,4 @@ You only need to add the referrer dependency, the SDK takes care of the rest:
[Huawei Install Referrer](https://dev.appsflyer.com/hc/docs/install-android-sdk#huawei-install-referrer)<br>
[Xiaomi GetApps store referrer](https://dev.appsflyer.com/hc/docs/install-android-sdk#xiaomi-getapps-store-referrer)<br>

**Note:** Satring plugin version 6.14.3, Huawei referrer is collected in a different way than it used to be, please follow the new instructions provided [here.](https://dev.appsflyer.com/hc/docs/install-android-sdk#huawei-install-referrer)
**Note:** Starting plugin version 6.14.3, Huawei referrer is collected in a different way than it used to be, please follow the new instructions provided [here.](https://dev.appsflyer.com/hc/docs/install-android-sdk#huawei-install-referrer)
13 changes: 13 additions & 0 deletions docs/Installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ The plugin available via npm. To install the plugin, please run the following co
npm install appsflyer-capacitor-plugin
npx cap sync
```

## <a id="cap5"> Capacitor 5 - Latest Version
The latest version that supports Capacitor 5 uses the following SDK versions:
- Android AppsFlyer SDK **6.14.0**
- iOS AppsFlyer SDK **6.14.3**

The plugin available via npm under the tag `latest-5`. To install the plugin, please run the following commands in your project root directory.

```bash
npm install appsflyer-capacitor-plugin@latest-5
npx cap sync
```

## <a id="cap4"> Capacitor 4 - Latest Version
The latest version that supports Capacitor 4 uses the following SDK versions:
- Android AppsFlyer SDK **6.10.3️**
Expand Down
Loading

0 comments on commit 4933136

Please sign in to comment.