Skip to content

Commit

Permalink
Merge pull request #328 from grantkemp/gkemp/add_impression_snippets_…
Browse files Browse the repository at this point in the history
…javakotlin-324

Add impression snippets for java and kotlin 324
  • Loading branch information
marinacoelho authored Mar 25, 2022
2 parents f8c838d + c6bce39 commit 7268f81
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 5 deletions.
11 changes: 10 additions & 1 deletion analytics/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,22 @@ android {
}
}
}
repositories {
maven {
// Ironsource library used for ad_impression snippets
url "https://android-sdk.is.com/"
}
}

dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.3.1'

implementation "com.google.firebase:firebase-analytics:19.0.0"
implementation "com.google.firebase:firebase-analytics-ktx:19.0.0"
// Ironsource and AppLovin libraries used for ad_impression snippets
implementation 'com.applovin:applovin-sdk:+'
implementation 'com.ironsource.sdk:mediationsdk:7.2.1.1'

}

apply plugin: 'com.google.gms.google-services'
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,18 @@
import android.os.Parcelable;

import androidx.appcompat.app.AppCompatActivity;

import com.google.firebase.analytics.FirebaseAnalytics;

public class MainActivity extends AppCompatActivity {
// importing libraries to support 3rd party ad_impression snippets
import com.applovin.mediation.MaxAd;
import com.applovin.mediation.MaxAdRevenueListener;
import com.ironsource.mediationsdk.impressionData.ImpressionData;
import com.ironsource.mediationsdk.impressionData.ImpressionDataListener;


public class MainActivity extends AppCompatActivity
// importing libraries to support 3rd party ad_impression snippets
implements MaxAdRevenueListener, ImpressionDataListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -221,4 +229,42 @@ public void enhancedEcommerce() {
analytics.logEvent(FirebaseAnalytics.Event.SELECT_PROMOTION, promoParams);
// [END apply_promo]
}

// [START ad_impression_applovin]
@Override
public void onAdRevenuePaid(MaxAd impressionData) {

double revenue = impressionData.getRevenue(); // In USD

FirebaseAnalytics analytics = FirebaseAnalytics.getInstance(this);
Bundle params = new Bundle();
params.putString(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin");
params.putString(FirebaseAnalytics.Param.AD_SOURCE, impressionData.getNetworkName());
params.putString(FirebaseAnalytics.Param.AD_FORMAT, impressionData.getFormat().getDisplayName());
params.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.getAdUnitId());
params.putDouble(FirebaseAnalytics.Param.VALUE, revenue);
params.putString(FirebaseAnalytics.Param.CURRENCY, "USD"); // All Applovin revenue is sent in USD
analytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, params);
}
// [END ad_impression_applovin]

// [START ad_impression_ironsource]
@Override
public void onImpressionSuccess(ImpressionData impressionData) {
// The onImpressionSuccess will be reported when the rewarded video and interstitial ad is opened.
// For banners, the impression is reported on load success. Log.d(TAG, "onImpressionSuccess" + impressionData);
FirebaseAnalytics analytics = FirebaseAnalytics.getInstance(this);
if (impressionData != null) {
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.AD_PLATFORM, "ironSource");
bundle.putString(FirebaseAnalytics.Param.AD_SOURCE, impressionData.getAdNetwork());
bundle.putString(FirebaseAnalytics.Param.AD_FORMAT, impressionData.getAdUnit());
bundle.putString(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.getAdUnit());
bundle.putString(FirebaseAnalytics.Param.CURRENCY, "USD");
bundle.putDouble(FirebaseAnalytics.Param.VALUE, impressionData.getRevenue());
analytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION, bundle);
}
}

// [END ad_impression_ironsource]
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,16 @@ import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.example.analytics.R
import com.google.firebase.ktx.Firebase
// importing libraries to support 3rd party ad_impression snippets
import com.ironsource.mediationsdk.impressionData.ImpressionDataListener
import com.ironsource.mediationsdk.impressionData.ImpressionData
import com.applovin.mediation.MaxAd
import com.applovin.mediation.MaxAdRevenueListener

class MainActivity : AppCompatActivity() {

class MainActivity : AppCompatActivity(),
// importing libraries to support 3rd party ad_impression snippets
MaxAdRevenueListener, ImpressionDataListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Expand Down Expand Up @@ -193,4 +200,37 @@ class MainActivity : AppCompatActivity() {
analytics.logEvent(FirebaseAnalytics.Event.SELECT_PROMOTION, promoParams)
// [END apply_promo]
}
}
// [START ad_impression_applovin]
override fun onAdRevenuePaid(impressionData: MaxAd?) {
impressionData?.let {
val analytics = Firebase.analytics
analytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION) {
param(FirebaseAnalytics.Param.AD_PLATFORM, "appLovin")
param(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.adUnitId)
param(FirebaseAnalytics.Param.AD_FORMAT, impressionData.format.displayName)
param(FirebaseAnalytics.Param.AD_SOURCE, impressionData.networkName)
param(FirebaseAnalytics.Param.VALUE, impressionData.revenue)
param(FirebaseAnalytics.Param.CURRENCY, "USD") // All Applovin revenue is sent in USD
}
}
}
// [END ad_impression_applovin]

// [START ad_impression_ironsource]
override fun onImpressionSuccess(impressionData: ImpressionData) {
// The onImpressionSuccess will be reported when the rewarded video and interstitial ad is
// opened.
// For banners, the impression is reported on load success. Log.d(TAG, "onImpressionSuccess" +
// impressionData);
val analytics = Firebase.analytics
analytics.logEvent(FirebaseAnalytics.Event.AD_IMPRESSION) {
param(FirebaseAnalytics.Param.AD_PLATFORM, "ironSource")
param(FirebaseAnalytics.Param.AD_SOURCE, impressionData.adNetwork)
param(FirebaseAnalytics.Param.AD_FORMAT, impressionData.adUnit)
param(FirebaseAnalytics.Param.AD_UNIT_NAME, impressionData.adUnit)
param(FirebaseAnalytics.Param.CURRENCY, "USD")
param(FirebaseAnalytics.Param.VALUE, impressionData.revenue)
}
}
// [END ad_impression_ironsource]
}
9 changes: 9 additions & 0 deletions analytics/settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1,10 @@
include ':app'

// Ironsource library used for ad_impression snippets
dependencyResolutionManagement {
repositories {
maven {
url 'https://android-sdk.is.com/'
}
}
}

0 comments on commit 7268f81

Please sign in to comment.