-
Notifications
You must be signed in to change notification settings - Fork 82
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: introduce new multiformat API #688
- Loading branch information
1 parent
0c59f50
commit 1c140a0
Showing
14 changed files
with
561 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
74 changes: 74 additions & 0 deletions
74
PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/NativeParameters.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
package org.prebid.mobile; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.annotation.Nullable; | ||
|
||
import org.json.JSONObject; | ||
import org.prebid.mobile.configuration.NativeAdUnitConfiguration; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* For details of the configuration of native parameters, please check this documentation: | ||
* https://www.iab.com/wp-content/uploads/2018/03/OpenRTB-Native-Ads-Specification-Final-1.2.pdf | ||
*/ | ||
public class NativeParameters { | ||
|
||
private final NativeAdUnitConfiguration nativeConfiguration = new NativeAdUnitConfiguration(); | ||
|
||
public NativeParameters( | ||
@NonNull List<NativeAsset> assets | ||
) { | ||
for (NativeAsset asset : assets) { | ||
nativeConfiguration.addAsset(asset); | ||
} | ||
} | ||
|
||
@Nullable | ||
public NativeAdUnitConfiguration getNativeConfiguration() { | ||
return nativeConfiguration; | ||
} | ||
|
||
public void addEventTracker(NativeEventTracker tracker) { | ||
nativeConfiguration.addEventTracker(tracker); | ||
} | ||
|
||
public void setContextType(NativeAdUnit.CONTEXT_TYPE type) { | ||
nativeConfiguration.setContextType(type); | ||
} | ||
|
||
public void setContextSubType(NativeAdUnit.CONTEXTSUBTYPE type) { | ||
nativeConfiguration.setContextSubtype(type); | ||
} | ||
|
||
public void setPlacementType(NativeAdUnit.PLACEMENTTYPE placementType) { | ||
nativeConfiguration.setPlacementType(placementType); | ||
} | ||
|
||
public void setPlacementCount(int placementCount) { | ||
nativeConfiguration.setPlacementCount(placementCount); | ||
} | ||
|
||
public void setSeq(int seq) { | ||
nativeConfiguration.setSeq(seq); | ||
} | ||
|
||
public void setAUrlSupport(boolean support) { | ||
nativeConfiguration.setAUrlSupport(support); | ||
} | ||
|
||
public void setDUrlSupport(boolean support) { | ||
nativeConfiguration.setDUrlSupport(support); | ||
} | ||
|
||
public void setPrivacy(boolean privacy) { | ||
nativeConfiguration.setPrivacy(privacy); | ||
} | ||
|
||
public void setExt(Object jsonObject) { | ||
if (jsonObject instanceof JSONObject) { | ||
nativeConfiguration.setExt((JSONObject) jsonObject); | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
57 changes: 57 additions & 0 deletions
57
PrebidMobile/PrebidMobile-core/src/main/java/org/prebid/mobile/api/data/BidInfo.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package org.prebid.mobile.api.data; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.annotation.Nullable; | ||
|
||
import org.prebid.mobile.ResultCode; | ||
|
||
import java.util.Map; | ||
|
||
public class BidInfo { | ||
|
||
@NonNull | ||
private ResultCode resultCode; | ||
@Nullable | ||
private Map<String, String> targetingKeywords; | ||
@Nullable | ||
private String nativeCacheId; | ||
@Nullable | ||
private Integer expirationTimeSeconds; | ||
|
||
public BidInfo( | ||
@NonNull ResultCode resultCode, | ||
@Nullable Map<String, String> targetingKeywords | ||
) { | ||
this.resultCode = resultCode; | ||
this.targetingKeywords = targetingKeywords; | ||
} | ||
|
||
public void setNativeResult( | ||
String nativeCacheId, | ||
Integer expirationTimeSeconds | ||
) { | ||
this.nativeCacheId = nativeCacheId; | ||
this.expirationTimeSeconds = expirationTimeSeconds; | ||
} | ||
|
||
@NonNull | ||
public ResultCode getResultCode() { | ||
return resultCode; | ||
} | ||
|
||
@Nullable | ||
public Map<String, String> getTargetingKeywords() { | ||
return targetingKeywords; | ||
} | ||
|
||
@Nullable | ||
public String getNativeCacheId() { | ||
return nativeCacheId; | ||
} | ||
|
||
@Nullable | ||
public Integer getExpirationTimeSeconds() { | ||
return expirationTimeSeconds; | ||
} | ||
|
||
} |
102 changes: 102 additions & 0 deletions
102
...le/PrebidMobile-core/src/main/java/org/prebid/mobile/api/original/ConfigurableAdUnit.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
package org.prebid.mobile.api.original; | ||
|
||
import androidx.annotation.NonNull; | ||
import androidx.annotation.Nullable; | ||
|
||
import org.jetbrains.annotations.NotNull; | ||
import org.prebid.mobile.AdSize; | ||
import org.prebid.mobile.AdUnit; | ||
import org.prebid.mobile.BannerParameters; | ||
import org.prebid.mobile.NativeParameters; | ||
import org.prebid.mobile.OnCompleteListener; | ||
import org.prebid.mobile.ResultCode; | ||
import org.prebid.mobile.VideoParameters; | ||
import org.prebid.mobile.api.data.AdFormat; | ||
import org.prebid.mobile.api.exceptions.AdException; | ||
import org.prebid.mobile.configuration.NativeAdUnitConfiguration; | ||
import org.prebid.mobile.rendering.bidding.data.bid.BidResponse; | ||
import org.prebid.mobile.rendering.bidding.listeners.BidRequesterListener; | ||
import org.prebid.mobile.rendering.models.AdPosition; | ||
import org.prebid.mobile.rendering.models.PlacementType; | ||
|
||
class ConfigurableAdUnit extends AdUnit { | ||
|
||
@Nullable | ||
private BidResponse bidResponse; | ||
|
||
public ConfigurableAdUnit(@NotNull String configId) { | ||
super(configId); | ||
} | ||
|
||
@Override | ||
protected BidRequesterListener createBidListener(OnCompleteListener originalListener) { | ||
return new BidRequesterListener() { | ||
@Override | ||
public void onFetchCompleted(BidResponse response) { | ||
bidResponse = response; | ||
originalListener.onComplete(ResultCode.SUCCESS); | ||
} | ||
|
||
@Override | ||
public void onError(AdException exception) { | ||
bidResponse = null; | ||
originalListener.onComplete(convertToResultCode(exception)); | ||
} | ||
}; | ||
} | ||
|
||
public void setConfigurationBasedOnRequest( | ||
@NonNull PrebidRequest request | ||
) { | ||
if (request.isInterstitial()) { | ||
configuration.setAdPosition(AdPosition.FULLSCREEN); | ||
} | ||
|
||
BannerParameters bannerParameters = request.getBannerParameters(); | ||
if (bannerParameters != null) { | ||
if (request.isInterstitial()) { | ||
configuration.addAdFormat(AdFormat.INTERSTITIAL); | ||
|
||
Integer minWidth = bannerParameters.getInterstitialMinWidthPercentage(); | ||
Integer minHeight = bannerParameters.getInterstitialMinHeightPercentage(); | ||
if (minWidth != null && minHeight != null) { | ||
configuration.setMinSizePercentage(new AdSize(minWidth, minHeight)); | ||
} | ||
} else { | ||
configuration.addAdFormat(AdFormat.BANNER); | ||
} | ||
|
||
configuration.setBannerParameters(bannerParameters); | ||
configuration.addSizes(bannerParameters.getAdSizes()); | ||
} | ||
|
||
VideoParameters videoParameters = request.getVideoParameters(); | ||
if (videoParameters != null) { | ||
configuration.addAdFormat(AdFormat.VAST); | ||
|
||
if (request.isInterstitial()) { | ||
configuration.setPlacementType(PlacementType.INTERSTITIAL); | ||
} | ||
if (request.isRewarded()) { | ||
configuration.setRewarded(true); | ||
} | ||
|
||
configuration.setVideoParameters(videoParameters); | ||
configuration.addSize(videoParameters.getAdSize()); | ||
} | ||
|
||
NativeParameters nativeParameters = request.getNativeParameters(); | ||
if (nativeParameters != null) { | ||
configuration.addAdFormat(AdFormat.NATIVE); | ||
|
||
NativeAdUnitConfiguration nativeConfig = nativeParameters.getNativeConfiguration(); | ||
configuration.setNativeConfiguration(nativeConfig); | ||
} | ||
} | ||
|
||
@Nullable | ||
public BidResponse getBidResponse() { | ||
return bidResponse; | ||
} | ||
|
||
} |
Oops, something went wrong.