Skip to content

Commit b9f8d3e

Browse files
committed
Conditional ads activity
Change-Id: Iec0f9f4c654350ae2764ee081cc3f0ebd170bcd2
1 parent 36e133a commit b9f8d3e

File tree

4 files changed

+139
-1
lines changed

4 files changed

+139
-1
lines changed

predictions/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
</intent-filter>
1717
</activity>
1818
<activity android:name=".kotlin.MainActivity" />
19+
<activity android:name=".ConditionalAdsActivity"></activity>
1920
</application>
2021

2122
</manifest>
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package com.google.firebase.example.predictions;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.NonNull;
5+
import android.support.v7.app.AppCompatActivity;
6+
import android.view.View;
7+
8+
import com.google.android.gms.ads.AdRequest;
9+
import com.google.android.gms.ads.AdView;
10+
import com.google.android.gms.tasks.OnCompleteListener;
11+
import com.google.android.gms.tasks.Task;
12+
import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
13+
14+
import java.util.HashMap;
15+
import java.util.Map;
16+
17+
public class ConditionalAdsActivity extends AppCompatActivity {
18+
19+
private static final long CACHE_EXPIRATION = 60 * 1000;
20+
21+
private FirebaseRemoteConfig mFirebaseRemoteConfig;
22+
23+
@Override
24+
protected void onCreate(Bundle savedInstanceState) {
25+
super.onCreate(savedInstanceState);
26+
}
27+
28+
public void initRemoteConfig() {
29+
// [START pred_conditional_ads_init]
30+
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
31+
32+
Map<String, Object> remoteConfigDefaults = new HashMap<>();
33+
remoteConfigDefaults.put("ads_enabled", "true");
34+
mFirebaseRemoteConfig.setDefaults(remoteConfigDefaults);
35+
// [END pred_conditional_ads_init]
36+
}
37+
38+
public void fetchRemoteConfig() {
39+
// [START pred_conditional_ads_fetch]
40+
mFirebaseRemoteConfig.fetch(CACHE_EXPIRATION)
41+
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
42+
@Override
43+
public void onComplete(@NonNull Task<Void> task) {
44+
if (task.isSuccessful()) {
45+
mFirebaseRemoteConfig.activateFetched();
46+
}
47+
48+
// Act on the retrieved parameters
49+
50+
// Show ads based on the ad policy retrieved with Remote Config
51+
executeAdsPolicy();
52+
53+
// ...
54+
}
55+
});
56+
// [END pred_conditional_ads_fetch]
57+
}
58+
59+
// [START pred_conditional_ads_policy]
60+
private void executeAdsPolicy() {
61+
boolean showAds = mFirebaseRemoteConfig.getBoolean("ads_enabled");
62+
AdView mAdView = findViewById(R.id.adView);
63+
64+
if (showAds) {
65+
AdRequest adRequest = new AdRequest.Builder().build();
66+
mAdView.loadAd(adRequest);
67+
mAdView.setVisibility(View.VISIBLE);
68+
} else {
69+
mAdView.setVisibility(View.GONE);
70+
}
71+
}
72+
// [END pred_conditional_ads_policy]
73+
}

predictions/app/src/main/java/com/google/firebase/example/predictions/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public void executeAdsPolicy() {
5858
FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
5959
String adPolicy = config.getString("ads_policy");
6060
boolean will_not_spend = config.getBoolean("will_not_spend");
61-
AdView mAdView = (AdView) findViewById(R.id.adView);
61+
AdView mAdView = findViewById(R.id.adView);
6262

6363
if (adPolicy.equals("ads_always") ||
6464
(adPolicy.equals("ads_nonspenders") && will_not_spend)) {
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.google.firebase.example.predictions.kotlin
2+
3+
import android.support.v7.app.AppCompatActivity
4+
import android.view.View
5+
import com.google.android.gms.ads.AdRequest
6+
import com.google.android.gms.ads.AdView
7+
import com.google.firebase.example.predictions.R
8+
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
9+
import java.util.HashMap
10+
11+
class ConditionalAdsActivity : AppCompatActivity() {
12+
13+
private lateinit var firebaseRemoteConfig: FirebaseRemoteConfig
14+
15+
fun initRemoteConfig() {
16+
// [START pred_conditional_ads_init]
17+
firebaseRemoteConfig = FirebaseRemoteConfig.getInstance()
18+
19+
val remoteConfigDefaults = HashMap<String, Any>()
20+
remoteConfigDefaults["ads_enabled"] = "true"
21+
firebaseRemoteConfig.setDefaults(remoteConfigDefaults)
22+
// [END pred_conditional_ads_init]
23+
}
24+
25+
fun fetchRemoteConfig() {
26+
// [START pred_conditional_ads_fetch]
27+
firebaseRemoteConfig.fetch(CACHE_EXPIRATION)
28+
.addOnCompleteListener(this) { task ->
29+
if (task.isSuccessful) {
30+
firebaseRemoteConfig.activateFetched()
31+
}
32+
33+
// Act on the retrieved parameters
34+
35+
// Show ads based on the ad policy retrieved with Remote Config
36+
executeAdsPolicy()
37+
38+
// ...
39+
}
40+
// [END pred_conditional_ads_fetch]
41+
}
42+
43+
// [START pred_conditional_ads_policy]
44+
private fun executeAdsPolicy() {
45+
val showAds = firebaseRemoteConfig.getBoolean("ads_enabled")
46+
val adView = findViewById<AdView>(R.id.adView)
47+
48+
if (showAds) {
49+
val adRequest = AdRequest.Builder().build()
50+
adView.loadAd(adRequest)
51+
adView.visibility = View.VISIBLE
52+
} else {
53+
adView.visibility = View.GONE
54+
}
55+
}
56+
// [END pred_conditional_ads_policy]
57+
58+
59+
companion object {
60+
61+
private val CACHE_EXPIRATION = 60 * 1000L
62+
63+
}
64+
}

0 commit comments

Comments
 (0)