2012-04-09 17 views
6

Al instalar una aplicación a través de la aplicación Market en un teléfono, la aplicación recibirá correctamente la información de referencia que se le pasó (como se describe aquí: http://code.google.com/mobile/analytics/docs/android/#android-market-tracking).Instalar referencia no rastrea en el mercado web de Android

Sin embargo, al instalar la misma aplicación con la misma referencia a través del mercado basado en web, la información de referencia se elimina y la aplicación no la recibe. Esto hace que las campañas orientadas a su aplicación desde la web sean imposibles de rastrear.

¿Es posible hacer un seguimiento de la referencia de instalación a través del mercado web de Android?

Respuesta

6

No, no es posible rastrear la referencia de instalación desde la tienda de Google Play basada en la web. Esto es a known issue with the latest SDK.

Google Play Campaign Tracking no admite actualmente instalaciones web iniciadas desde Play Store.

+2

Puede alguien sugerir una solución? – Gem

+2

El enlace de documentación y la sección de "problemas conocidos" es para v2 heredada. De la versión posterior, falta toda la sección de "problemas conocidos". Entonces, ¿debería funcionar la función ahora? Para mí, parece que no, es decir, todavía existe el problema original de "no referir vía web market". –

0

Probablemente un poco tarde aquí. Afortunadamente, esto nos sirve para realizar un seguimiento de las instalaciones que provienen de la tienda web.

clase

receptor:

public class OwnReceiver extends BroadcastReceiver { 

public static final String ACTION_UPDATE_DATA = "ACTION_UPDATE_DATA"; 
private static final String ACTION_INSTALL_REFERRER = "com.android.vending.INSTALL_REFERRER"; 
private static final String KEY_REFERRER = "referrer"; 

public OwnReceiver() { 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent == null) { 
     Log.e("ReferrerReceiver", "Intent is null"); 
     return; 
    } 
    if (!ACTION_INSTALL_REFERRER.equals(intent.getAction())) { 
     Log.e("ReferrerReceiver", "Wrong action! Expected: " + ACTION_INSTALL_REFERRER + " but was: " + intent.getAction()); 
     return; 
    } 
    Bundle extras = intent.getExtras(); 
    if (intent.getExtras() == null) { 
     Log.e("ReferrerReceiver", "No data in intent"); 
     return; 
    } 

    MyApplication.setReferrerDate(context.getApplicationContext(), new Date().getTime()); 
    //Contro.setReferrerData(context.getApplicationContext(), (String) extras.get(KEY_REFERRER)); 
    MyApplication.setReferrerData(context.getApplicationContext(), (String) extras.get(KEY_REFERRER)); 
    LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent(ACTION_UPDATE_DATA)); 
} 
} 

uso en MainActivity:

private final BroadcastReceiver mUpdateReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     someMethod(); //send received data to your method and use it your way 
    } 
}; 

algunMetodo donde está recibiendo los datos:

private void someMethod(){ 
    String referrerDataRaw = MyApplication.getReferrerDataRaw(getApplicationContext()); 

    if(referrerDataRaw.toLowerCase().contains(matchx.toLowerCase())){   
     Log.i("true",referrerDataRaw); 
     Toast.makeText(getBaseContext(),"Install referrer found",Toast.LENGTH_SHORT).show(); 
     //postBack(); 
    } 
    else { 
     Log.i("false","no referrer found"); 
     Toast.makeText(getBaseContext(),"no referrer found",Toast.LENGTH_SHORT).show(); 
    } 

} 

Bono Éste si estás enviar devoluciones

public void postBack() { 
    // String postTest = "https://play.google.com/store/apps/details?id=com.neon.myApp&referrer=utm_source=someOne&utm_medium=cpr&utm_term=testytest"; 
    String referrerDataRaw = MyApplication.getReferrerDataRaw(getApplicationContext()); 

    // Toast.makeText(this, "raw : " + postTest, Toast.LENGTH_SHORT).show(); 
    String[] split = referrerDataRaw.split("="); 
    String end = split[split.length - 1]; 

    Toast.makeText(this, AppConstant.lin + end, Toast.LENGTH_SHORT).show(); 

    StringRequest strReq = new StringRequest(Request.Method.POST, 
      AppConstant.lin + end, new Response.Listener<String>() { 

     @Override 
     public void onResponse(String response) { 
      Toast.makeText(getBaseContext(),"postback sent",Toast.LENGTH_SHORT).show(); 

     } 
    }, new Response.ErrorListener() { 

     @Override 
     public void onErrorResponse(VolleyError error) { 

     } 
    }); 

    // Adding request to request queue 
    MyApplication.getInstance().addToRequestQueue(strReq, tag_string_req); 
} 

consiguió la mayor parte de la ayuda de este tipo alma en github https://github.com/SimonMarquis/Android-InstallReferrer

Cuestiones relacionadas