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. |