Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(BREAKING CHANGES) Refactoring MobileAds API to v3.0.0 #167

Closed
4 tasks done
gumaciel opened this issue May 7, 2023 · 3 comments · Fixed by #176
Closed
4 tasks done

(BREAKING CHANGES) Refactoring MobileAds API to v3.0.0 #167

gumaciel opened this issue May 7, 2023 · 3 comments · Fixed by #176
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed
Milestone

Comments

@gumaciel
Copy link
Contributor

gumaciel commented May 7, 2023

Is your feature request related to a problem? If so, please describe.

This change intends to change many of the plugins in all aspects, in order to make the plugin more dynamic and easy to use, it is necessary almost completely to redo the plugin to meet the use of mediation.

⚠️WARNING⚠️:

What feature or improvement would you like to see?

✅GOALS✅

  • Create an Interface of MobileAds class with Kotlin with the most important methods used on AdMob.
    Example:
override fun getPluginSignals(): MutableSet<SignalInfo> {
    val signals: MutableSet<SignalInfo> = ArraySet()
    signals.add(SignalInfo("initialization_complete", Dictionary::class.java))
    return signals
}

@UsedByGodot
fun initialize() {
    MobileAds.initialize(aActivity) { initializationStatus ->
        val initializationStatusDictionary = createInitializationStatusDictionary(initializationStatus)
        emitSignal("initialization_complete", initializationStatusDictionary)
    }
}

private fun createInitializationStatusDictionary(initializationStatus: InitializationStatus) : Dictionary {
    val statusMap = initializationStatus.adapterStatusMap
    val initializationStatusDictionary = Dictionary()

    for (adapterClass in statusMap.keys) {
        Log.d("poing-godot-admob", "")

        val adapterStatusDictionary = createAdapterStatusDictionary(statusMap[adapterClass])
        initializationStatusDictionary[adapterClass] = adapterStatusDictionary
    }
    return initializationStatusDictionary
}
  • Create mediations adapters such as Meta and AdColony
  • Don't generate any more debug.aar file because it's a release, only generate on PR CI/CD
  • Update Documentation

Additional context

No response

@gumaciel gumaciel added enhancement New feature or request help wanted Extra attention is needed labels May 7, 2023
@gumaciel gumaciel added this to the v3.0.0 milestone May 7, 2023
@gumaciel gumaciel self-assigned this May 7, 2023
@gumaciel gumaciel pinned this issue May 7, 2023
@gumaciel
Copy link
Contributor Author

gumaciel commented May 16, 2023

General Architecture:

flowchart LR
  subgraph com.poingstudios.godot.admob
    direction TB
    subgraph com.poingstudios.godot.admob.core
        direction RL
        AdNetworkExtras
    end
    subgraph com.poingstudios.godot.admob.ads
        direction BT
        PoingGodotAdMob/JNISingleton
        PoingGodotAdMobAdView/JNISingleton/BannerAds
    end
    subgraph com.poingstudios.godot.admob.mediation.adcolony
        direction BT
        AdColonyAdNetworkExtras --> AdNetworkExtras
    end
    subgraph com.poingstudios.godot.admob.mediation.vungle
        direction BT
        VungleAdNetworkExtras --> AdNetworkExtras
        PoingGodotAdMobVungle/JNISingleton
    end
    subgraph com.poingstudios.godot.admob.mediation.meta
        direction BT
        //NoCodeRequired
    end
  end

godot.aar --- com.poingstudios.godot.admob.mediation.vungle
godot.aar --- com.poingstudios.godot.admob.ads
com.google.android.gms:play-services-ads --- com.poingstudios.godot.admob.core
com.google.ads.mediation:adcolony --- com.poingstudios.godot.admob.mediation.adcolony
com.google.ads.mediation:vungle --- com.poingstudios.godot.admob.mediation.vungle
com.google.ads.mediation:facebook --- com.poingstudios.godot.admob.mediation.meta

com.poingstudios.godot.admob.ads --> com.poingstudios.godot.admob.core
com.poingstudios.godot.admob.mediation.adcolony --> com.poingstudios.godot.admob.core
com.poingstudios.godot.admob.mediation.vungle --> com.poingstudios.godot.admob.core
com.poingstudios.godot.admob.mediation.meta --> com.poingstudios.godot.admob.core
Loading

All com.poingstudios.godot.admob.* will be generated and exported when a new version comes out

@gumaciel
Copy link
Contributor Author

gumaciel commented May 17, 2023

Modules generation .aar:

flowchart LR

com.poingstudios.godot.admob.ads == generates ==> poing-godot-admob-ads-*version*-*variant*.aar
com.poingstudios.godot.admob.core == generates ==> poing-godot-admob-core-*version*-*variant*.aar
com.poingstudios.godot.admob.mediation.adcolony == generates ==> poing-godot-admob-adcolony-*version*-*variant*.aar
com.poingstudios.godot.admob.mediation.vungle == generates ==> poing-godot-admob-vungle-*version*-*variant*.aar
com.poingstudios.godot.admob.mediation.meta == generates ==> poing-godot-admob-meta-*version*-*variant*.aar
Loading

@gumaciel
Copy link
Contributor Author

gumaciel commented May 26, 2023

Example of build and exporting plugin files into the desired directory:

./gradlew build ; ./gradlew exportFiles -PpluginExportPath=D:\godot-admob-editor\android\plugins

or just export files:

./gradlew exportFiles -PpluginExportPath=D:\godot-admob-editor\android\plugins

Zip plugins:

./gradlew zipPlugins -PgodotVersion=4.1.1 (-PgodotVersion is optional)

@gumaciel gumaciel changed the title (BREAKING CHANGES) Refactoring MobileAds API to v2.0.0 (BREAKING CHANGES) Refactoring MobileAds API to v3.0.0 Jun 2, 2023
gumaciel added a commit that referenced this issue Aug 20, 2023
gumaciel added a commit that referenced this issue Aug 21, 2023
gumaciel added a commit that referenced this issue Aug 21, 2023
gumaciel added a commit that referenced this issue Aug 21, 2023
gumaciel added a commit that referenced this issue Aug 21, 2023
gumaciel added a commit that referenced this issue Aug 21, 2023
gumaciel added a commit that referenced this issue Aug 22, 2023
gumaciel added a commit that referenced this issue Aug 22, 2023
gumaciel added a commit that referenced this issue Aug 23, 2023
@gumaciel gumaciel linked a pull request Aug 23, 2023 that will close this issue
gumaciel added a commit that referenced this issue Aug 23, 2023
gumaciel added a commit that referenced this issue Aug 23, 2023
gumaciel added a commit that referenced this issue Aug 23, 2023
@gumaciel gumaciel unpinned this issue Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant