介绍:

由于需要精准的获取投放广告的数据(投放的平台,防止数据的丢失等)。我们使用了Google Play Install Referrer API 和Facebook App Ads Referral结合采集数据,然后通过后台服务记录数据。最后服务器记录的数据与Facebook提供的数据对比,检查数据的真实性、丢包概况等。最后得出结论可以用于后续运营策略。

官网:

  1. Google Install Referrer API

  1. Google Play 网址构建工具

  1. Facebook App Ads Referral

  1. Facebook App管理平台

要求:

  1. 解决网络问题。(您懂得)

  1. 需要有Google Play 管理中心帐号。

  1. 需要有Facebook 管理中心帐号。

  1. 手机需要安装了 Google Play 应用版本 8.3.73 或更高版本的设备自动提供该 API。

集成前的准备

模拟广告链接:可以通过Google Play 网址构建工具生成。

我模拟生成的如下:

https://play.google.com/store/apps/details?id=com.UCMobile.intl&referrer=utm_source%3Dtaobao%26utm_medium%3Dbanner%26utm_term%3Drunning%26utm_content%3D%25E6%2588%2591%25E6%2598%25AF%25E5%25B0%258F%25E5%25BC%25BA%26utm_campaign%3D%25E6%2595%25B2%25E4%25BB%25A3%25E7%25A0%2581%25E7%259A%2584%25E5%25B0%258F%25E5%25BC%25BA%26anid%3Dadmob

Google Play Install Referrer API集成:

将以下行添加到应用的 build.gradle 文件的依赖项部分:

dependencies {implementation "com.android.installreferrer:installreferrer:2.2"
}

连接到 Google Play 获取安装引荐来源

提示:
  1. 使用try catch。installVersion有可能会为null。会报空指针。

  1. Log打印的地方,就是将response.installReferrer(已加密)结果传给后端。然后后端通过Facebook解密。得到投放广告的数据。

  1. response.installReferrer返回的是已经加密的数据,需要解密需要拿到Facebook秘钥key解密。(下面会介绍到key的位置)

package com.UCMobile.intlimport android.content.Context
import android.util.Log
import com.android.installreferrer.api.InstallReferrerClient
import com.android.installreferrer.api.InstallReferrerStateListener
import com.android.installreferrer.api.ReferrerDetails/*** @author 小强** @time 2023/1/9  15:25** @desc Google Play Install Referrer API库**/
class InstallReferrer {/*** 初始化Play Install Referrer 库*/fun initReferrerClient(context : Context) {//启动并与 Play 商店应用的连接val referrerClient : InstallReferrerClient = InstallReferrerClient.newBuilder(context).build()referrerClient.startConnection(object : InstallReferrerStateListener {//onInstall Referrer安装完成override fun onInstallReferrerSetupFinished(responseCode : Int) {when (responseCode) {InstallReferrerClient.InstallReferrerResponse.OK -> {try {//连接已建立后获取安装引荐来源val response : ReferrerDetails = referrerClient.installReferrer//已安装软件包的引荐来源网址。val referrerUrl : String = response.installReferrer//引荐来源网址点击事件发生时的客户端时间戳(以秒为单位)。val referrerClickTime : Long = response.referrerClickTimestampSeconds//应用安装开始时的客户端时间戳(以秒为单位)。val appInstallTime : Long = response.installBeginTimestampSeconds//引荐来源网址点击事件发生时的服务器端时间戳(以秒为单位)。val appServerTime : Long = response.referrerClickTimestampServerSeconds//首次安装应用时的应用版本。val installVersion : String = response.installVersion//表明应用的免安装体验是否为过去 7 天内发布的。val instantExperienceLaunched : Boolean = response.googlePlayInstantParam//断开服务连接(断开连接将有助于避免出现泄露和性能问题。)referrerClient.endConnection()Log.e("hzq", "推荐url-->" + referrerUrl)Log.e("hzq", "推荐点击事件发生时的时间戳(单位是秒)-->" + referrerClickTime)Log.e("hzq", "app安装时间时间戳(单位是秒)-->" + appInstallTime)Log.e("hzq", "服务器端时间戳(单位是秒)-->" + appServerTime)Log.e("hzq", "首次安装应用时的应用版本-->" + installVersion)Log.e("hzq", "免安装体验是否过去7天内发布的-->" + instantExperienceLaunched)} catch (e : Exception) {}}InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> {//当前Play Store应用程序上没有API。}InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> {//无法建立连接。}}}//onInstall Referrer服务已断开连接override fun onInstallReferrerServiceDisconnected() {Log.e("hzq", "onInstall Referrer服务已断开连接")//尝试在下次请求时重新启动连接//通过调用startConnection()方法来Google Play。}})}
}

打印结果:

 response-->com.android.installreferrer.api.ReferrerDetails@f2f9a14推荐url-->utm_source=%E6%B7%98%E5%AE%9D&utm_medium=banner&utm_term=%E5%B0%8F%E5%BC%BA&utm_content=%E6%88%91%E6%98%AF%E5%B0%8F%E5%BC%BA&utm_campaign=%E6%95%B2%E4%BB%A3%E7%A0%81%E7%9A%84%E5%B0%8F%E5%BC%BA&anid=admob推荐点击事件发生时的时间戳(单位是秒)-->1673259864app安装时间时间戳(单位是秒)-->1673259870服务器端时间戳(单位是秒)-->1673259863首次安装应用时的应用版本-->13.4.0.1306免安装体验是否过去7天内发布的-->false

重点:模拟安装测试(手机应用必须需要有Google Play应用商店)

