Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1:  
This is a good place for [[User:Haixinshi]] to discuss his progress [[User:Podehaye|Podehaye]] ([[User talk:Podehaye|talk]])
 
This is a good place for [[User:Haixinshi]] to discuss his progress [[User:Podehaye|Podehaye]] ([[User talk:Podehaye|talk]])
 +
== 7.23(Le Temps) ==
 +
=== Prograss: ===
 +
"Dynamic" means that when we run our modified APP and there is an advertisement showing, then the modified functions will be called and we can store dynamic data(especially advertisement price information).
 +
==== SDK: AppNexus(Dynamically Tested)====
 +
[https://github.com/appnexus/mobile-sdk-android/blob/bb9d8d29a47ce642a01cbab8faeaeb9a30210a6e/sdk/src/com/appnexus/opensdk/ut/UTAdResponse.java SDK:AppNexus:UTAdResponse] We can dynamically access to the following information:
 +
    private static final String RESPONSE_KEY_TAGS = "tags";
 +
    private static final String RESPONSE_KEY_CONTENT = "content";
 +
    private static final String RESPONSE_KEY_WIDTH = "width";
 +
    private static final String RESPONSE_KEY_HEIGHT = "height";
 +
    private static final String RESPONSE_KEY_PLAYER_WIDTH = "player_width";
 +
    private static final String RESPONSE_KEY_PLAYER_HEIGHT = "player_height";
 +
    private static final String RESPONSE_KEY_NO_BID = "nobid";
 +
    private static final String RESPONSE_KEY_CREATIVE_ID = "creative_id";
 +
    private static final String RESPONSE_KEY_ADS = "ads";
 +
    private static final String RESPONSE_KEY_NOTIFY_URL = "notify_url";
 +
    private static final String RESPONSE_KEY_CONTENT_SOURCE = "content_source";
 +
    private static final String RESPONSE_KEY_CLASS = "class";
 +
    private static final String RESPONSE_KEY_PARAM = "param";
 +
    private static final String RESPONSE_KEY_PAYLOAD = "payload";
 +
    private static final String RESPONSE_KEY_ID = "id";
 +
    private static final String RESPONSE_KEY_UUID = "uuid";
 +
    private static final String RESPONSE_KEY_HANDLER_URL = "url";
 +
    private static final String RESPONSE_VALUE_ANDROID = "android";
 +
    private static final String RESPONSE_KEY_TYPE = "type";
 +
    private static final String RESPONSE_KEY_AD_TYPE = "ad_type";
 +
    private static final String RESPONSE_KEY_HANDLER = "handler";
 +
    private static final String RESPONSE_KEY_TRACKERS = "trackers";
 +
    private static final String RESPONSE_KEY_IMPRESSION_URLS = "impression_urls";
 +
    private static final String RESPONSE_KEY_CLICK_URLS = "click_urls";
 +
    private static final String RESPONSE_KEY_ERROR_URLS = "error_urls";
 +
    private static final String RESPONSE_KEY_TIMEOUT = "timeout_ms";
 +
    private static final String RESPONSE_KEY_RESPONSE_URL = "response_url";
 +
    private static final String RESPONSE_KEY_NO_AD_URL = "no_ad_url";
 +
    private static final String RESPONSE_KEY_TAG_ID = "tag_id";
 +
    private static final String RESPONSE_KEY_AUCTION_ID = "auction_id";
 +
    private static final String RESPONSE_KEY_SECOND_PRICE = "second_price";
 +
    private static final String RESPONSE_KEY_BUYER_MEMBER_ID = "buyer_member_id";
 +
    private static final String RESPONSE_KEY_CPM = "cpm";
 +
    private static final String RESPONSE_KEY_CPM_PUBLISHER_CURRENCY = "cpm_publisher_currency";
 +
    private static final String RESPONSE_KEY_CPM_CURRENCY_CODE = "publisher_currency_code";
 +
 +
==== SDK: Magnite : Rubicon Advertising(No Dynamic Test) ====
 +
It is not clear about what information we can collect from this API, but price for a banner ad can be obtained.
 +
# RubiconHelper
 +
# RubiconBanner
 +
 +
==== SDK: AmazonHB(No Dynamic Test) ====
 +
We can collect price for an advertisement from Amazon:
 +
# import com.amazon.device.ads.DTBAdResponse;
 +
 +
==== SDK: Smart AdServer(No Dynamic Test) ====
 +
[https://github.com/smartadserver/smart-display-android-samples/blob/72ac8039dbb40dfd5e1066adb67e284755b6b826/Kotlin/SASSample/app/src/main/java/com/smartadserver/android/kotlinsample/InAppBiddingInterstitialActivity.kt Bidding Example] We can get bidding information from SASBiddingAdResponse.
 +
# import com.smartadserver.android.library.headerbidding.SASBiddingAdResponse
 +
# import com.smartadserver.android.library.headerbidding.SASBiddingFormatType
 +
# import com.smartadserver.android.library.headerbidding.SASBiddingManager
 +
 +
==== SDK: Criteo(No Dynamic Test) ====
 +
[https://github.com/criteo/android-publisher-sdk/blob/main/publisher-sdk/src/main/java/com/criteo/publisher/Bid.java SDK Criteo : Bid] involves price information.
 +
[https://github.com/criteo/android-publisher-sdk/blob/efd1f9f7db8fa89ec8723557fdb9e8fcfe64b701/publisher-sdk/src/main/java/com/criteo/publisher/model/CdbResponseSlot.kt SDK Criteo : CdbResponseSlot] involves a abundant information about bidding informtion:
 +
    @SerializedName("impId") val impressionId: String? = null,
 +
    @SerializedName("placementId") val placementId: String? = null,
 +
    @SerializedName("zoneId") val zoneId: Int? = null,
 +
    '''@SerializedName("cpm") val cpm: String = "0.0",'''
 +
    '''@SerializedName("currency") val currency: String? = null,'''
 +
    @SerializedName("width") val width: Int = 0,
 +
    @SerializedName("height") val height: Int = 0,
 +
    @SerializedName("displayUrl") val displayUrl: String? = null,
 +
    @SerializedName("native") val nativeAssets: NativeAssets? = null,
 +
    @SerializedName("ttl") var ttlInSeconds: Int = 0,
 +
 +
==== SDK: Google ads(No Dynamic Test): ====
 +
The following two can be matched according to data type:
 +
#[https://developers.google.com/android/reference/com/google/android/gms/ads/AdValue SDK:google.android.gem.ads : AdValue pulic reference code]
 +
#[https://github.com/HiroyukiTamura/TrainResearch/blob/83a633c84ad183058e7392fe0ca9cccadf31c510/sanriku/base_source_from_JADX/sources/com/google/android/gms/ads/AdValue.java SDK:google.android.gem.ads : AdValue obfuscated code]
 +
* String getCurrencyCode() //The value's ISO 4217 currency code.
 +
* int getPrecisionType() //The precision type of the reported ad value.
 +
* long getValueMicros()//The ad's value in micro-units, where 1,000,000 micro-units equal one unit of the currency.
 +
 +
=== Questions: ===
 +
No.
 +
=== Plans: ===
 +
# Try to make a class and corresponding methods that can parse and save JSON and other information.
 +
# Try to dynamically test SDKs in terms of advertisement.
 +
# Try to find and collect message flow in Le Temps in terms of advertisement network.
26

edits

Navigation menu