  1. 如果Google Play 应用商店 已经有自己应用的情况下:可以在模拟广告链接的时候把自己的应用包名填上去。点击广告投放链接进入到应用商店,点击安装。然后再取消安装。然后再本地项目中运行到手机上。最后安装成功后启动应用就会有InstallReferrerClient信息。

  1. 如果Google Play 应用商店 没有自己应用的情况下:我们需要把我们的应用包名改成应用商店已有的应用包名。我当前项目模拟的时候就是使用UC的包名(com.UCMobile.intl)。然后点击广告投放链接进入到应用商店,点击安装。然后再取消安装。然后再本地项目中运行到手机上。最后安装成功后启动应用就会有InstallReferrerClient信息。

Facebook App Ads Referral Key的获取:

  1. 需要自己在Facebook App管理平台添加一个应用。

  1. 在应用的 设置-> 基本 -> Google Play 中可以找到。如下图:

Google Play Install Referrer API 和 Facebook App Ads Referral 集成相关推荐

  1. Android一点 Play Install Referrer

    Google Play Install Referrer 这个api可以获取从play store下载的来源渠道,这里可以自定义,例如 邀请功能等就很好使用了. 测试的时候,可以上传包到封闭式测试,然 ...

  2. java 解析gson_使用Java和Google GSON解析ESPN API

    java 解析gson 在我的第一篇文章中,我将解释如何解析ESPN API. 可以在http://developer.espn.com/docs上找到API文档. 首先,您需要请求一个API密钥,然 ...

  3. 使用Java和Google GSON解析ESPN API

    在我的第一篇文章中,我将解释如何解析ESPN API. 可以在http://developer.espn.com/docs上找到API文档. 首先,您需要请求一个API密钥,然后可以开始查询REST ...

  4. 魔坊APP项目-17-种植园,商城页面、服务端提供商品api,解决App打包编译以后的跨域限制、客户端获取商品列表并进行展示,集成Alipayplus模块完成支付

    种植园 一.商城页面 orchard.html,代码: <!DOCTYPE html> <html> <head><title>用户中心</tit ...

  5. 曝iPhone15或换用USB-C接口;Google将下架第三方Android通话录音APP|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  6. AppsFlyer 研究(十四)创建 Facebook App 获取FaceBook App ID

    Facebook 开发者平台创建 APP 应用配置步骤如下: 1.打开 Facebook 开发者平台, 点击"登录" 如果没有账号,则需要新建账号,此处就不做介绍. 2.点击右方& ...

  7. [Android/安卓]Google登录接口之Api接入

    目录 1.基础配置 2.GoogleLogInImpl(登录接口实现类) 3.GoogleLogIn(实现类接口) 4.GoogleCallback(登录授权回调接口) 5.GoogleBuild(构 ...

  8. 【逗老师带你学IT】Google Admin服务账号+API管理G suit内所有网域用户

    本文主要介绍使用Google API服务账号和Google Admin管理G suit内所有网域用户.主要技术点在 Google API 服务账号申请 Google OAuth 2.0认证获取toke ...

  9. [Facebook] 如何建立facebook App 且取得FB ID

    這裡將會紀錄如何建立一個Facebook App,並且讓User授權應用程式,最後取得FB ID來當會員資料或是參加活動的ID識別 首先,你必須是個Facebook App Developers,你可 ...

最新文章

  1. 如何通过一个类名找到它属于哪个jar包?
  2. 单例(Singleton)模式
  3. 【两种解法】基础实验4-2.2 列出叶结点 (25 分)
  4. linux 的基本命令
  5. MySql应用原理分析系列文章目录
  6. DNS(1) DNS基本概念和域名系统
  7. Beetl 性能揭秘 1 :如何输出一个整型变量
  8. pku2594 Treasure Exploration
  9. MongoDB学习笔记—Linux下搭建MongoDB环境
  10. CentOS7环境下在/离线安装GCC与GCC-C++
  11. cocos studio和cocosbuilder什么区别
  12. 实用工具系列 - Xshell安装下载与使用
  13. EDI 单据和标准是什么?
  14. Jenkins(03):配置Jenkins自动发送邮件
  15. EUI分页显示的设置
  16. 哇塞!集齐7张卡片,真的可以召唤神龙耶!
  17. Bacnet协议/Bacnet4j读写
  18. PLMN SPN运营商名称显示来源
  19. 计算机能直接执行的语言程序是,计算机能够直接执行的程序是什么语言
  20. java excel生成_两种方式实现java生成Excel

热门文章

  1. 小程序开发------文件目录结构
  2. 03-django模型(1)
  3. [历年IT笔试题]2014京东校园招聘-软件开发笔试题
  4. 亨利气体溶解度优化算法(Matlab代码实现)
  5. Stream流常用操作(超全+实例)
  6. 蓝桥杯训练(python)Day2
  7. js对象新增方法object.assign()
  8. 互联网产品思考(一) —— 基本理念
  9. 在ListView中实现button功能
  10. linux deploy目录形式,安装Linux Deploy